langur

download

revision history

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.

license

Langur uses the Apache license 2.0.