SHA sums SHA-256 sum 68a960dd6e0fbe1653a249a764b0964781c2afb6c1c06cee9cbdb093a8435b73 SHA-256 sum c8dde9a3ce1f94854393cebc82d6ec6a4a65e1815c05874180f4b1c0df9dca8d SHA-256 sum 1abba72cbf0dd177f9dcc7c0053b4f80ae9623644a15cb19f7ee762500f52bed


Compiling the current version of langur requires the following (see installation instructions). Since we're now using Go modules, the IDE might download and install these for you automatically.

Compiling langur 0.5 also requires the following.

revision history

2023-04-07 - 0.12.6 - updated date/time literals and duration literals to accept fractional seconds, with 1 to 9 digits after a decimal point - fixed default date/time conversion to string to include nanoseconds when present - added VM mode nowIncludesNano to determine if "now" should include nanoseconds (default false); previously would always include nanoseconds - removed deprecated syntax (from 0.12.5) for case alternate operator - changed execTh() to execTH() for consistency; deprecated using execTh() - updated execT() and execTH() to format error string newlines according to system - updated execT() to add the exit status code if returning an exception - added cd() command to change the working directory within a script; has no effect on parent processes; can't be done with execT() or execTH() since they create new processes 2023-03-10 - 0.12.5 - new syntax for alternate operator between case conditions, such as case[and]; deprecated old syntax new syntax also allows for other types of infix operators between case conditions - updated lcase(), ucase() and tcase() to accept (and return) a code point integer, not just a string - conflated code for series() and pseries() functions - fixed bug in number/math.go toInt() function 2023-02-17 - 0.12.4 - updated truthiness checking of ... number: zero value as non-truthy string: zero-length string as non-truthy regex: zero-length pattern as non-truthy range: descending as non-truthy - updated building a range to throw an exception if not valid pair of values for a range - updated toNumber() to accept a numeric range and return a prospective count for an integer range (if were to be converted to an array of elements) - changed conversion of range to string not to include parentheses - some clean up of object package; added IsTruthy() directly to Object interface - dropped superfluous toBool() and toBoolOrNull() functions - dropped using to token in place of .. ; use .. only 2023-02-05 - 0.12.3 - updated toHash() to accept ranges in place of arrays - added exit status codes to system package - revised exit status codes in main() to be more specific, using system package - updated exit() to accept an optional second argument, which it writes to standard error, appending a newline, only if the exit code is non-zero - updated exit() to accept a Boolean in place of the code argument, true indicating success (code 0) and false indicating failure and returning a generic non-zero code specific to the system (Linux or Windows) - updated exit() to restrict status code within a range specific to the system - shortened internal bi_map() and mapMultiple() functions 2023-01-25 - 0.12.2 - allow variable expansion on decoupling assignment - (also in 0.5.16) changed ZLS token to zls - (also in 0.5.16) edit langur/cpoint/ to match dropping of escape codes \P and \L (in 0.12.0) - (also in 0.5.16) dropped where() function (deprecated in 0.11.2); use filter() 2023-01-09 - 0.12.1 - fix/clarify token parsing for calling built-ins without parentheses - updated toHash() function to pass through a hash - fix warning on number literals starting with 0 to only check integers - fix warning on integer literals starting with 0 with successive zeros 2022-12-25 - 0.12.0 - changed operator precedence (prefix minus lower than exponent) and stopped lexing minus into number literal so a minus sign is processed in a mathematician's way relative to an exponent - fix straight-up numeric negation as it is parsed; no need to evaluate it later - account for prefix operator token on first argument in calling built-in without parentheses - dropped escape codes \N, \P, and \L - added simple catch (using a colon instead of curly braces); doesn't allow catch else with simple catch - renamed if statement as simple if to reflect what it really is - generate error in parsing switch/given if last condition in a case is a nil right (partial) expression and there is no space between the operator and the colon (for clarity and for future proofing in case of operators using a colon)

A full revision history is included in the download. See also the revisions and breaking changes.


Langur uses the Apache license 2.0.

The Go wrapper for decNumber and the decNumber library use an ICU license, which is included with the download.