Release 3
New release with many enhancements, mayor ones:
- Added string comparison operators,
- Interpreter is about 3% faster in FOR loops and other simple operations. SIEVE benchmark now takes 17 seconds.
- The integer-only IDE is now less than 8KB, the floating point IDE is 9.2kB.
- Cross compiler produces smaller executables by only including used parts of the runtime.
Minor improvements to the IDE and language:
- The IDE now can edit files with lines of up to 255 bytes.
- The IDE is a little faster to parse large files.
- More abbreviations to the statements, The list of abbreviations is in the manual.
Mayor improvements to the cross-compiler and optimizer:
- New scripts for the cross-compilers allows passing options to the compiler and linker, also writes label files for debugging.
- Cross compiler gives better errors in many cases.
- Optimizer for NEG/MUL/DIV/MOD and all bitwise operations.
- Optimizer ignores comments and can span multiple lines.
- Adds tail-call optimizations (replaces CALL/RET with JUMP and JUMP to RET with RET)
And many fixes:
- Optimizer no longer ignores negative numbers,
- Correct corner cases with MOVE / -MOVE, updates docs.
- Cleanup all variables and arrays on run, fixes on memory-clearing function.
- Fixes some cases of integer to floating point comparisons.
- Fixes parsing of NOT with parenthesis and NOT/NOT.
- Fixes errors on line numbers > 255 in the IDE.
- Fixes some corner cases in the IDE editor with lines at top/bottom of screen.
- Parsing of statements after a ':' ignored errors.