MiniScript 2.0 Preview 9
Pre-release
Pre-release
Preview build 9 of MiniScript 2.0. Changes since preview 8:
Language & semantics
newnow requires a map;__isacycles are rejected.- Fixed inconsistencies in how
@affects indexing. - Fixed off-by-one error in
rangeunder certain conditions (issue #14). - Fixed
NaN == NaNcomparison. - Fixed parsing of method calls where the first argument starts with parentheses, e.g.
m.f (arg1), arg2. - Map inserts now store a frozen copy of a list or map key.
- String indexing is now by Unicode code point in both C# and C++, with surrogate pairs handled identically.
infoon a function reference now reports the source code location where it was defined.
Performance
- String indexing is now O(1) instead of O(N) in the common case.
- GC policy collects more aggressively after heavy allocation, plus new facilities for collecting at appropriate
times automatically. - Removed unused opcodes (this is more of a clean-up task than performance.)
Fixes
- Fixed iteration over
localsin the C++ version. - Fixed string interning in C++, and C++ string processing where a
char(0)is involved. - Fixed two register scoping issues.
- Fixed invoking an intrinsic function through a
funcRef, and an intrinsic-clearing issue. - Fixed failure to mark the intrinsics map as a GC root.
- Class short names are now cleared before the invalidation callback.