Skip to content

Release 3

Compare
Choose a tag to compare
@dmsc dmsc released this 19 Feb 02:38
· 710 commits to master since this release

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.