Where can I get a Recent-Git-Build of FreeBASIC?

For other topics related to the FreeBASIC project or its community.
coderJeff
Site Admin
Posts: 3343
Joined: Nov 04, 2005 14:23
Location: Ontario, Canada
Contact:

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby coderJeff » Oct 03, 2020 16:27

St_W, awesome. What is it now, must be at least 5 or 6 years of daily builds? Thank-you so much.

I have recently been running my own build scripts for the releases. I haven't run them for many months.
One change coming up:
- adeyblue wrote an excellent D2D driver for win 7+ based on D3D version 10.1. But, when building on or targeting WinXP, that should be disabled.

Do you mind posting a summary of all the targets you are building for your daily builds? Sorry, I didn't read through the whole topic.
fxm
Posts: 9993
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby fxm » Oct 04, 2020 4:50

fxm wrote:=> Invalid compressed file !
Same thing for:
fbc_win32_mingw_0618_2020-10-04.zip 2020-10-04 02:47 2.3M
and
fbc_win64_mingw_0627_2020-10-04.zip 2020-10-04 02:50 8.5M

+ manual not rebuilt.
St_W
Posts: 1508
Joined: Feb 11, 2009 14:24
Location: Austria
Contact:

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby St_W » Oct 04, 2020 18:29

@fxm: sorry for the faulty uploads, fixed them again and installed/configured the Naginator Jenkins Plugin to retry the job in case it failed. Also triggered a manual documenation build.

The cause is the same as yesterday: an unstable network/internet connection. It caused the uploads to fail and also caused the documentation build to be aborted, because the download took too long (it gets killed after 2 hours, normally takes about 15 minutes):
Build timed out (after 120 minutes). Marking the build as aborted.

Aborting due to runtime error 9 ("interrupted" signal) in CHttpStream.bas::RECEIVE()


Unfortunately I'm not really sure what I can do regarding the unstable internet connection. Restarted PC, router and switches and updated to latest Jenkins version and plugins.

@coderJeff:
The current Jenkins setup is running for more than 6 years now (since spring 2014). The oldest automated builds I contributed to are about 10 years old now (mid 2010) - back then I wrote a custom build application (in FreeBasic) for SVN builds. To make the setup more future-proof it probably should be migrated to a cloud solution next. There are some free ones for Open Source projects, like GitHub Actions, Azure Pipelines, TravisCI (which is already used for CI builds) or Cirrus-CI (the only one supporting FreeBSD it seems). A few years ago, when I started with the Jenkins setup, most of those services weren't available yet or offered limited build environments (e.g. no Windows builds). The situation became better since then and most (if not all) builds I'm currently running could be migrated to a free cloud CI/CD solution (DOS and FreeBSD may be the exception). That would also improve stability I guess.

Thanks a lot for the hint regarding upcoming changes. Currently I do not have any builds targeting a special Windows version, but it can be added of course, if needed in the future. I'm using Windows XP currently only for DOS builds (and there's no DirectX anyways :-), so I guess it won't be affected). Will there be dedicated builds for Windows XP (and older) for the next official FreeBasic release? Can't we dynamically activate that driver if the system supports it instead of having custom gfxlibs for 7+ and XP? I mean, don't we have something similar already for the DirectDraw driver with the fallback to GDI, if the former is not supported? But great to hear that a D2D driver is on it's way into FreeBasic, as the old DirectX one didn't properly work on newer 64-bit systems anymore IIRC. Sounds very interesting, is there any any GitHub branch or PR one can follow and have a look already?

Here's the current list of targets:
  • DOS
  • FreeBSD x86_64
  • Linux x86
  • Linux x86_64
  • Linux ARMv6
  • Linux ARMv7A
  • Windows x86
  • Windows x86_64

Built on:
  • FreeBSD freebsd 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014 amd64
  • Debian 8.5 (jessie); Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
  • Microsoft Windows [Version 10.0.19041.508]
  • Microsoft Windows XP [Version 5.1.2600]
adeyblue
Posts: 25
Joined: Nov 07, 2019 20:08

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby adeyblue » Oct 04, 2020 20:27

St_W wrote:Will there be dedicated builds for Windows XP (and older) for the next official FreeBasic release? Can't we dynamically activate that driver if the system supports it instead of having custom gfxlibs for 7+ and XP?

It already does that. It works exactly like the DirectX one. All it requires is a Win7-capable set of headers to build.
It's been in the master branch for at least 8 months now, so if you haven't encountered problems building it so far, you're not likely to start now.
D.J.Peters
Posts: 8189
Joined: May 28, 2005 3:28
Contact:

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby D.J.Peters » Oct 05, 2020 19:31

Don't remove XP as target please !

Instead add a option to ScreenControl() to enable GDI, DirectX, or Win7/10 drivers.

I use FreeBASIC for XP to control my homemade CNC and 3D printer and some of my retro electronic equipment.
(HP oscilloscope, HP logic analyzer, GOLD logic analyzer, VOLTCRAFT DSO, EPROM programmer ...)

Joshy
St_W
Posts: 1508
Joined: Feb 11, 2009 14:24
Location: Austria
Contact:

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby St_W » Oct 06, 2020 21:50

adeyblue wrote:It already does that. It works exactly like the DirectX one. All it requires is a Win7-capable set of headers to build.
It's been in the master branch for at least 8 months now, so if you haven't encountered problems building it so far, you're not likely to start now.
Thanks for the clarification. Then I probably misunderstood what coderJeff wanted to point out. So the default fbc build requires Win 7+ if one wants to build that new gfxlib driver, if building on XP it has to be disabled. And the default fbc build generates binaries that work on XP as well as 7+, the new driver will just be inactive on XP (and if one wants to specifically target XP or older one could build a custom gfxlib without that driver for e.g. reduced size).
coderJeff
Site Admin
Posts: 3343
Joined: Nov 04, 2005 14:23
Location: Ontario, Canada
Contact:

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby coderJeff » Oct 08, 2020 0:57

St_W wrote:So the default fbc build requires Win 7+ if one wants to build that new gfxlib driver, if building on XP it has to be disabled. And the default fbc build generates binaries that work on XP as well as 7+, the new driver will just be inactive on XP (and if one wants to specifically target XP or older one could build a custom gfxlib without that driver for e.g. reduced size).

Yes, this is exactly what I was thinking. I'm using WinXP to build the dos package and the win32-mingworg package. The win32-mingworg environment I have set-up is really old and no DX10.1 headers. I was thinking just for that build environment of disabling the new DirectX driver.
D.J.Peters
Posts: 8189
Joined: May 28, 2005 3:28
Contact:

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby D.J.Peters » Oct 08, 2020 1:22

What is the pro to build a new DirectX driver ?

I mean it's only the hardware blit of image/memory pixels on the window surface.
(From version DirectX1 to DirectX9,10,11,12 the hardware blitting is all the same)

Joshy
St_W
Posts: 1508
Joined: Feb 11, 2009 14:24
Location: Austria
Contact:

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby St_W » Oct 12, 2020 23:18

Did some maintainance work on the Jenkins server today as I observed slow response behaviour recently. Gave it more RAM and updated everything to the latest version ... just to find out that some Jenkins plugin seems to be broken at the moment (https://issues.jenkins-ci.org/browse/JENKINS-63790), so had to revert that upgrade.

@coderJeff: unfortunately the ARM builds fail since the GAS64 changes were merged:

Code: Select all

FBC src/compiler/obj/linux-arm/ir-gas64.o
src/compiler/ir-gas64.bas(1462) warning 38(0): Mixing operand data types may have undefined results
src/compiler/ir-gas64.bas(1596) warning 38(0): Mixing operand data types may have undefined results
src/compiler/ir-gas64.bas(2253) warning 38(0): Mixing operand data types may have undefined results
src/compiler/ir-gas64.bas(2805) warning 38(0): Mixing operand data types may have undefined results
src/compiler/ir-gas64.bas(2835) warning 38(0): Mixing operand data types may have undefined results
src/compiler/ir-gas64.bas(2861) warning 38(0): Mixing operand data types may have undefined results
src/compiler/ir-gas64.bas(5518) warning 38(0): Mixing operand data types may have undefined results
src/compiler/ir-gas64.bas(5618) warning 38(0): Mixing operand data types may have undefined results
src/compiler/ir-gas64.bas(5637) warning 38(0): Mixing operand data types may have undefined results
src/compiler/ir-gas64.bas(5715) warning 38(0): Mixing operand data types may have undefined results
src/compiler/ir-gas64.bas(5734) warning 38(0): Mixing operand data types may have undefined results
src/compiler/ir-gas64.bas(5767) warning 38(0): Mixing operand data types may have undefined results
src/compiler/ir-gas64.bas(5804) warning 38(0): Mixing operand data types may have undefined results
src/compiler/obj/linux-arm/ir-gas64.c: In function ‘TEST_SSE41’:
src/compiler/obj/linux-arm/ir-gas64.c:1894:2: error: unknown register name ‘esi’ in ‘asm’
  __asm__ __volatile__( "\tmov  eax,1\n" :  :  : "cc", "memory", "eax", "ebx", "ecx", "edx", "esp", "edi", "esi" );
  ^
src/compiler/obj/linux-arm/ir-gas64.c:1894:2: error: unknown register name ‘edi’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1894:2: error: unknown register name ‘esp’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1894:2: error: unknown register name ‘edx’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1894:2: error: unknown register name ‘ecx’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1894:2: error: unknown register name ‘ebx’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1894:2: error: unknown register name ‘eax’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1895:2: error: unknown register name ‘esi’ in ‘asm’
  __asm__ __volatile__( "\tcpuid\n" :  :  : "cc", "memory", "eax", "ebx", "ecx", "edx", "esp", "edi", "esi" );
  ^
src/compiler/obj/linux-arm/ir-gas64.c:1895:2: error: unknown register name ‘edi’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1895:2: error: unknown register name ‘esp’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1895:2: error: unknown register name ‘edx’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1895:2: error: unknown register name ‘ecx’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1895:2: error: unknown register name ‘ebx’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1895:2: error: unknown register name ‘eax’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1896:2: error: unknown register name ‘esi’ in ‘asm’
  __asm__ __volatile__( "\tmov [%0],ecx\n" : "=m" (LECX$1) : "m" (LECX$1) : "cc", "memory", "eax", "ebx", "ecx", "edx", "esp", "edi", "esi" );
  ^
src/compiler/obj/linux-arm/ir-gas64.c:1896:2: error: unknown register name ‘edi’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1896:2: error: unknown register name ‘esp’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1896:2: error: unknown register name ‘edx’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1896:2: error: unknown register name ‘ecx’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1896:2: error: unknown register name ‘ebx’ in ‘asm’
src/compiler/obj/linux-arm/ir-gas64.c:1896:2: error: unknown register name ‘eax’ in ‘asm’

Looks like there's some x86 assembly, which (obviously) doesn't compile when targeting ARM. Is there any configuration to disable the new GAS64 backend for ARM?

The cause seems to be this here, testing for sse41 availability:
https://github.com/freebasic/fbc/blob/m ... .bas#L2202

Why do we test the host here, running the compiler? shouldn't this be dependent on the compiler target instead? cause as far as I can see this influences the generated code, not the compilation process itself.
coderJeff
Site Admin
Posts: 3343
Joined: Nov 04, 2005 14:23
Location: Ontario, Canada
Contact:

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby coderJeff » Oct 12, 2020 23:35

St_W wrote:Looks like there's some x86 assembly, which (obviously) doesn't compile when targeting ARM. Is there any configuration to disable the new GAS64 backend for ARM?

There isn't. I kind of thought it would be like the other backends where fbc can be used as a cross compiler on any host.

St_W wrote:Why do we test the host here, running the compiler? shouldn't this be dependent on the compiler target instead? cause as far as I can see this influences the generated code, not the compilation process itself.

Yeah, that shouldn't be on the host ever. Should be either a user run-time test or a command line switch. I'll email SARG let him know. In the meantime I can disable that bit of code.

FYI, I have some minor changes in makefile for building win32-mingworg, WinXP, DOS. But we'll clear up the gas64 thing before I hit you with more build changes.
coderJeff
Site Admin
Posts: 3343
Joined: Nov 04, 2005 14:23
Location: Ontario, Canada
Contact:

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby coderJeff » Oct 13, 2020 0:41

St_W wrote:@coderJeff: unfortunately the ARM builds fail since the GAS64 changes were merged:

OK, I've pushed changes to freebasic/fbc/master to disable the ASM used in ir-gas64.bas. I'm thinking it should build now. ir-gas64.bas still included
St_W
Posts: 1508
Joined: Feb 11, 2009 14:24
Location: Austria
Contact:

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby St_W » Oct 13, 2020 8:28

coderJeff wrote:OK, I've pushed changes to freebasic/fbc/master to disable the ASM used in ir-gas64.bas. I'm thinking it should build now. ir-gas64.bas still included
Yes it does, thanks!
fxm
Posts: 9993
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby fxm » Oct 13, 2020 8:40

No 'manual.pdf' built this morning?
SARG
Posts: 1161
Joined: May 27, 2005 7:15
Location: FRANCE

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby SARG » Oct 13, 2020 12:32

@St_W
Sorry for the inconvenience.
I have proposed to Jeff another fix to solve the problem as the result of the current one is not efficient : whatever the cpu is no use of some 'new' functionnalities
St_W
Posts: 1508
Joined: Feb 11, 2009 14:24
Location: Austria
Contact:

Re: Where can I get a Recent-Git-Build of FreeBASIC?

Postby St_W » Oct 13, 2020 23:01

@fxm: I'm sorry, this is the known issue that changes are not detected between server start and first build (each day 3am UTC+2). There will be a new build this night.

@SARG: Thanks a lot for the GAS64 emitter! Didn't cause any noteworthy inconveniences, just reported the observation of a failing build job ;-)
The current hotfix was only meant as a temporary fix, I understand that it is not efficient; great to hear that you're already working on a "real" solution.

Return to “Community Discussion”

Who is online

Users browsing this forum: No registered users and 8 guests