Skip to content

Releases: antomfdez/brokm

v1.1.0

Choose a tag to compare

@antomfdez antomfdez released this 13 Jun 01:38

brokm v1.1.0

Highlights:

  • add brokm build --freestanding with a reduced runtime profile for AOT builds
  • reject hosted-only natives at freestanding AOT typecheck time
  • omit -lm and compile out hosted-only runtime pieces under BK_FREESTANDING
  • add focused freestanding test coverage and docs updates
  • bump brokm -v / embedding version output to 1.1.0

brokm v1.0.0 — first stable release

Choose a tag to compare

@antomfdez antomfdez released this 10 Jun 17:07

The first stable release of brokm — a small, fast, embeddable HolyC-flavored language, written in C99 with zero dependencies.

What's in v1.0.0

  • Bytecode VM with a precise, generational mark-sweep GC (minor/major, write barrier, remembered set)
  • Gradual static type checker over HolyC-style annotations, plus typed bytecode for the int hot path
  • Baseline JIT for arm64 + x86-64 (macOS + Linux), profile-gated with deopt guards — ~2.5× the interpreter on recursive Fib
  • AOT compiler (brokm build) emitting architecture-independent C: standalone native executables that link only the runtime core and beat the JIT on make bench; --cflags/--cc cover cross-compilation
  • Self-hosting bootstrap: examples/realcc.bk, a compiler written in brokm, compiles its own source byte-identical to the C compiler
  • C embedding API with multi-instance VMs (independent heaps/GC per instance)
  • Scripting stdlib: OS/process natives (Args/Env/Shell/Input/Time/…) plus lib/std/ modules written in brokm (Str*, Arr*, Path*, ReadLines, …)
  • Multi-file programs via #include with a stdlib search path; editor support for Neovim/Vim, Sublime, Zed, and a Tree-sitter grammar
  • install.sh: one script installs and updates binary + stdlib + runtime sources in ~/.brokm

Stability promise

Golden-test outputs are byte-identical across all four execution paths — interpreter, forced-JIT, AOT, and GC-stress — verified by CI on macOS arm64 and Linux x86-64 on every push. Releases are cut only from a fully green matrix.

Install

sh install.sh    # clones/updates ~/.brokm and builds

Docs: README · Syntax · Architecture · Roadmap