0.2.0
Released 2026-03-07. GitHub release | Downloads
Added
- BoxLang-Authored Prelude: Standard BIFs (e.g.,
arrayMap,structEach,arrayFilter,isEmpty) are now implemented in BoxLang, reducing core VM size. - Tree-Shaking Compiler: Automated dependency analysis to exclude unused prelude functions from standalone binaries.
- Cross-Compilation Support: Embedded runner stubs for Linux, macOS, and Windows into "fat" CLI binaries via the
cross-compileCargo feature. - Multi-Stage CI: Refactored GitHub Actions to natively build stubs on each OS and aggregate them into single distribution binaries.
- Namespaced Function Attributes: Support for
@matchbox-keepto explicitly preserve symbols from tree-shaking. - New CLI Flags:
--keep <symbols>: Manually preserve BIFs in the final binary.--no-shaking: Disable tree-shaking to include the full prelude.--no-std-lib: Completely exclude the standard library.
- Java Interop: Implemented dynamic JNI reflection bridge for automatic Java method discovery and invocation.
- Asynchronous Execution: Implemented
runAsyncBIF and VM-level fiber spawning. - Documentation: Added comprehensive documentation structure in
/docs.
Changed
- Migrated multiple BIFs (Math, Array, Struct) from Rust implementations to the BoxLang prelude.
- Refactored
build.rsto support pre-existing stub injection and multi-target compilation. - Unified bytecode serialization to
u32for better cross-platform compatibility.
Fixed
- Fixed specialized integer math opcodes (
OpAddInt,OpSubInt,OpMulInt) to correctly handle float-backed constants. - Resolved grammar conflict between classic for-loop initialization and optional semicolons.
- Fixed case-insensitivity in member method resolution (e.g.,
.toUpperCase()correctly maps toucase).