0.2.0

On this page

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-compile Cargo 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-keep to 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 runAsync BIF 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.rs to support pre-existing stub injection and multi-target compilation.
  • Unified bytecode serialization to u32 for 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 to ucase).
Edit this page Download Markdown Last updated Oct 27, 2026, 1:45:34 PM Report an issue