Skip to content

release-1.5

Compare
Choose a tag to compare
@skx skx released this 16 Nov 20:52
· 152 commits to master since this release

This release, once again, focuses upon implementation cleanups.

The code base now has 98% test-coverage! That doesn't mean the interpreter is bug-free, but it does mean that some kinds of errors should now be detected by me, before users.

New Features

  • It is now possible to construct an interpreter from a string, without needing to know about the tokenizer class.
  • 98% test-coverage of our internal implementation!
  • FOR loops can now use a calculated expression for the STEP token. For example:
    • FOR I = 0 TO 20 STEP 1 + 1

BugFixes

  • Numerous minor bug-fixes.
    • Partly as a result of the increased/reworked test-coverage.
    • Some more found via fuzz-testing.

Breaking changes:

The New() function, which is the constructor for the eval package now returns a second value, which can be used to detect errors in parsing the program at load-time.

(Programs are parsed at run-time, before they're executed, to process DATA and DEF FN statements. It might be possible to call these at run-time, but it is preferable to catch errors sooner rather than later.)