Skip to content
docs / Docs

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