Skip to content

BioLang v0.3.0

Choose a tag to compare

@Enoch-199811 Enoch-199811 released this 09 Aug 12:00
· 5 commits to main since this release

BioLang v0.3.0

A big feature release: the phone-booth methods, the first stages of a
real LLVM compiler backend, request-model refinements, and packaging
overhaul. Built on v0.1.1 (v0.2.x was skipped).

Highlights

  • Phone-booth methods@call (one booth per thread) and @ucall
    (single global booth): fixed reusable memory regions, cleared and reused on
    every call (zero allocation, zero fragmentation). Recursion is refused
    (refused: phone-booth method X does not support recursion) — direct,
    indirect and global-booth recursion all refused; ordinary methods recurse
    freely. Example: examples/16-phonebooth.bio.
  • LLVM compiler backend (stages 1 & 2) — a real AST→LLVM IR→native
    executable pipeline (bio llvm file.bio, make bio-llvm):
    • stage 1: arithmetic, control flow, methods (incl. recursion), printing;
    • stage 2: the request modelres / ref / get / cause / ALL,
      refusal propagation through call chains, stream method calls
      (Calc::div(...)), unified double number semantics (BioLang numbers are
      doubles; 10/3 = 3.33333 like the interpreter), interpreter-matching
      print formatting.
    • unsupported constructs report not yet supported by LLVM backend.
  • Annotations@read / @write (explicit read/write declarations that
    beat AST heuristics), @onlyread (write methods refused), @unfork
    (covers every fork path incl. Class + new).
  • bio build -s / -m — build a standalone executable or package the
    app + platform CLI + shared runtime into a distributable .img / .zip.
  • Memory limit flag -m-e (bio -e 256M file.bio);
    BIO_MEM_LIMIT unchanged.
  • .img v2 stores file permissions; native zip writer/reader
    (STORE method, pure C, no external zip/unzip — works on Windows).
  • Modulo % now supported by the interpreter (fmod semantics).
  • Refusal forwarding fixres of a refused request now forwards the
    refusal instead of silently swallowing it.
  • CIO print/println display refused results as refused: <reason>.
  • Docs: README Packaging section, Wiki (7 languages, Language Reference,
    BR/BTM formal models), all commits in English, AGENTS.md untracked.

Downloads

Package Platform
BioLang-v0.3.0-linux-x86_64.tar.gz Linux x86-64
BioLang-v0.3.0-linux-arm64.tar.gz Linux aarch64
BioLang-v0.3.0-macos-x86_64.tar.gz macOS Intel
BioLang-v0.3.0-macos-arm64.tar.gz macOS Apple Silicon
BioLang-v0.3.0-win64.zip Windows x86-64
BioLang-v0.3.0-win32.zip Windows x86-32
BioLang-v0.3.0-win-arm64.zip Windows arm64

Each package contains a launcher (bin/bio or bin/bio.bat) and the shared
runtime in lib/ (libbio.so / libbio.dylib / bio.dll). The LLVM backend
(bio llvm) is built from source with make bio-llvm (requires LLVM).

Known limitations

  • Threadstream / Areastream not yet declarable as explicit stream types.
  • LLVM backend stage 3 (streams/classes/needs/smart refs/phone booths) is
    future work; stage 1/2 covers arithmetic, control flow, methods, requests.
  • Windows/macOS Apple Silicon are experimental (see Platform support).

MIT © 2026 BioLang contributors