BaCon 4.3 released
Dec 31, 2020 23:01:13 GMT 1
Post by Pjot on Dec 31, 2020 23:01:13 GMT 1
All,
BaCon version 4.3 has just been released. Please download the latest from the BaCon website and refresh your browser cache if the new package is not visible in your browser immediately.
This release continues the large code overhaul which was started in 4.2. Most importantly, the M4 macro processor which is used to analyze dependencies to internal BaCon functions, now has been replaced for the Flex lexical analyzer.
Using Flex, BaCon can determine the exact list of required code, avoiding code redundancy even more. As a result, the average resulting binary size has shrunk with 15%-25%.
While Flex returns a list of required functions, the need for good performing delimited string functions became urgent. All the delimited string functions were reviewed and most of the functions have been improved in terms of performance (in some cases 10x faster, or even more, like UNIQ$ which now performs more than 100x faster).
Also the internal string engine has been reviewed and improved. The memory usage was tuned so it does not use more memory than necessary.
The functions OBTAIN$ and LOOKUP (including their SORT variations) now also perform 100x to 200x faster compared to the previous implementation.
Thanks to everybody who has contributed to this latest release, especially forum members vovchik and rikky for their bug reports and joe for performing a lot of testing and sharing his code.
See the full list of changes for more details (please refresh your browser cache to see the latest).
Best regards
Peter
BaCon version 4.3 has just been released. Please download the latest from the BaCon website and refresh your browser cache if the new package is not visible in your browser immediately.
This release continues the large code overhaul which was started in 4.2. Most importantly, the M4 macro processor which is used to analyze dependencies to internal BaCon functions, now has been replaced for the Flex lexical analyzer.
Using Flex, BaCon can determine the exact list of required code, avoiding code redundancy even more. As a result, the average resulting binary size has shrunk with 15%-25%.
While Flex returns a list of required functions, the need for good performing delimited string functions became urgent. All the delimited string functions were reviewed and most of the functions have been improved in terms of performance (in some cases 10x faster, or even more, like UNIQ$ which now performs more than 100x faster).
Also the internal string engine has been reviewed and improved. The memory usage was tuned so it does not use more memory than necessary.
The functions OBTAIN$ and LOOKUP (including their SORT variations) now also perform 100x to 200x faster compared to the previous implementation.
All argument handling for statements have been standardized and the internal use of global variables has been reduced to an absolute minimum. This increases maintainability and avoids unexpected side effects.
Lastly, next to code cleaning, some bugs were found and fixed. Interestingly, the overall code size shrunk with another 300 lines.
Thanks to everybody who has contributed to this latest release, especially forum members vovchik and rikky for their bug reports and joe for performing a lot of testing and sharing his code.
See the full list of changes for more details (please refresh your browser cache to see the latest).
Best regards
Peter