0.3.0
Released 2026-03-10. GitHub release | Downloads
Added
- System BIFs: Added
createUUID(),createGUID(), andgetSystemSetting(). - CLI BIFs: Added
cliGetArgs()(structured parsing),cliRead(),cliConfirm(),cliClear(), andcliExit(). - Expanded Array Library: 20+ new BIFs including
arraySort,arrayFindNoCase,arrayAvg,arraySum,arrayUnique, etc. - Expanded Struct Library: 15+ new BIFs including
structAppend,structMap,structFilter,structSort,structKeyExists, etc. - Math BIFs:
abs,min, andmax. rust:Imports: Support for importing native Rust modules and classes usingimport rust:path.to.Module.- MatchBox Macros: New
matchbox-macroscrate for zero-boilerplate Rust-to-BoxLang interop (automatic BIF and Class registration). - Polymorphic Inline Caches (PIC): Enhanced member access performance with support for multiple shapes per call site.
- Generational Garbage Collection: Improved GC performance with young/old generation separation and optimized allocation strategies.
- String Interning: Added a global string interner for deduplicating identifiers and property names, reducing memory overhead.
- Fiber Scheduling: Implemented timeslice-based quantum management and priority handling for concurrent tasks.
- Logical Operators:
||,&&, and unary!(with short-circuit evaluation). - Ternary Operator:
condition ? trueValue : falseValueexpressions, nestable. continueStatement: Skip to the next iteration in bothforandfor-inloops.- Sparse Array Assignment: Assigning to an out-of-bounds array index auto-grows the array, filling gaps with
null. Reading beyond the end also returnsnullinstead of throwing. --output <path>CLI flag: Override the output file path when compiling a script.--strip-sourceCLI flag: Strip embedded source text from compiled.bxboutput for smaller binaries (~35% reduction).- JS Interop (WASM target):
JsHandle-based host function bridge (matchbox_js_host) for DOM and JS API access from scripts.
Changed
- Flat u32 Bytecode: Refactored the entire VM to use a high-performance flat u32 opcode encoding.
- Optimized Loop Handling: Added specialized
FOR_LOOP_STEPopcodes for faster iteration. - Generic
len(): Thelen()BIF now natively supports Arrays, Structs, and Strings.
Fixed
- Fixed critical stack management bug in
CALLwhere passing too many arguments caused a subtraction overflow. - Enabled string comparison support in
GREATERandLESSopcodes to allow sorting strings in prelude functions. - Fixed deserialized function chunks causing an index-out-of-bounds panic in the VM.
- Fixed source text being duplicated into every function/method sub-chunk at compile time.
continuenow works correctly insidefor-inloops.