Changelog
A complete history of Logos releases. Major features are highlighted in each version.
v0.4.9
2026-08-22- fixed: == and != on booleans now compare by value — booleans returned from builtins correctly equal literals
v0.4.8
2026-08-21- fixed: Interpolated strings can be followed by literal text — "${a}x${b} done" parses correctly
v0.4.7
2026-08-21- fixed: Conditions treat freshly created booleans (e.g. Go callback returns) by value — false is falsy
v0.4.6
2026-03-22- fixed: HTTP builtins now accept a table as the request body — automatically serialized to JSON
v0.4.5
2026-03-20- added: printn builtin for printing without a trailing newline; print remains the default with newline
v0.4.4
2026-03-20- added: println added as a print alias — renamed to printn in v0.4.5 (println no longer exists)
v0.4.3
2026-03-19- added: regex builtins: reMatch, reFind, reFindAll, reReplace, reSplit, reGroups
v0.4.2
2026-03-19- added: const keyword for immutable bindings — reassignment throws a runtime error
- added: range(start, end, step?) builtin for numeric iteration with optional step and countdown support
- fixed: sort() now handles both string and numeric arrays
- added: str(), int(), float() added as short aliases for type conversion
v0.4.1
2026-03-19- fixed: print: nested tables render with proper indentation, no internal detail leakage
- fixed: sort: now handles both string and numeric arrays (previously strings were silently skipped)
- fixed: args: bounds checking prevents panic when called with no script arguments
- added: str(), int(), float() as short aliases for type conversion (toStr/toInt/toFloat still work)
v0.4.0
2026-03-18- added: String interpolation: "${variable}" syntax for embedding expressions in strings
- added: Pipe operator: |> chains function calls left-to-right for readable data transformations
- added: try expression: unwraps result tables, propagates errors up the call stack
- added: Postfix operators: i++ and i-- for convenient increment/decrement
v0.3.2
2026-03-17- added: Ternary operator: condition ? trueBranch : falseBranch (nesting and chaining supported)
- fixed: ? token was emitted as ILLEGAL by golexer — fixed
v0.3.1
2026-03-17- added: Index variable in for-in loops: for i, v in col {}
- added: Dot access on table literals
- fixed: Table literal keys are string keys, not variable lookups
- fixed: Dot assignment correctly mutates table fields
- fixed: args builtin strips binary and script path — user args start at index 0
v0.3.0
2026-03-17- added: toJson and prettyJson return {ok, value, error} result objects (breaking change)
v0.2.4
2026-03-16- added: else if chaining in if expressions
- fixed: Parser synchronize() recovers on all statement starters
- fixed: Removed duplicate assignment handling in parseExpressionStatement
v0.2.3
2026-03-13- fixed: HTTP builtins now send correct request headers
v0.2.2
2026-03-13- fixed: Shell errors no longer silently swallowed
v0.2.1
2026-03-13- added: confirm: interactive CLI confirmation prompt
- added: select: interactive CLI selection menu
v0.2.0
2026-03-13- added: prettyJson builtin for formatted JSON output
v0.1.1
2026-03-13- fixed: lgs build now uses embedded stdlib files correctly
v0.1.0
2026-03-13- added: Initial public release