---
title: 0.5.0
description: "Built-in web server, .bxm templates, module system, Cranelift JIT and ESP32 firmware."
icon: phosphor-duotone:tag
order: 11
---

Released 2026-03-18. [GitHub release](https://github.com/ortus-boxlang/matchbox/releases/tag/v0.5.0) | [Downloads](https://downloads.ortussolutions.com/ortussolutions/matchbox/0.5.0/)

## Added
- **Built-in Web Server**: Integrated a high-performance native web server based on Axum and Tokio directly into the CLI.
- **BoxLang Markup (BXM)**: New `.bxm` template support with a pluggable transpiler that converts markup into high-speed VM bytecode.
- **Web Scopes**: Automatic injection of `url`, `form`, `cookie`, `session`, and `cgi` scopes for web requests.
- **Integrated Web CLI**: New CLI flags: `--serve`, `--port`, `--host`, and `--webroot` for instant web hosting.
- **Output Buffering**: Added request-level output buffering to the VM and a new `writeOutput()` BIF.
- **Easy Install Scripts**: One-liner installation scripts for Linux, macOS (bash), and Windows (PowerShell).
- **Multiple Release Variants**: CI now produces "Fat" (all-in-one), "Slim" (no stubs), and "Server" (headless runtime) binaries.
- **Module System**: Dynamic module discovery from `matchbox.toml` and `--module` CLI flags; new `ModuleInfo` struct encapsulating module metadata.
- **Native Module Support**: Load native Rust `.so` modules and auto-register exported BIFs without boilerplate.
- **Module Settings**: Settings support in module lifecycle hooks for configurable modules.
- **Cranelift JIT Compilation (Tier-1 & Tier-2)**: Initial JIT backend using Cranelift. Tier-1 eliminates dead-code in empty loops; Tier-2 translates numeric loop bodies to Cranelift SSA IR.
- **JIT Type Guards and Deoptimization**: Type-checked JIT paths that fall back to the interpreter on type mismatch.
- **JIT Tier-3 — Array Iteration**: `ArrayIterJitFn` for JIT-compiled numeric array iteration.
- **JIT Tier-3 — Struct Inline Caching**: Per-site polymorphic shape-based caching for struct property access within JIT-compiled code, with deoptimization support.
- **JIT Hot Function Compilation and OSR**: Persistent profiling counters across quanta, fast-path execution for hot functions, and On-Stack Replacement (OSR) for long-running loops.
- **JIT Tier-4 — Leaf Function Calls**: JIT compilation for call sites targeting leaf functions.
- **JIT Shape ID and Property Loading**: Struct property access via JIT using shape IDs and inline caches.
- **JIT String Concatenation**: JIT-compiled string concatenation via `jit_concat`.
- **JIT Enabled by Default**: JIT compilation is now active by default; no extra flag required.
- **File System BIFs**: `directoryExists`, `directoryCreate`, `directoryDelete`, `directoryList`, `fileExists`, `fileDelete`, `fileMove`, `fileCopy`, `fileInfo`, `fileCreateSymlink`, `fileSetExecutable`, `fileRead`, `fileWrite`.
- **HTTP BIF**: `httpRequest` supporting GET, POST, PUT, and DELETE methods.
- **JSON BIFs**: `jsonSerialize` and `jsonDeserialize` for encoding and decoding JSON data.
- **Cryptography BIF**: `hash` for SHA-256 hashing.
- **String BIFs**: `trim`, `listToArray`, `indexOf`, and `chr`.
- **ESP32 Firmware Support**: New `matchbox-esp32-runner` crate; CLI flags `--flash`, `--full-flash`, and `--chip` for building and flashing bytecode to ESP32 devices; watch mode for live updates during development.
- **Web WASM Target**: Stub management extended to support browser/web WASM targets alongside the existing WASM container target.
- **Elvis Operator (`?:`)**: Null-coalescing Elvis operator for concise null checks.
- **Safe Member Access (`?.`)**: Null-safe chained member access operator.
- **`while` Loop**: Full `while` loop support in the parser and compiler.
- **`switch` Statement**: `switch`/`case` statement with `break` support.

## Changed
- **Weakly Typed Math**: The `ADD` opcode now automatically converts strings to numbers if possible, matching BoxLang behavior.
- **Escaped Quote Support**: Strings now support BoxLang-style escaping using double-quotes (`""` and `''`).
- **Flat Function Representation**: Refactored `Chunk` and VM to use a flat, string-keyed function model instead of nested chunks; `CallFrame` now carries a direct chunk reference for improved dispatch.
- **Watch Mode**: Platform-specific process handling for more reliable live-reload behavior on Linux, macOS, and Windows.

## Fixed
- Fixed literal hash (`#`) parsing issues in `bxm` templates by implementing `##` escaping.
- ESP32 binary production logic and serial port handling in watch mode.
- ESP32 Docker image tagging and `Reflect.set` index usage.
- Set `RUSTUP_HOME` and `CARGO_HOME` correctly in ESP32 build environment.
- Regression in `LOCAL_JUMP_IF_NE_CONST` optimization and return propagation.
