The BaCon project exists 15 years! Releasing 4.8
Mar 15, 2024 9:37:23 GMT 1
Post by Pjot on Mar 15, 2024 9:37:23 GMT 1
All,
Today, the BaCon project exists 15 years! It is celebrating this special event by releasing version 4.8.
Please download the latest package from the BaCon website and refresh your browser cache if the new package is not visible in your browser immediately.
This is a major release with a few important milestones.
After the hotfix in 4.7.2, the core memory handling was reorganized completely. Before, BaCon used odd memory addresses to identify high-performance strings. This lead to the situation where left-side concatenations sometimes resulted in even memory addresses, requiring an ugly fix to workaround this issue. Also, some platforms were not able to handle the odd memory addresses properly (like RPI 3 and earlier).
Now the core string engine will track each and every memory address for strings using a simple but highly effective lookup table. This implementation has an equal performance compared to the odd-address-detection. The default dimensions of the lookup table are very broad and should be sufficient for almost all purposes. However, the settings also can be changed using the new command line parameter '-t'.
Because BaCon is able to track all memory allocations, it now also can nicely clean up all used memory at the exit of a program.
To lower down the amount of memory allocations and heap usage, the core string engine uses a memory pool. This has decreased the amount of allocations with 85% and lowered the memory usage with almost 50%. The properties of the memory pool can be defined with the same command line parameter '-t'. For large programs, the memory pool effectively also will improve performance.
The binary tree implementation has been redesigned and improved so it has a more user-friendly API.
Some new commands were added, like NANOTIMER to measure nanoseconds, and TOTAL to determine the amount of items in a binary tree.
For string concatenation, a lot of BASIC-versions use the '+' symbol to concatenate strings. BaCon uses the '&' symbol by default, but now also can use the '+' symbol as well.
The performance of BaCon itself has improved after tons of tiny fixes and optimizations.
Thanks to all the people who have contributed to this latest release, especially the BaCon forum members for posting problems and verifying beta releases.
See the full list of changes for more details (please refresh your browser cache to see the latest).
Best regards
Peter
Today, the BaCon project exists 15 years! It is celebrating this special event by releasing version 4.8.
Please download the latest package from the BaCon website and refresh your browser cache if the new package is not visible in your browser immediately.
This is a major release with a few important milestones.
After the hotfix in 4.7.2, the core memory handling was reorganized completely. Before, BaCon used odd memory addresses to identify high-performance strings. This lead to the situation where left-side concatenations sometimes resulted in even memory addresses, requiring an ugly fix to workaround this issue. Also, some platforms were not able to handle the odd memory addresses properly (like RPI 3 and earlier).
Now the core string engine will track each and every memory address for strings using a simple but highly effective lookup table. This implementation has an equal performance compared to the odd-address-detection. The default dimensions of the lookup table are very broad and should be sufficient for almost all purposes. However, the settings also can be changed using the new command line parameter '-t'.
Because BaCon is able to track all memory allocations, it now also can nicely clean up all used memory at the exit of a program.
To lower down the amount of memory allocations and heap usage, the core string engine uses a memory pool. This has decreased the amount of allocations with 85% and lowered the memory usage with almost 50%. The properties of the memory pool can be defined with the same command line parameter '-t'. For large programs, the memory pool effectively also will improve performance.
The binary tree implementation has been redesigned and improved so it has a more user-friendly API.
Some new commands were added, like NANOTIMER to measure nanoseconds, and TOTAL to determine the amount of items in a binary tree.
For string concatenation, a lot of BASIC-versions use the '+' symbol to concatenate strings. BaCon uses the '&' symbol by default, but now also can use the '+' symbol as well.
The performance of BaCon itself has improved after tons of tiny fixes and optimizations.
Thanks to all the people who have contributed to this latest release, especially the BaCon forum members for posting problems and verifying beta releases.
See the full list of changes for more details (please refresh your browser cache to see the latest).
Best regards
Peter