Release Notes
Release notes are ordered newest to oldest. The documentation edition is labeled by the Matchbox major.minor series, while release notes keep the full patch version for each published build.
Matchbox 0.2.1
Matchbox 0.2.1 is a bug fix release.
This release corrects function and built-in argument order, recognizes the intended double and protocol keyword spellings, and explicitly rejects unsupported comparison, logical, bitwise-assignment, and shift-assignment operators.
Fixed
- Fixed the
byteorderbuilt-in function return value. - Fixed argument and operator parsing errors.
- Fixed lexer keyword spelling errors so
doubleandprotocolare recognized correctly.
Matchbox 0.2.0
Matchbox 0.2.0 is the first release in the 0.2 series.
This release provides the Matchbox 0.2 language baseline, including signed 32-bit integers, variables, expressions, user-defined functions, built-in functions, direct source execution, the REPL, bytecode display, and version output.
Added
- Added user-defined functions with parameters, return values, local variables, calls, and source-order name resolution.
- Added built-in functions for console output, integer math, runtime inspection, and process exit:
print,abs,clamp,min,max,byteorder, andexit. - Added bytecode disassembly through the
-dcommand-line option. - Added version output through the
--versioncommand-line option. - Added integer literal support for decimal, binary, octal, and hexadecimal forms.
- Added the
intkeyword as the supported source-language type. - Added support for top-level statements.
- Added REPL sessions for interactive expression and statement evaluation.
- Added stack overflow checks before function execution.
Changed
- Improved memory use in the compiler and runtime.
- Strengthened integer type checking across declarations, assignments, expressions, function calls, and returns.
- Updated reserved keywords to match future syntax reservations.
- Updated opcode definitions and bytecode emission for the 0.2 instruction set.
- Updated operator handling for arithmetic, bitwise, shift, unary, comparison, logical, assignment, and compound-assignment forms.
- Clarified signed integer behavior and the boundary between supported signed values and reserved unsigned syntax.
- Moved runtime constants and functions into a constant pool used by generated bytecode.
- Added stack overflow checks before function execution.
- Updated the REPL to support variable-length input.
Fixed
- Fixed the
clampbuilt-in so it enforces both its lower and upper bounds. - Fixed function and built-in argument order so arguments are received in the same order in which they are written.
- Fixed the reserved keyword spellings for
doubleandprotocol.