2026-05-25 - 0.21.1
- added use of *in* operator on ranges (test if a value is within a range)
- updated range type string to include the subtype, such as Range
- brought back parameter mutability with the *var* keyword; treated as copy on import
- fix: some naivite of duration greater than comparisons and conversion to nanoseconds to use arbitrary precision decimal (not int64)
- fix: objects needing to be copied with OpDefine, not just with OpSet codes
- limited scope blocks to statement context
- fix: bug in when to reset environment in REPL
- (internal) added Search() method to Node interface
- (internal) changed checking for first scope level declaration to use Node.Search() method
- (internal) removed some unused duration string functions
- (internal) added opcode.OpCopy; changed to add OpCopy and removed Copy() from OpSet in the VM; still needs to determine when copy is necessary (more work to do)
- (internal) renamed ast.LineDeclarationNode as ast.DeclarationNode
2026-05-03 - 0.21.0
- added catch switch syntax
- for function groupbyH(), set parameter *by* as required
- changed string mutability to immutable
- fix: allow setting values when multiple indices are involved
- fix: ensure not allowed to set immutable variable in decoupling assignment
- fix: parser to allow no-op as first in list of variables for decoupling assignment
- fix: parser checks if a simple if is used within a switch case test (cannot be done)
- copy on assignment; possibly a temporary fix for the current state of things
- removed restriction that assignment cannot be all no-op
- changed ref. to test no. in vm tests to use 1-based indexing
- (internal) fix: prevent nil pointer dereference in *CompiledCode.ReplString() receiver function when CompiledCode is not a langur function
A full revision history is included in the download.