Skip to content

Releases: Bio-Studio/Bio.lang

BioLang v0.4.0

Choose a tag to compare

@Enoch-199811 Enoch-199811 released this 10 Aug 03:05

BioLang v0.4.0

Editor tooling release: the VSCode extension gains a document formatter,
plus housekeeping (all commit messages are now in English; the contributor
list is cleaned up).

What's new since v0.3.0

  • VSCode extension formatter (extension v0.16.0) — a built-in
    DocumentFormattingProvider for .bio / .bl files (Shift+Alt+F):
    • 4-space indentation with block tracking (including one-line blocks and
      } else {);
    • spaces around binary operators, after commas and if/while/for;
    • strings, characters and comments are passed through untouched
      formatting never changes program semantics;
    • verified: all 17 examples are idempotent under formatting and produce
      byte-identical interpreter output after formatting.
    • New module: vscode/biolang-vscode/src/formatter.js.
  • Housekeeping — all commit messages in English; Co-Authored-By
    trailers from the earlier Claude Code era removed from history; AGENTS.md
    untracked; contributor statistics refreshed (may take GitHub a while to
    reflect).

Downloads

Package Platform
BioLang-v0.4.0-linux-x86_64.tar.gz Linux x86-64
BioLang-v0.4.0-linux-arm64.tar.gz Linux aarch64
BioLang-v0.4.0-macos-x86_64.tar.gz macOS Intel
BioLang-v0.4.0-macos-arm64.tar.gz macOS Apple Silicon
BioLang-v0.4.0-win64.zip Windows x86-64
BioLang-v0.4.0-win32.zip Windows x86-32
BioLang-v0.4.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.
  • Windows/macOS Apple Silicon are experimental (see Platform support).

MIT © 2026 BioLang contributors

BioLang v0.3.0

Choose a tag to compare

@Enoch-199811 Enoch-199811 released this 09 Aug 12:00

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

BioLang v0.1.1

Choose a tag to compare

@Enoch-199811 Enoch-199811 released this 09 Aug 03:38

BioLang v0.1.1

Bug fixes, new build modes and cross-platform packaging improvements on top
of v0.1.0. Wiki is now live.

What's new since v0.1.0

  • Annotations: @read / @write method annotations (declare a method
    read-only or write — explicit annotations take priority over AST
    heuristics); @unfork now covers every fork path including Class +
    new; @onlyread streams refuse write-method calls.
    New example: examples/15-annotations.bio.
  • bio build -s / bio build -m: -s builds a standalone executable
    (default); -m bundles the app + platform CLI + shared runtime into a
    distributable .img (default) or .zip package.
  • Memory limit flag renamed -m-e (bio -e 256M file.bio);
    BIO_MEM_LIMIT env var unchanged.
  • .img packages now store file permissions (format v2) — unpacked
    executables keep their executable bit; v1 images still readable.
  • Native zip writer/reader: .zip packages are written with the STORE
    method in pure C — no external zip/unzip tools needed (works on
    Windows); the system unzip is still used when present, so legacy
    deflate archives open fine.
  • Cross-platform: Windows fiber-based thread backend + LoadLibrary shim;
    make bin cross-compiles release trees for all 7 platforms with zig
    (no foreign SDKs). Platform support table updated.
  • Docs: README Packaging section (.img / .zip explained), build -s/-m usage, platform status; project Wiki initialized (Home,
    Build & Run, Packaging).

Downloads

Package Platform
BioLang-v0.1.1-linux-x86_64.tar.gz Linux x86-64
BioLang-v0.1.1-linux-arm64.tar.gz Linux aarch64
BioLang-v0.1.1-macos-x86_64.tar.gz macOS Intel
BioLang-v0.1.1-macos-arm64.tar.gz macOS Apple Silicon
BioLang-v0.1.1-win64.zip Windows x86-64
BioLang-v0.1.1-win32.zip Windows x86-32
BioLang-v0.1.1-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).

Known limitations

  • Threadstream / Areastream not yet declarable as explicit stream types.
  • Compiler embeds source + links the interpreter runtime; true AST→machine-code
    compilation is future work.
  • Windows/macOS Apple Silicon are experimental (see Platform support).

MIT © 2026 BioLang contributors

BioLang v0.1.0 — First public release

Choose a tag to compare

@Enoch-199811 Enoch-199811 released this 09 Aug 03:18

BioLang v0.1.0 — First public release

A stream-oriented programming language in C: interpreter + source-embedding
compiler. Every operation is a request that may be refused (res / cause);
programs are built from composable streams (Unistream, Comstream, Remstream,
Objstream, Threadstream, Timestream, IOStream, ...). MIT licensed.

Downloads

Prebuilt release trees for 7 platforms (launcher + shared runtime in lib/):

Package Contents Run
BioLang-v0.1.0-linux-x86_64.tar.gz bin/bio + lib/libbio.so ./bin/bio
BioLang-v0.1.0-linux-arm64.tar.gz bin/bio + lib/libbio.so ./bin/bio
BioLang-v0.1.0-macos-x86_64.tar.gz bin/bio + lib/libbio.dylib ./bin/bio
BioLang-v0.1.0-macos-arm64.tar.gz bin/bio + lib/libbio.dylib ./bin/bio
BioLang-v0.1.0-win64.zip bin/bio.exe + lib/bio.dll bin/bio.bat
BioLang-v0.1.0-win32.zip bin/bio.exe + lib/bio.dll bin/bio.bat
BioLang-v0.1.0-win-arm64.zip bin/bio.exe + lib/bio.dll bin/bio.bat

Source tarballs (auto-generated) — build with make or make PROFILE=release.

Highlights

  • Interpreter & compiler: run .bio sources directly (bio file.bio), or
    compile to a self-contained native executable with bio shell build (default
    output bin/<name>; the runtime libbio.a is linked in — no bio needed at
    runtime).
  • Stream model: signature streams, forked implementations, classes-as-streams.
  • Typed smart references: 28 reference types (7 permission stacks r/w/m/rw/rm/wm/rwm
    × 4 follows u/f/a/t). Read with get p, write with p = v, move the pointer
    with p++ (m permission, like C's a++); ref/cause prefix unwrapping.
  • need assumption system: on-demand provider bundling from src/ + utils/
    • dependencies; project manifests (package.toml) with git/HTTP/local
      dependency fetching.
  • Package formats: bio can pack/unpack .img and .zip archives
    (src/pack.c).
  • Memory: dynamic block-based arena (no fixed 8 MiB ceiling), configurable
    limit via -m / BIO_MEM_LIMIT (default 256 MiB in interpreted mode, no
    limit in compiled products unless set).
  • Rich IO: CIO / FIO / SIO byte & text streams (per-stream file handles),
    computation streams, timers; @onlyread / @unfork stream annotations.
  • Cross-platform: cooperative threads via ucontext (POSIX) with a Win32
    fiber backend; dlopen shim (bio_dlsym); make bin cross-compiles all 7
    platform trees with zig.
  • 14 runnable teaching examples (examples/) + a complete sample project.
  • VSCode extension: syntax highlighting, snippets, completions, run/compile
    commands (vscode/biolang-vscode/).

Platform status

  • Linux x86-64 / aarch64 — fully supported
  • macOS — works (ucontext deprecation warnings on Intel; Apple Silicon
    ucontext is known-buggy, use the release binary)
  • Windows — experimental (new fiber backend; built and packaged, community
    testing welcome)

Known limitations

  • Threadstream / Areastream not yet declarable as explicit stream types.
  • Compiler embeds source + links the interpreter runtime; true AST→machine-code
    compilation is future work.

MIT © 2026 BioLang contributors