New FB release coming up
New FB release coming up
2013-06-13: 0.90.0rc2 packages available for testing now:
http://www.freebasic.net/forum/viewtopi ... 83#p188183
---
Hello everyone,
we're now closing in on the new FB release. It's 1 month overdue as far as I'm concerned, but in exchange it will contain lots of prebuilt external libraries. And besides that, it contains new features that caused the version 0.9 to be mentioned -- so now, I have started calling it FB 0.90 instead of FB 0.25. May 1.0 follow eventually.
I have prepared some preview packages for testing, and I'd appreciate if some of you could check them out and see whether they can actually compile stuff:
http://sourceforge.net/projects/fbc/fil ... %20Builds/
The linuxmusl, dos and win32 packages include various precompiled third-party libraries, e.g. libpng, TinyPTC, libzip, libcurl, Lua. Pretty much the ones that I was able to compile fairly easily, we have FB headers for, and are open source and allow doing this in their license. The main packages contain static libraries. DLLs for Win32 are optionally available in a separate package.
Besides that, gcc is included (only gcc.exe and cc1.exe) to allow -gen gcc to be used and tested.
All that makes for some huge downloads, and I wonder what the best way to handle this might be. On one hand, we could make a "base" FB download, with "addon" packages -- on the other hand, nothing is easier than an "all-in-one" download. Perhaps both are needed.
The "linuxmusl" build is quite a new thing here, it's Linux but based around musl libc and static linking, instead of glibc like the common distros. That means the FB-linuxmusl package can be used to create static Linux binaries that will run on pretty much anything that runs Linux, without the usual glibc version conflicts and what-not. Overall, it works, though musl libc isn't as stable as glibc yet. For example, musl libc uses a smaller jmp_buf than glibc, but the current FB CRT headers don't take that into account, so it's not safe to use setjmp()/longjmp() with the linuxmusl build at the moment.
On the brighter side though, the linuxmusl build provides all the libraries that are needed to cross-compile Linux programs from Win32, and I have made several cross-compiling related add-on packages.
Besides these standalone builds, the small FB-linux, fbc-djgpp and fbc-mingw32 packages are available too - for installation into a GNU/Linux system, DJGPP directory, and MinGW directory respectively.
http://www.freebasic.net/forum/viewtopi ... 83#p188183
---
Hello everyone,
we're now closing in on the new FB release. It's 1 month overdue as far as I'm concerned, but in exchange it will contain lots of prebuilt external libraries. And besides that, it contains new features that caused the version 0.9 to be mentioned -- so now, I have started calling it FB 0.90 instead of FB 0.25. May 1.0 follow eventually.
I have prepared some preview packages for testing, and I'd appreciate if some of you could check them out and see whether they can actually compile stuff:
http://sourceforge.net/projects/fbc/fil ... %20Builds/
The linuxmusl, dos and win32 packages include various precompiled third-party libraries, e.g. libpng, TinyPTC, libzip, libcurl, Lua. Pretty much the ones that I was able to compile fairly easily, we have FB headers for, and are open source and allow doing this in their license. The main packages contain static libraries. DLLs for Win32 are optionally available in a separate package.
Besides that, gcc is included (only gcc.exe and cc1.exe) to allow -gen gcc to be used and tested.
All that makes for some huge downloads, and I wonder what the best way to handle this might be. On one hand, we could make a "base" FB download, with "addon" packages -- on the other hand, nothing is easier than an "all-in-one" download. Perhaps both are needed.
The "linuxmusl" build is quite a new thing here, it's Linux but based around musl libc and static linking, instead of glibc like the common distros. That means the FB-linuxmusl package can be used to create static Linux binaries that will run on pretty much anything that runs Linux, without the usual glibc version conflicts and what-not. Overall, it works, though musl libc isn't as stable as glibc yet. For example, musl libc uses a smaller jmp_buf than glibc, but the current FB CRT headers don't take that into account, so it's not safe to use setjmp()/longjmp() with the linuxmusl build at the moment.
On the brighter side though, the linuxmusl build provides all the libraries that are needed to cross-compile Linux programs from Win32, and I have made several cross-compiling related add-on packages.
Besides these standalone builds, the small FB-linux, fbc-djgpp and fbc-mingw32 packages are available too - for installation into a GNU/Linux system, DJGPP directory, and MinGW directory respectively.
Re: New FB release coming up
I'm happy to hear that.
Does the DOS version include support for dynamic linking?
http://www.freebasic.net/forum/viewtopi ... =4&t=20929
Does the DOS version include support for dynamic linking?
http://www.freebasic.net/forum/viewtopi ... =4&t=20929
Re: New FB release coming up
Great, looking forward to this!
Re: New FB release coming up
dkl-
".\examples\GUI\win32\fileopen.bas" and ".\examples\GUI\win32\shellfolder.bas" both fail to link:
---------
G:\fb.9rc1\fbc -s console -v -mt -w pedantic -lang fb "shellfolder.bas"
FreeBASIC Compiler - Version 0.90.0 (05-03-2013) for win32
Copyright (C) 2004-2013 The FreeBASIC development team.
standalone
compiling: shellfolder.bas -o shellfolder.asm (main module)
shellfolder.bas(40) warning 34(0): 'BYVAL AS STRING' actually behaves like 'BYREF AS ZSTRING' (this is hoped to change in future releases), at parameter 2 (Prompt) of BrowseForFolder()
shellfolder.bas(42) warning 34(0): 'BYVAL AS STRING' actually behaves like 'BYREF AS ZSTRING' (this is hoped to change in future releases), at parameter 4 (DefaultFolder) of BrowseForFolder()
assembling: G:\fb.9rc1\bin\win32\as.exe --32 --strip-local-absolute "shellfolder.asm" -o "shellfolder.o"
linking: G:\fb.9rc1\bin\win32\ld.exe -o "shellfolder.exe" -subsystem console "G:\fb.9rc1\lib\win32\fbextra.x" --stack 1048576,1048576 -s -L "G:\fb.9rc1\lib\win32" -L "." "G:\fb.9rc1\lib\win32\crt2.o" "G:\fb.9rc1\lib\win32\crtbegin.o" "G:\fb.9rc1\lib\win32\fbrt0.o" "shellfolder.o" "-(" -lkernel32 -lgdi32 -luser32 -lversion -ladvapi32 -lole32 -luuid -loleaut32 -lshell32 -lcomctl32 -lfbmt -lgcc -lmsvcrt -lmingw32 -lmingwex -lmoldname -lsupc++ -lgcc_eh "-)" "G:\fb.9rc1\lib\win32\crtend.o"
G:\fb.9rc1\bin\win32\ld.exe: cannot find -luuid
linking failed: 'G:\fb.9rc1\bin\win32\ld.exe' terminated with exit code 1
Build error(s)
--------
All of the other examples in this path compile and link OK. (FBEDIT 1.0.7.6c). WINXP SP3
-----similar prob with .|GUI\IUP\xxx.bas
G:\fb.9rc1\bin\win32\ld.exe: cannot find -liup
linking failed: 'G:\fb.9rc1\bin\win32\ld.exe' terminated with exit code 1
Build error(s)
----- also with problems finding libraries:
\examples
\CGUI\
\wx-c\
\GTK+\
------
-Jim
".\examples\GUI\win32\fileopen.bas" and ".\examples\GUI\win32\shellfolder.bas" both fail to link:
---------
G:\fb.9rc1\fbc -s console -v -mt -w pedantic -lang fb "shellfolder.bas"
FreeBASIC Compiler - Version 0.90.0 (05-03-2013) for win32
Copyright (C) 2004-2013 The FreeBASIC development team.
standalone
compiling: shellfolder.bas -o shellfolder.asm (main module)
shellfolder.bas(40) warning 34(0): 'BYVAL AS STRING' actually behaves like 'BYREF AS ZSTRING' (this is hoped to change in future releases), at parameter 2 (Prompt) of BrowseForFolder()
shellfolder.bas(42) warning 34(0): 'BYVAL AS STRING' actually behaves like 'BYREF AS ZSTRING' (this is hoped to change in future releases), at parameter 4 (DefaultFolder) of BrowseForFolder()
assembling: G:\fb.9rc1\bin\win32\as.exe --32 --strip-local-absolute "shellfolder.asm" -o "shellfolder.o"
linking: G:\fb.9rc1\bin\win32\ld.exe -o "shellfolder.exe" -subsystem console "G:\fb.9rc1\lib\win32\fbextra.x" --stack 1048576,1048576 -s -L "G:\fb.9rc1\lib\win32" -L "." "G:\fb.9rc1\lib\win32\crt2.o" "G:\fb.9rc1\lib\win32\crtbegin.o" "G:\fb.9rc1\lib\win32\fbrt0.o" "shellfolder.o" "-(" -lkernel32 -lgdi32 -luser32 -lversion -ladvapi32 -lole32 -luuid -loleaut32 -lshell32 -lcomctl32 -lfbmt -lgcc -lmsvcrt -lmingw32 -lmingwex -lmoldname -lsupc++ -lgcc_eh "-)" "G:\fb.9rc1\lib\win32\crtend.o"
G:\fb.9rc1\bin\win32\ld.exe: cannot find -luuid
linking failed: 'G:\fb.9rc1\bin\win32\ld.exe' terminated with exit code 1
Build error(s)
--------
All of the other examples in this path compile and link OK. (FBEDIT 1.0.7.6c). WINXP SP3
-----similar prob with .|GUI\IUP\xxx.bas
G:\fb.9rc1\bin\win32\ld.exe: cannot find -liup
linking failed: 'G:\fb.9rc1\bin\win32\ld.exe' terminated with exit code 1
Build error(s)
----- also with problems finding libraries:
\examples
\CGUI\
\wx-c\
\GTK+\
------
-Jim
Re: New FB release coming up
FreeImage (using DLL):
libPdf (using static):
FreeType(using static):
FreeImage (using static):FbTemp.o:fake:(.text+0x30): undefined reference to `FreeImage_GetFileType@8'
FbTemp.o:fake:(.text+0x43): undefined reference to `FreeImage_GetFIFFromFilename@4'
FbTemp.o:fake:(.text+0x7c): undefined reference to `FreeImage_Load@12'
FbTemp.o:fake:(.text+0x99): undefined reference to `FreeImage_FlipVertical@4'
FbTemp.o:fake:(.text+0xa1): undefined reference to `FreeImage_ConvertTo32Bits@4'
FbTemp.o:fake:(.text+0xac): undefined reference to `FreeImage_GetWidth@4'
FbTemp.o:fake:(.text+0xb7): undefined reference to `FreeImage_GetHeight@4'
FbTemp.o:fake:(.text+0xeb): undefined reference to `FreeImage_GetBits@4'
FbTemp.o:fake:(.text+0xf6): undefined reference to `FreeImage_GetPitch@4'
FbTemp.o:fake:(.text+0x145): undefined reference to `FreeImage_Unload@4'
FbTemp.o:fake:(.text+0x14d): undefined reference to `FreeImage_Unload@4'
FbTemp.o:fake:(.text+0x1ac): undefined reference to `FreeImage_Initialise@4'
FbTemp.o:fake:(.text+0x27f): undefined reference to `FreeImage_DeInitialise@0'
C:\Users\haav\Desktop\fbedittest\Compilier\fbc -s console "FbTemp.bas"
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libFreeImage.a(Plugin.o):(.text+0x1dc): undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base*)'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libFreeImage.a(Plugin.o):(.text+0x25b): undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base*)'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libFreeImage.a(Plugin.o):(.text+0x91f): undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base*)'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libFreeImage.a(Plugin.o):(.text+0x9b5): undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base*)'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libFreeImage.a(Plugin.o):(.text+0x151d): undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base*)'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libFreeImage.a(Plugin.o):(.text+0x1631): more undefined references to `std::_Rb_tree_increment(std::_Rb_tree_node_base*)' follow
C:\Users\haav\Desktop\fbedittest\Compilier\bin\win32\ld.exe: C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libFreeImage.a(Plugin.o): bad reloc address 0x0 in section `.data'
C:\Users\haav\Desktop\fbedittest\Compilier\bin\win32\ld.exe: final link failed: Invalid operation
libPdf (using static):
C:\Users\haav\Desktop\fbedittest\Compilier\fbc -s console "FbTemp.bas"
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libpdf.a(p_truetype.lo):(.text+0x3941): undefined reference to `_imp__CreateFontIndirectA@4'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libpdf.a(p_truetype.lo):(.text+0x3975): undefined reference to `_imp__SelectObject@8'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libpdf.a(p_truetype.lo):(.text+0x397b): undefined reference to `_imp__GetFontData@20'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libpdf.a(p_truetype.lo):(.text+0x3a2d): undefined reference to `_imp__DeleteObject@4'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libpdf.a(p_truetype.lo):(.text+0x3c3a): undefined reference to `_imp__DeleteObject@4'
FreeType(using static):
SDL\Image_test2.bas:C:\Users\haav\Desktop\fbedittest\Compilier\fbc -s console "FbTemp.bas"
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libfreetype.a(ftgzip.o):(.text+0x229): undefined reference to `inflate'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libfreetype.a(ftgzip.o):(.text+0x379): undefined reference to `inflateReset'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libfreetype.a(ftgzip.o):(.text+0x404): undefined reference to `inflateEnd'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libfreetype.a(ftgzip.o):(.text+0x6e2): undefined reference to `inflateInit2_'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libfreetype.a(ftgzip.o):(.text+0x749): undefined reference to `inflateEnd'
GTK+\combo_test.bas:C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_webp.o):(.text+0x12f): undefined reference to `WebPGetFeaturesInternal'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_webp.o):(.text+0x139): undefined reference to `WebPDecodeRGBInto'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_webp.o):(.text+0x143): undefined reference to `WebPDecodeRGBAInto'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_jpg.o):(.text+0xff): undefined reference to `jpeg_calc_output_dimensions'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_jpg.o):(.text+0x109): undefined reference to `jpeg_CreateDecompress'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_jpg.o):(.text+0x113): undefined reference to `jpeg_destroy_decompress'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_jpg.o):(.text+0x11d): undefined reference to `jpeg_finish_decompress'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_jpg.o):(.text+0x127): undefined reference to `jpeg_read_header'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_jpg.o):(.text+0x131): undefined reference to `jpeg_read_scanlines'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_jpg.o):(.text+0x13b): undefined reference to `jpeg_resync_to_restart'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_jpg.o):(.text+0x145): undefined reference to `jpeg_start_decompress'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_jpg.o):(.text+0x14f): undefined reference to `jpeg_std_error'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0x53): undefined reference to `png_create_info_struct'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0x5d): undefined reference to `png_create_read_struct'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0x67): undefined reference to `png_destroy_read_struct'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0x71): undefined reference to `png_get_IHDR'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0x7b): undefined reference to `png_get_channels'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0x85): undefined reference to `png_get_io_ptr'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0x8f): undefined reference to `png_get_PLTE'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0x99): undefined reference to `png_get_tRNS'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0xa3): undefined reference to `png_get_valid'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0xad): undefined reference to `png_read_image'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0xb7): undefined reference to `png_read_info'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0xc1): undefined reference to `png_read_update_info'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0xcb): undefined reference to `png_set_expand'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0xd5): undefined reference to `png_set_gray_to_rgb'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0xdf): undefined reference to `png_set_packing'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0xe9): undefined reference to `png_set_read_fn'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0xf3): undefined reference to `png_set_strip_16'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0xfd): undefined reference to `png_sig_cmp'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_png.o):(.text+0x107): undefined reference to `png_set_longjmp_fn'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_tif.o):(.text+0x14f): undefined reference to `TIFFClientOpen'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_tif.o):(.text+0x159): undefined reference to `TIFFClose'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_tif.o):(.text+0x163): undefined reference to `TIFFGetField'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_tif.o):(.text+0x16d): undefined reference to `TIFFReadRGBAImage'
C:\Users\haav\Desktop\fbedittest\Compilier\lib\win32/libSDL_image.a(IMG_tif.o):(.text+0x177): undefined reference to `TIFFSetErrorHandler'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib.bi(3631) error 17: Syntax error, found 's1' in '#s1 " " #cmp " " #s2, s1, #cmp, s2)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib.bi(3631) error 17: Syntax error, found 's1' in '#s1 " " #cmp " " #s2, s1, #cmp, s2)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib.bi(3631) error 17: Syntax error, found 's1' in '#s1 " " #cmp " " #s2, s1, #cmp, s2)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib.bi(3631) error 17: Syntax error, found 's1' in '#s1 " " #cmp " " #s2, s1, #cmp, s2)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib-object.bi(278) error 1: Argument count mismatch, expanding: _G_DEFINE_INTERFACE_EXTENDED_BEGIN in '_G_DEFINE_INTERFACE_EXTENDED_BEGIN(TN, t_n, T_P)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib-object.bi(278) error 1: Argument count mismatch, expanding: _G_DEFINE_INTERFACE_EXTENDED_BEGIN in '_G_DEFINE_INTERFACE_EXTENDED_BEGIN(TN, t_n, T_P)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib.bi(3631) error 17: Syntax error, found 's1' in '#s1 " " #cmp " " #s2, s1, #cmp, s2)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib-object.bi(278) error 1: Argument count mismatch, expanding: _G_DEFINE_INTERFACE_EXTENDED_BEGIN in '_G_DEFINE_INTERFACE_EXTENDED_BEGIN(TN, t_n, T_P)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\cairo\cairo.bi(173) error 17: Syntax error, found 'major' in '#major@!"."#minor@!"."#micro'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib-object.bi(278) error 1: Argument count mismatch, expanding: _G_DEFINE_INTERFACE_EXTENDED_BEGIN in '_G_DEFINE_INTERFACE_EXTENDED_BEGIN(TN, t_n, T_P)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib-object.bi(278) error 125: Too many errors, exiting
Re: New FB release coming up
Without use library calls, the main win32 package seems to well work.
Re: New FB release coming up
Hello dkl! Good job, thanks for your effort!dkl wrote:Hello everyone,
...
All that makes for some huge downloads, and I wonder what the best way to handle this might be. On one hand, we could make a "base" FB download, with "addon" packages -- on the other hand, nothing is easier than an "all-in-one" download. Perhaps both are needed.
Regarding the all-in-one (AIO) download, we've several issues here:
- a lot of work for FB developers (dkl)
- blows up the package size
- cannot be up-to date (just for a short time)
- bugs last for a long time (ie GTK+ import libraries in fbc-0.24)
- can never contain all the libraries all the users may want
This new page should contain
- a verbal description of the library (ie with further links),
- header files,
- binaries (exept for UNIX if there're packages) and
- examples
I see these advantages:
- small download size (FB package)
- extensions can get maintained by forum members (less work for FB developers)
- easy to keep headers and binaries up-to-date (independend from FB releases)
- high quality when the maintainer is keen on using the extension
- we still can bundle some (or all) extensions for convenience at this page
Re: New FB release coming up
These errors are regarding a STRING concatenation in a macro (it's without '&' and I omitted the '&' in the header to be close to the C syntax). These errors may occur in each source using #INCLUSE ONCE "glib.bi" (or "gtk/gtk.bi").VANYA wrote:GTK+\combo_test.bas:
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib.bi(3631) error 17: Syntax error, found 's1' in '#s1 " " #cmp " " #s2, s1, #cmp, s2)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib.bi(3631) error 17: Syntax error, found 's1' in '#s1 " " #cmp " " #s2, s1, #cmp, s2)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib.bi(3631) error 17: Syntax error, found 's1' in '#s1 " " #cmp " " #s2, s1, #cmp, s2)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib.bi(3631) error 17: Syntax error, found 's1' in '#s1 " " #cmp " " #s2, s1, #cmp, s2)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib-object.bi(278) error 1: Argument count mismatch, expanding: _G_DEFINE_INTERFACE_EXTENDED_BEGIN in '_G_DEFINE_INTERFACE_EXTENDED_BEGIN(TN, t_n, T_P)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib-object.bi(278) error 1: Argument count mismatch, expanding: _G_DEFINE_INTERFACE_EXTENDED_BEGIN in '_G_DEFINE_INTERFACE_EXTENDED_BEGIN(TN, t_n, T_P)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib.bi(3631) error 17: Syntax error, found 's1' in '#s1 " " #cmp " " #s2, s1, #cmp, s2)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib-object.bi(278) error 1: Argument count mismatch, expanding: _G_DEFINE_INTERFACE_EXTENDED_BEGIN in '_G_DEFINE_INTERFACE_EXTENDED_BEGIN(TN, t_n, T_P)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\cairo\cairo.bi(173) error 17: Syntax error, found 'major' in '#major@!"."#minor@!"."#micro'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib-object.bi(278) error 1: Argument count mismatch, expanding: _G_DEFINE_INTERFACE_EXTENDED_BEGIN in '_G_DEFINE_INTERFACE_EXTENDED_BEGIN(TN, t_n, T_P)'
C:\Users\haav\Desktop\fbedittest\Compilier\inc\glib-object.bi(278) error 125: Too many errors, exiting
This worked in FB version up to 0.24. Shall I fix glib.bi or will it get fixed in the new FB version?
Re: New FB release coming up
wxFBE compiles fine so far but I found some other issues:
issue1:
This code works fine in 0.24 but gives an error with the new version. Exit a function without result isn't the best way but it works so far. Is this new behavior intended?
issue2:
LBound is 1 for an uninitialized array!? This breaks a lot of my code.
Two issues in three tests (actually 3 in 3 as wxFBE also uses issue2 and will fail in runtime) isn't worth a new version. :\
Also, if there are so many new features, call it 0.30 or 1.0, but what does 0.90 mean!?
issue1:
Code: Select all
Type Bar
Public:
Declare Constructor()
Declare Constructor(value As ZString Ptr)
Declare Static Function foo(dummy As ZString Ptr) As Bar
Private:
dummy As ZString Ptr
End Type
Constructor Bar()
This.dummy = Callocate(1)
End Constructor
Constructor Bar(value As ZString Ptr)
If value = 0 Then
This.Constructor()
Exit Constructor
EndIf
This.dummy = Callocate(Len(*value))
If This.dummy = 0 Then
This.Constructor()
Exit Constructor
EndIf
For i As Integer = 0 To Len(*value)
This.dummy[i][0] = value[i][0]
Next
End Constructor
Function Bar.foo(dummy As ZString Ptr) As Bar
If dummy = 0 Then
Exit Function 'comment out and the error is gone
EndIf
Dim As Bar newBar = dummy
Return newBar 'compiler says the error is here
End Function
issue2:
Code: Select all
Dim As Integer array() 'uninitialized array
Print LBound(array), UBound(array) 'LBound = 1!?
Sleep
Print @array(0) 'this is ok
Sleep
Print @array(LBound(array)) 'this doesn't work anymore (gives 4 instead of 0 in my test)
Sleep
Two issues in three tests (actually 3 in 3 as wxFBE also uses issue2 and will fail in runtime) isn't worth a new version. :\
Also, if there are so many new features, call it 0.30 or 1.0, but what does 0.90 mean!?
Re: New FB release coming up
What TJF said :-)TJF wrote:Hello dkl! Good job, thanks for your effort!dkl wrote:Hello everyone,
...
All that makes for some huge downloads, and I wonder what the best way to handle this might be. On one hand, we could make a "base" FB download, with "addon" packages -- on the other hand, nothing is easier than an "all-in-one" download. Perhaps both are needed.
Regarding the all-in-one (AIO) download, we've several issues here:
I still think that we should spend some work to separate the development of compiler and extensions. We should create a new web page (FB-library platform's) where users can fetch one or more library extension for the desired OPs. It may be as easy as AIO installation when we have a good tutorial (or an little installer app for downloading and installing the extension files -- only this installer should be shipped with the FB-package).
- a lot of work for FB developers (dkl)
- blows up the package size
- cannot be up-to date (just for a short time)
- bugs last for a long time (ie GTK+ import libraries in fbc-0.24)
- can never contain all the libraries all the users may want
This new page should contain
for each extension (external library).
- a verbal description of the library (ie with further links),
- header files,
- binaries (exept for UNIX if there're packages) and
- examples
Re: New FB release coming up
See changelog.txt (fbc 0.90.0):MOD wrote:wxFBE compiles fine so far but I found some other issues:
issue1:This code works fine in 0.24 but gives an error with the new version. Exit a function without result isn't the best way but it works so far. Is this new behavior intended?Code: Select all
Type Bar Public: Declare Constructor() Declare Constructor(value As ZString Ptr) Declare Static Function foo(dummy As ZString Ptr) As Bar Private: dummy As ZString Ptr End Type Constructor Bar() This.dummy = Callocate(1) End Constructor Constructor Bar(value As ZString Ptr) If value = 0 Then This.Constructor() Exit Constructor EndIf This.dummy = Callocate(Len(*value)) If This.dummy = 0 Then This.Constructor() Exit Constructor EndIf For i As Integer = 0 To Len(*value) This.dummy[i][0] = value[i][0] Next End Constructor Function Bar.foo(dummy As ZString Ptr) As Bar If dummy = 0 Then Exit Function 'comment out and the error is gone EndIf Dim As Bar newBar = dummy Return newBar 'compiler says the error is here End Function
issue2:LBound is 1 for an uninitialized array!? This breaks a lot of my code.Code: Select all
Dim As Integer array() 'uninitialized array Print LBound(array), UBound(array) 'LBound = 1!? Sleep Print @array(0) 'this is ok Sleep Print @array(LBound(array)) 'this doesn't work anymore (gives 4 instead of 0 in my test) Sleep
Two issues in three tests (actually 3 in 3 as wxFBE also uses issue2 and will fail in runtime) isn't worth a new version. :\
Also, if there are so many new features, call it 0.30 or 1.0, but what does 0.90 mean!?
- EXIT FUNCTION in combination with RETURN with complex function result UDT was accepted, leaving the result UDT unconstructed
(in that case, we can always replace 'Return expression' with 'Function = expression : Exit Function')
See Community Discussion / Lbound/Ubound's dimension parameter
See also FBWiki about LBound/UBound
If you compile with option '-exx', you get the runtime error:
Aborting due to runtime error 6 (out of bounds array access) at line 7 of ...
dkl, why there is no runtime error on 'Print @array(0)' or 'Print @array(UBound(array))', but only on 'Print @array(LBound(array))' or 'Print @array(1)'?
Re: New FB release coming up
This is exactly what I want in this case and I don't want to have a pointer as result type.leaving the result UDT unconstructed
@LBound:
A valid value as an "sign" for an error is a pretty bad idea. I my case I don't know at compile time, if the array is initialized and if it is I don't know the values of lbound and ubound. So I've tested @array(LBound(array)). If the array isn't initialized, LBound(array) was 0 and the address was also 0. Index 0 was never out of bound so this worked pretty well. Now it's 1 and tries to get array(1) which is out of bounds and crashes at runtime.
So whatever dimensions it may have, I have always to check with @array(0) if it's initialized? Bad idea, because on an array with 1 to 10 one can easily call array(0) and get the value of a valid address which is right in front of the array. This may cause problems to beginners (not to mention all existing codes, which have to be changed now - code breaking - always a bad idea!) .
Re: New FB release coming up
This configuration has been justly banned to avoid returning an unconstructed object in the stack.MOD wrote:This is exactly what I want in this case and I don't want to have a pointer as result type.leaving the result UDT unconstructed
Generally, the copy constructor is always called by the compiler when a variable is passed to a procedure by value, or a result is returned from a procedure by value:
- But in the latter case of returning by value, the copy constructor is called only if the 'Return x' statement is used.
- If 'Function = x' (or 'Operator = x' or 'Property = x' or 'procedure-name = x') assignment is used: the default constructor is called once at first (a default object is always created for the result), and then the Let (Assign) operator is called at each assignment.
(remark: 'Return x' and 'Function = x' cannot be mixed)
Using fbc 0.24:
Code: Select all
Type UDT
Dim As Integer I = 1234
End Type
Function test_function (Byval X As Integer) As UDT
If X = 0 Then
Exit Function 'default object is returned
End If
Dim As Udt u
u.I = 5678
Function = u 'specific object is returned
End Function
Function test_return (Byval X As Integer) As UDT
If X = 0 Then
Exit Function 'unconstructed object is returned
End If
Dim As Udt u
u.I = 5678 'specific object is returned
Return u
End Function
Print test_function(0).I
Print test_function(1).I
Print
Print test_return(0).I
Print test_return(1).I
Sleep
Code: Select all
1234
5678
-1176087098
5678
Last edited by fxm on May 04, 2013 15:55, edited 1 time in total.
Re: New FB release coming up
When trying to compile Fbmath 0.60 by using compil.bat,
with the new FB 0.90 it gives a error messages generated by ar.exe.
I inserted a “dir complex\*.*” in the batch file to see if fbc.exe did work correctly.
ar.exe error messages are not redirected but here the are.
With FB 0.24 win32
If you look at the file size of libfbmath.a then you will see that it's 372.736 bytes, for the failed attempt it 8 bytes.
I replaced ar.exe by the version that came with FB 0.24 to solve the problem. Seems to me that the problem is with ar.exe
A problem with the new version (0.90) that more people have is this.
Mandel.bas (Fbmath 0.60).
The same error's occurs with fbc0.25_windows (fbc.exe filedate 26-1-2013).
It compiles fine with fbc 0.24 and a few daily git builds from freebasic-portal.de (FreeBASIC-win32-git-20120521 and FreeBASIC-win32-git-20120730).
with the new FB 0.90 it gives a error messages generated by ar.exe.
I inserted a “dir complex\*.*” in the batch file to see if fbc.exe did work correctly.
Code: Select all
set Fbas=D:\FreeBASIC-0.90.0rc1-win32
set Mlib=D:\FreeBASIC-0.90.0rc1-win32\bin\win32
set Cmdlin=D:\FreeBASIC-0.90.0rc1-win32\fbc.exe -c -w pedantic %a
echo Compiling all FBMath library modules...
Compiling all FBMath library modules...
for %%a in (complex\*.bas) do %Cmdlin%
dir complex\*.*
Volume in drive D is DATA Serial number is 90c0:2131
Directory of D:\fbmat060\modules\complex\*.*
4-05-2013 15:07 <DIR> .
4-05-2013 15:07 <DIR> ..
4-01-2013 17:25 22.076 complex.bas
4-05-2013 15:07 20.087 complex.o
42.163 bytes in 2 files and 2 dirs 45.056 bytes allocated
154.663.407.616 bytes free
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a complex\*.o
del complex\*.o > nul
for %%a in (curfit\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a curfit\*.o
del curfit\*.o > nul
for %%a in (equation\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a equation\*.o
del equation\*.o > nul
for %%a in (eval\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a eval\*.o
del eval\*.o > nul
for %%a in (fmath\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a fmath\*.o
del fmath\*.o > nul
for %%a in (fourier\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a fourier\*.o
del fourier\*.o > nul
for %%a in (integral\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a integral\*.o
del integral\*.o > nul
for %%a in (largeint\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a largeint\*.o
del largeint\*.o > nul
for %%a in (matrices\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a matrices\*.o
del matrices\*.o > nul
for %%a in (optim\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a optim\*.o
del optim\*.o > nul
for %%a in (plot\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a plot\*.o
del plot\*.o > nul
for %%a in (polynom\*.bas) do %Cmdlin%
polynom\polyutil.bas(71) error 41: Variable not declared, R in 'R(J) = Z(I).X'
polynom\polyutil.bas(74) error 41: Variable not declared, C in 'C(K).X = Z(I).X'
polynom\polyutil.bas(74) error 3: Expected End-of-Line, found 'X' in 'C(K).X = Z(I).X'
polynom\polyutil.bas(75) error 70: Array not dimensioned, before '(' in 'C(K).Y = Z(I).Y'
polynom\polyutil.bas(81) error 70: Array not dimensioned, before '(' in 'K = I: A = R(I)'
polynom\polyutil.bas(83) error 70: Array not dimensioned, before '(' in 'IF R(J) < A THEN K = J: A = R(J)'
polynom\polyutil.bas(83) error 70: Array not dimensioned, before '(' in 'IF R(J) < A THEN K = J: A = R(J)'
polynom\polyutil.bas(85) error 70: Array not dimensioned, before '(' in 'SWAP R(I), R(K)'
polynom\polyutil.bas(90) error 70: Array not dimensioned, before '(' in 'Z(I).X = R(I)'
polynom\polyutil.bas(97) error 70: Array not dimensioned, before '(' in 'Z(J).X = C(I).X'
polynom\polyutil.bas(97) error 125: Too many errors, exiting
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a polynom\*.o
del polynom\*.o > nul
for %%a in (proba\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a proba\*.o
del proba\*.o > nul
for %%a in (random\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a random\*.o
del random\*.o > nul
for %%a in (stat\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a stat\*.o
del stat\*.o > nul
for %%a in (strings\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a strings\*.o
del strings\*.o > nul
move libfbmath.a ..\
D:\fbmat060\modules\libfbmath.a -> D:\fbmat060\libfbmath.a
1 file moved
cd ..
dir *.a
Volume in drive D is DATA Serial number is 90c0:2131
Directory of D:\fbmat060\*.a
4-05-2013 15:07 8 libfbmath.a
8 bytes in 1 file and 0 dirs 4.096 bytes allocated
154.662.838.272 bytes free
Code: Select all
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: creating libfbmath.a
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: complex\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: curfit\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: equation\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: eval\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: fmath\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: fourier\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: integral\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: largeint\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: matrices\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: optim\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: plot\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: polynom\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: proba\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: random\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: stat\*.o: Invalid argument
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe: strings\*.o: Invalid argument
With FB 0.24 win32
Code: Select all
set Fbas=D:\FreeBASIC-0.90.0rc1-win32
set Mlib=D:\FreeBASIC-0.90.0rc1-win32\bin\win32
set Cmdlin=D:\FreeBASIC-0.90.0rc1-win32\fbc.exe -c -w pedantic %a
echo Compiling all FBMath library modules...
Compiling all FBMath library modules...
for %%a in (complex\*.bas) do %Cmdlin%
dir complex\*.*
Volume in drive D is DATA Serial number is 90c0:2131
Directory of D:\fbmat060\modules\complex\*.*
4-05-2013 15:11 <DIR> .
4-05-2013 15:11 <DIR> ..
4-01-2013 17:25 22.076 complex.bas
4-05-2013 15:11 20.087 complex.o
42.163 bytes in 2 files and 2 dirs 45.056 bytes allocated
154.662.187.008 bytes free
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a complex\*.o
del complex\*.o > nul
for %%a in (curfit\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a curfit\*.o
del curfit\*.o > nul
for %%a in (equation\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a equation\*.o
del equation\*.o > nul
for %%a in (eval\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a eval\*.o
del eval\*.o > nul
for %%a in (fmath\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a fmath\*.o
del fmath\*.o > nul
for %%a in (fourier\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a fourier\*.o
del fourier\*.o > nul
for %%a in (integral\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a integral\*.o
del integral\*.o > nul
for %%a in (largeint\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a largeint\*.o
del largeint\*.o > nul
for %%a in (matrices\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a matrices\*.o
del matrices\*.o > nul
for %%a in (optim\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a optim\*.o
del optim\*.o > nul
for %%a in (plot\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a plot\*.o
del plot\*.o > nul
for %%a in (polynom\*.bas) do %Cmdlin%
polynom\polyutil.bas(71) error 41: Variable not declared, R in 'R(J) = Z(I).X'
polynom\polyutil.bas(74) error 41: Variable not declared, C in 'C(K).X = Z(I).X'
polynom\polyutil.bas(74) error 3: Expected End-of-Line, found 'X' in 'C(K).X = Z(I).X'
polynom\polyutil.bas(75) error 70: Array not dimensioned, before '(' in 'C(K).Y = Z(I).Y'
polynom\polyutil.bas(81) error 70: Array not dimensioned, before '(' in 'K = I: A = R(I)'
polynom\polyutil.bas(83) error 70: Array not dimensioned, before '(' in 'IF R(J) < A THEN K = J: A = R(J)'
polynom\polyutil.bas(83) error 70: Array not dimensioned, before '(' in 'IF R(J) < A THEN K = J: A = R(J)'
polynom\polyutil.bas(85) error 70: Array not dimensioned, before '(' in 'SWAP R(I), R(K)'
polynom\polyutil.bas(90) error 70: Array not dimensioned, before '(' in 'Z(I).X = R(I)'
polynom\polyutil.bas(97) error 70: Array not dimensioned, before '(' in 'Z(J).X = C(I).X'
polynom\polyutil.bas(97) error 125: Too many errors, exiting
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a polynom\*.o
del polynom\*.o > nul
for %%a in (proba\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a proba\*.o
del proba\*.o > nul
for %%a in (random\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a random\*.o
del random\*.o > nul
for %%a in (stat\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a stat\*.o
del stat\*.o > nul
for %%a in (strings\*.bas) do %Cmdlin%
D:\FreeBASIC-0.90.0rc1-win32\bin\win32\ar.exe r libfbmath.a strings\*.o
del strings\*.o > nul
move libfbmath.a ..\
D:\fbmat060\modules\libfbmath.a -> D:\fbmat060\libfbmath.a
1 file moved
cd ..
dir *.a
Volume in drive D is DATA Serial number is 90c0:2131
Directory of D:\fbmat060\*.a
4-05-2013 15:11 368.820 libfbmath.a
368.820 bytes in 1 file and 0 dirs 372.736 bytes allocated
154.661.109.760 bytes free
I replaced ar.exe by the version that came with FB 0.24 to solve the problem. Seems to me that the problem is with ar.exe
A problem with the new version (0.90) that more people have is this.
Mandel.bas (Fbmath 0.60).
Code: Select all
D:\FreeBASIC-0.90.0rc1-win32\fbc -s console -R -g "mandel.bas"
mandel.o: In function `MDBCOL':
D:\fbmat060\demo\complex\mandel.bas:85: undefined reference to `HSVTORGB@24'
mandel.o: In function `MANDELBROT':
D:\fbmat060\demo\complex\mandel.bas:97: undefined reference to `CMPLX@16'
D:\fbmat060\demo\complex\mandel.bas:100: undefined reference to `CMPLX@16'
D:\fbmat060\demo\complex\mandel.bas:106: undefined reference to `CABS@4'
D:\fbmat060\demo\complex\mandel.bas:110: undefined reference to `operator pow(COMPLEX&, double)@12'
D:\fbmat060\demo\complex\mandel.bas:111: undefined reference to `operator*(COMPLEX&, COMPLEX&)@8'
D:\fbmat060\demo\complex\mandel.bas:111: undefined reference to `operator+(COMPLEX&, COMPLEX&)@8'
D:\fbmat060\demo\complex\mandel.bas:113: undefined reference to `operator*(double, COMPLEX&)@12'
D:\fbmat060\demo\complex\mandel.bas:113: undefined reference to `operator*(COMPLEX&, COMPLEX&)@8'
D:\fbmat060\demo\complex\mandel.bas:114: undefined reference to `operator+(COMPLEX&, double)@12'
D:\fbmat060\demo\complex\mandel.bas:116: undefined reference to `CABS@4'
D:\fbmat060\demo\complex\mandel.bas:127: undefined reference to `CABS@4'
mandel.o: In function `main':
D:\fbmat060\demo\complex\mandel.bas:191: undefined reference to `CMPLX@16'
Build error(s)
It compiles fine with fbc 0.24 and a few daily git builds from freebasic-portal.de (FreeBASIC-win32-git-20120521 and FreeBASIC-win32-git-20120730).
Re: New FB release coming up
Thanks for testing so far, I'm going to look into the problems.
Strange that globbing isn't working for the binutils programs. The FBMath linking errors could surely be fixed by using the proper -l option to link in the needed libraries that contain the referenced functions and operators. Due to a change in the new FB version, FB libraries need to be recompiled with the new version before it will work automatically again (without the need for explicit -l options).
I cannot reproduce the issue with GTK+\combo_test.bas and glib.bi. It could be an EOL issue perhaps, for example:
instead of:
I can understand the wish for having external libraries in separate download packages. Maybe it's time we develop a downloader app for that. I can work on that, and we can use fbc's Sourceforge download area to host the downloads, and fbc's Git repo as version control system for the headers and build scripts (if any). If someone is ready to make a website for external libraries, I could live with that too.
Seeing how the changes to lbound/ubound on uninitialized arrays could break a lot of code doing @array(lbound(array)) <> NULL to check whether the array is "uninitialized", perhaps they should be reverted. Then we'd have to declare @array(lbound(array)) <> NULL as the way to check for uninitialized arrays though, instead of a check like ubound() < lbound(). An alternative is to use lbound=0 ubound=-1 instead of lbound=1 ubound=0. That can also break code, though I'd expect it to break less code.
Strange that globbing isn't working for the binutils programs. The FBMath linking errors could surely be fixed by using the proper -l option to link in the needed libraries that contain the referenced functions and operators. Due to a change in the new FB version, FB libraries need to be recompiled with the new version before it will work automatically again (without the need for explicit -l options).
I cannot reproduce the issue with GTK+\combo_test.bas and glib.bi. It could be an EOL issue perhaps, for example:
Code: Select all
#DEFINE g_assert_cmpuint(n1, cmp, n2) _
IF 0 = (CULNGINT(n1) cmp CULNGINT(n2)) THEN _
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, _
g_strdup_printf ("assertion failed (%s): (%" G_GUINT64_FORMAT " %s %" G_GUINT64_FORMAT ")", _
#n1 " " #cmp " " #n2, CULNGINT(n1), #cmp, CULNGINT(n2)))
Code: Select all
#DEFINE g_assert_cmpuint(n1, cmp, n2) _
IF 0 = (CULNGINT(n1) cmp CULNGINT(n2)) THEN _
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, _
g_strdup_printf ("assertion failed (%s): (%" G_GUINT64_FORMAT " %s %" G_GUINT64_FORMAT ")", _
#n1 " " #cmp " " #n2, CULNGINT(n1), #cmp, CULNGINT(n2)))
Seeing how the changes to lbound/ubound on uninitialized arrays could break a lot of code doing @array(lbound(array)) <> NULL to check whether the array is "uninitialized", perhaps they should be reverted. Then we'd have to declare @array(lbound(array)) <> NULL as the way to check for uninitialized arrays though, instead of a check like ubound() < lbound(). An alternative is to use lbound=0 ubound=-1 instead of lbound=1 ubound=0. That can also break code, though I'd expect it to break less code.