So I've added all the fixes I planned to add to FBSL v3.5 EXCEPT the new DynC layer which I'm starting to work on now. I expect this final stage of FBSL v3.5 project to be completed in the coming 4 or 5 weeks.
In the meantime, I'd like to present the initial pre-release of FBSL v3.5 binaries for public alpha-testing. Please read the included text files for a brief description of new language features and feel free to test the binaries.
I would like to have your feedback in the form of possible suggestions and bug reports and I would also like to know if the new version is fully compatible with your existing code base.
1. Fixed a bug in #IfDef/#IfNDef which occured for some of the so-called "FBSL's intrinsic constants". Thanks Gerome!
Remarks: In fact, "FBSL's intrinsic constants" fall into 2 categories:
-- "constants" exported directly by the source code of FBSL binaries. They are exposed to the user by the binaries under symbolic names such as e.g. TRUE, FALSE, NULL, PI, other maths constants, and a few others. They always fail the #IfDef test because they are not #Defines but rather global variables with a preset value;
-- "constants" which appear due to the #Uses "@|XXXX" directive such as MB_ICONSTOP, WM_PAINT, GWL_EXSTYLE, and many, many more. They are genuine #Defines and they always pass the #IfDef test even though they are not defined by the user in the script explicitly but rather exported implicitly from the RT_RCDATA library which is originally imbedded in the FBSL binaries as a resource.
Here's a short script to exemplify it. Fiddle with #IfDefs/#IfNDefs to get the feeling. Gerome can already elaborate on this problem and its consequences some more, if he feels like it...
- Code: Select all
? PI ' THIS IS A VARIABLE FROM FBSL.EXE/.DLL PRESET TO !!3.14..., NOT A #DEFINE, SO THE TEST BELOW FAILS
#Define PI 23 ' VARIABLES CAN BE RE-DEFINED
? MB_OK ' THIS IS A GENUINE, THOUGH IMPLICIT, #DEFINE FROM "@|WIN32" PRESET TO %0 SO THE TEST BELOW PASSES
#Define MB_OK 123 ' #DEFINES CAN BE RE-DEFINED TOO
2. Restored the RegExp layer which has been missing from FBSL ever since we abandoned the LCC-Win32 compiler and changed to GCC. Enjoy regular expressions in FBSL in full conformity with the wiki!
3. Refactored the code optimization scheme a little to make the binaries some 10KB smaller.
[EDIT 22/01/13] I've removed the FBSL v3.5 Alpha distro from the site because that build contained too many bugs. Most of them are fixed now but the product is still too raw for distribution. Please stay tuned for the version Beta which may be out any time soon.