release-1.5
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.
- See eval.FromString().
- 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.)