Changelog

What's new in each release of the Baseline compiler.

v0.3.3 March 9, 2026

New native List and String operations, a refinement checker fix, and benchmark validation proving Baseline beats Python on all seven Hanabi benchmarks.

Standard Library

  • List.count_flips -- pancake flip loop executed entirely in Rust with in-place mutation
  • List.rotate_left, List.reverse_prefix, List.swap -- permutation primitives with CoW owning variants
  • List.push -- single-element append with copy-on-write
  • List.bisect -- linear scan for cumulative probability threshold
  • String.cyclic_substring -- extract chars with wrap-around, fast ASCII byte path
  • String.random_fasta_line -- PRNG loop with cumulative lookup and string building in one native call

Bug Fixes

  • Fixed refinement checker parsing of string equality with || operator
  • Refined String ++ operator support

Benchmarks

  • Baseline now beats Python on all 7 Hanabi benchmarks (nbody, binarytrees, fasta, fannkuch-redux, spectral-norm, pidigits, mandelbrot)
  • Added optimized benchmark programs and multi-language comparison harness

v0.3.2 March 9, 2026

Production-ready server runtime, scalar replacement of aggregates, and mutable bindings. The HTTP server gains middleware, graceful shutdown, rate limiting, compression, and CORS -- while the JIT compiler delivers major performance wins through SRA and scalar RC elision.

Server

  • JIT-compiled middleware chain with next(req) continuation
  • Graceful shutdown on SIGINT/SIGTERM with 30s connection drain
  • Per-IP rate limiting (token bucket, 100 req/s) with 429 responses
  • Gzip response compression for bodies over 1KB
  • Built-in CORS preflight handling for OPTIONS requests
  • Request header (8KB) and body (1MB) size limits with 413 responses
  • Structured request logging with request ID tracking
  • Built-in /__health endpoint
  • Keep-alive timeout (30s) and server workers via SO_REUSEPORT
  • Panic recovery with catch_unwind around handler dispatch

JIT Compiler

  • Scalar replacement of aggregates (SRA) -- record parameters decomposed into individual registers, eliminating heap allocation in tight loops
  • SRA let-floating exposes inlined records to optimization (6x nbody speedup)
  • Scalar RC elision -- skip incref/decref for Int, Float, Bool, Unit values
  • Multi-value returns for all-scalar records (one register per field)
  • Mutable field assignment compiles to direct SRA variable update (zero allocation)
  • Tail recursion modulo constructor (TRMC) rewrites recursive constructors into iterative loops
  • Typed drop-reuse codegen for enum, tuple, record, and struct values
  • Typed JitError variants and can_jit_reason() diagnostics
  • Profiling counters via BLC_JIT_COUNTERS and IR dump via BASELINE_DUMP_IR

Language

  • let mut bindings with assignment statements for mutable local variables
  • Mutable record field assignment (obj.field = val)

Tooling

  • Moved to baseline-lang GitHub organization
  • Heap benchmark gate and nbody reference outputs in CI

v0.3.0 March 5, 2026

JIT-only execution, fiber-based effect handlers, and a major stdlib expansion. The tree-walk interpreter has been removed -- Cranelift JIT is now the default and only runtime.

JIT Compiler

  • Cranelift JIT is now the default and only runtime -- the bytecode VM interpreter has been removed
  • Self-tail-call optimization (recursive calls compile to loops)
  • Base-case speculation inlines guard checks at call sites
  • Clone-on-write enum field updates bypass Arc::get_mut via safe raw pointer mutation
  • Owning dispatch for native CoW functions
  • Evidence passing transform for tail-resumptive effects
  • Float arithmetic (+, -, *, /) in native code
  • List pattern matching in JIT
  • Error propagation replaces panics with catch_unwind

Performance

  • Indexed field access -- field indices resolved at compile time, O(1) Vec lookup at runtime
  • Aggressive function inlining (lightweight functions up to 120 IR nodes)
  • Tuple-let fusion eliminates allocation from inlined multi-return
  • Non-atomic RC mode for single-threaded execution
  • Checked integer overflow replaces silent wrapping arithmetic
  • Persistent map operations optimized
  • Unboxed scalar fast path restored for non-Int scalar functions

Effects & Handlers

  • Fiber-based effect handlers with Perceus reuse analysis
  • One-shot continuation semantics codified
  • JIT effect conformance tests
  • Arithmetic on refined types

Standard Library

  • Math.sqrt, Math.sin, Math.cos, Math.atan2, Math.floor, Math.ceil
  • Float.from_int, Float.format, Int.from_float
  • Map.map, Map.filter, Map.fold, Map.entries
  • List.set, List.slice, List.fill, List.get_or
  • Implicit first-arg piping
  • 17 new API modules, 135 new functions total

Tooling

  • GitHub Actions release workflow with Homebrew-compatible tarballs
  • Conformance regression gates in CI
  • Package dependency resolution
  • Async LSP improvements
  • Language tour for new developers
  • Error message catalog with all 56 diagnostic codes

v0.2.0 February 17, 2026

Web framework, database connectors, trait system, and advanced pattern matching. This release turns Baseline into a practical language for building web services.

Web Framework

  • Router module with route definitions, Router.resources, and Router.state
  • Request module with typed parameter extraction
  • Response helpers with auto-serialization
  • Middleware module for request/response pipelines
  • Server runtime with router state injection and auto-docs
  • HttpError expanded to 12 variants with JSON:API error format
  • Structured error pipelines, multipart parsing, JWT auth, in-memory sessions
  • WebSocket support and schema-driven validation

Database

  • Generic SQL backend with Sqlite, Postgres, and Mysql connectors
  • Typed database rows with SqlValue, Row, and typed accessors
  • query_map! HOF and query_one! for all backends
  • Parameterized queries and migration runner

Type System

  • Trait/interface system with compile-time dictionary-passing dispatch
  • Record destructuring and open records with row polymorphism
  • Trait bounds with supertrait support

Pattern Matching

  • Guard patterns (match x { n if n > 0 => ... })
  • Or-patterns (match x { 1 | 2 | 3 => ... })
  • List patterns (match xs { [head, ..tail] => ... })
  • Enhanced record patterns with partial matching and literal fields

Standard Library

  • Crypto, DateTime, Regex modules
  • Result.map_err and Result.context for error conversions
  • Semantic logger with timestamps, structured fields, and JSON output
  • Unified Log API (removed _with! variants)
  • Validate module

Tooling

  • MCP server with 5 tools for AI agent integration
  • Website redesign with API reference, guides, and search
  • llms.txt and llms-full.txt for AI agent context
  • blc docs CLI search and expanded API documentation
  • Rosetta Stone and Common Agent Mistakes in llms.txt

v0.1.0 February 2, 2026

Initial release. A working compiler with type checking, effect inference, refinement types, and an interpreter runtime.

Language

  • Core types: Int, String, Boolean, Float, List<T>
  • Sum types with Option<T> and Result<T, E>
  • Closures, string interpolation, tuple evaluation
  • Pattern matching with match expressions
  • Pipe operator (|>), range expressions (1..10)
  • Module system with @prelude levels

Type System

  • Hindley-Milner-style inference for built-in generics
  • Effect inference with transitive checking via call graph
  • Refinement types with integer interval constraints (type Port = Int where self > 0)
  • Built-in effects: Console, Http, Fs, Log, Time, Random, Env

Standard Library

  • Math module with arithmetic and comparison functions
  • String module with manipulation and search
  • List module with map, filter, fold, find, head, tail
  • Option and Result modules with constructors and combinators

Tooling

  • Tree-sitter parser (tree-sitter-baseline)
  • blc check with JSON diagnostic output
  • Zed editor extension with syntax highlighting
  • Property-based tests and fuzzing targets
  • Conformance test suite (45 test files, 12 categories)