This is the next release of FreeBASIC -- version 1.00.0! Has it really been 10 years since v1ctor's first announcement? FB is about to start into its second decade...
And with this new release, FB gains 64bit support. There now is a 64bit version of the language, and you can use it by testing the new Win64 or GNU/Linux x86_64 ports of FB. The new ports are based on the FB compiler's C backend. Behind the scenes, it uses gcc to generate the x86_64 assembly code, as fbc does not have its own x86_64 ASM backend.
In FB 64bit, pointers and INTEGERs are changed to 64bit. They are still 32bit in FB 32bit though. In other words, the size of pointers and INTEGERs, the precision of integer math operations, and the size limit for arrays and strings, varies depending on whether you compile your code for 32bit or 64bit. However, FB's BYTE (8bit), SHORT (16bit), LONG (32bit) and LONGINT (64bit) data types are the same in all versions.
There also is some support for compiling for ARM and AArch64 now, using the C backend and gcc. If you happen to have a gcc toolchain which targets ARM, you can probably also use it with fbc. Besides that, forum members D.J.Peters and TJF have been working on native ARM FB versions.
What else is new?
- Greatly improved overload resolution
- Dynamic arrays inside UDTs (for example: array(ANY) AS INTEGER)
- New syntax for declaring dynamic arrays with certain amount of dimensions but no initial bounds: dim array1(any), array2(any, any)
- All function results can now be ignored at the call site
- BYVAL AS STRING is now working properly
- NEW/DELETE now work with STRING
- Operator  overloading
- Len() can now be overloaded for UDTs
- Thread-safe version of the FB graphics library (libfbgfxmt)
As always, there's a huge number of compiler and runtime bug fixes and improvements. Please check the included changelog.txt for the full list, and thanks to everyone who found and reported bugs and contributed to the development of patches and header updates!
FB installer for Windows 32bit (x86).
- FreeBASIC-1.00.0-win32.zip (or as .7z)
FB for Windows 32bit (x86) in a .zip.
32bit gcc for installation into the FB-win32 package, in case you want to use -gen gcc.
- fbc-1.00.0-win32-mingw-org.zip (or as .7z)
32bit fbc for installation into MinGW, like a MinGW package. Built with MinGW.org toolchain.
- fbc-1.00.0-win32-mingw-w64.zip (or as .7z)
32bit fbc for installation into 32bit MinGW-w64 toolchain.
- FreeBASIC-1.00.0-win64.zip (or as .7z)
FB for Windows 64bit (x64).
- fbc-1.00.0-win64-mingw-w64.zip (or as .7z)
64bit fbc for installation into 64bit MinGW-w64 toolchain.
- FreeBASIC-1.00.0-linux-x86.tar.gz (or as .tar.xz)
FB for GNU/Linux 32bit x86.
- FreeBASIC-1.00.0-linux-x86_64.tar.gz (or as .tar.xz)
FB for GNU/Linux 64bit x86_64.
- Run sudo ./install.sh -i to install into /usr/local, if wanted.
FB for DOS. (beware of long filenames on the examples)
fbc for installation into DJGPP, like a DJGPP package.
The FB manual CHM.
For the fbhelp program (QB-like help viewer).
HTML, with 00index.html start page, useful as offline documentation when there is no CHM viewer.
For printing to paper.
- .tar.gz | .tar.xz | .zip | .7z
You can always find the latest FB source code in the fbc Git repository:
All the downloads are hosted over at SourceForge.
Binary build information
- The win32/win64 packages built with MinGW-w64 toolchains: mingw-w64 v3 git a33358073306e7591433cadc7c5bd005cb20e148, gcc 4.9.1. The entire GCC toolchains are available at Tools/MinGW-w64.
- The win32-mingw-org package was built with a MinGW.org toolchain: mingwrt 4.0.3, gcc 4.8.1
- The DOS packages were built with DJGPP: DJGPP 2.04, gcc 4.9.1
- The Linux-x86 package was built on OpenSUSE 13.1 i586, gcc 4.8.1
- The Linux-x86_64 package was built on OpenSUSE 13.1 x86_64, gcc 4.8.1