This release continues the effort to implement all of the ECMA-116 Full BASIC mathematical functions by adding DATE and TIME. It also adds our first string functions, DATE$ and TIME$, also from ECMA-116 Full BASIC. It also fixes the bug where PI and MAXNUM didn't work as functions in DATA statements when -X was specified. AVX code generation was removed since it actually generated programs that were slower since this compiler has no vectorization logic. Finally, a new appendix has been added to the included book, and the generated PDF for the book is compressed and linearized, while still remaining PDF/A-1b.... read more
This release is composed of a few bug fixes, some build improvements, and an upgrade of the runtime mathematical function assembly code which is now based on SLEEF-3.5.1.
Bug Fixes:
This is another big release with many new features, including many more of the ECMA-116 Full BASIC mathematical functions, fixes for a couple of rare corner cases with the power operator, more accurate LOG2 and LOG10 runtime routines, and finally a switch from calling the kernel directly to properly using the vDSO for access to kernel time information. To make reading the assembly easier, source lines from the input BASIC program are now inserted as comments in the assembly language output.... read more
Version 2.29 of MinimalBASIC compiler release
This is a big release with major bugfixes and many new features. Even if you don't use the new features, you'll get to enjoy the improvements in accuracy. This is especially true for people who use the '-s' option (32 bit math). If you are actually reading the assembly code, there are more comments and a little bit less indirection. And last, but certainly not least, the included book continues to improve, and its appendix does document all the newly added math functions.... read more
Version 2.28.1 of MinimalBASIC compiler release
Bug fix:
Version 2.28 of MinimalBASIC compiler release
Bug Fixes:
Bug Fixes:
Improvements:
Bug Fixes:
Improvements:
Improvements:
The Binary Action Pack (BAP) with a statically linked version of the compiler has been created and added to the download area. This is for people who want to use the compiler for their ECMA-55 Minimal BASIC programs, but who do not want to build it from source. It is only for post 4.0 Linux on AMD64/INTEL64 systems.
Improvements:
This is a bugfix release.
Improvements
This release has internal improvements for both corrections and ease of maintenance. Also, the runtime string routines were improved.
Most of the work for this release involved fixing the dag module. It appeared
to be working because none of the existing test cases were complex enough, but
that was just luck. Once this was fixed, the very same complex test case
showed errors never seen before in the pretty printing code regeneration
parenthesis handling when using the unary minus operator, so the ast module was
updated to handle those cases. As part of tracking these bugs down, many other
small corrections were made, especially in the dag module self-tests which were
improved and expanded. Other work included converting the generated code
sequences for unary minus to use macros like the other operations making the
expressions in the assembly file easier to follow.... read more
This release fixes an embarrassing, long-standing bug in unary +/- handling. It also includes a complete open source book on learning to program using ECMA-55 Minimal BASIC. In addition, this release includes improvements in both the quantity and quality of source code comments.
This version improves error reporting for function calls with invalid arguments, and has fixes for detecting invalid TAB() function calls.
Version 2.11 of MinimalBASIC compiler release
Fix a minor bug in uninitialized scalar string variable reporting.
The tarball versions in the Files section older than version 1.7 have been removed.
Renumber support has been added to the pretty printer.
AVX code generation has been completed.
The featured change in this version is the moving of the assembly generating AST walking code and the semantic checking code from the parser into separate modules.
The featured change in this version is that now the scanner generates tokens
only when they are needed by the parser instead of pre-scanning the entire
input file before the parse. The other changes are many small bug fixes for
corner cases that never manifested themselves in the existing test suite
programs. In addition, error reporting was improved to provide more
information when the compiler crashes with an ICE or hits a fatal error. One
user-visible improvement is that the print buffer is flushed of any pending
output before an INPUT statement, allowing prompts to work as expected.... read more
Compiler now generates native SSE register math!