Releases: Bio-Studio/Bio.lang
Release list
BioLang v0.4.0
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
DocumentFormattingProviderfor.bio/.blfiles (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.
- 4-space indentation with block tracking (including one-line blocks and
- 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/Areastreamnot 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
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 model —
res/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.33333like 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_LIMITunchanged. .imgv2 stores file permissions; native zip writer/reader
(STORE method, pure C, no externalzip/unzip— works on Windows).- Modulo
%now supported by the interpreter (fmod semantics). - Refusal forwarding fix —
resof 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/Areastreamnot 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
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/@writemethod annotations (declare a method
read-only or write — explicit annotations take priority over AST
heuristics);@unforknow covers every fork path includingClass+
new;@onlyreadstreams refuse write-method calls.
New example:examples/15-annotations.bio. bio build -s/bio build -m:-sbuilds a standalone executable
(default);-mbundles the app + platform CLI + shared runtime into a
distributable.img(default) or.zippackage.- Memory limit flag renamed
-m→-e(bio -e 256M file.bio);
BIO_MEM_LIMITenv var unchanged. .imgpackages now store file permissions (format v2) — unpacked
executables keep their executable bit; v1 images still readable.- Native zip writer/reader:
.zippackages are written with the STORE
method in pure C — no externalzip/unziptools needed (works on
Windows); the systemunzipis still used when present, so legacy
deflate archives open fine. - Cross-platform: Windows fiber-based thread backend + LoadLibrary shim;
make bincross-compiles release trees for all 7 platforms with zig
(no foreign SDKs). Platform support table updated. - Docs: README Packaging section (
.img/.zipexplained),build -s/-musage, 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/Areastreamnot 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
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
.biosources directly (bio file.bio), or
compile to a self-contained native executable withbio shell build(default
outputbin/<name>; the runtimelibbio.ais linked in — nobioneeded 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 withget p, write withp = v, move the pointer
withp++(m permission, like C'sa++);ref/causeprefix unwrapping. needassumption system: on-demand provider bundling fromsrc/+utils/- dependencies; project manifests (
package.toml) with git/HTTP/local
dependency fetching.
- dependencies; project manifests (
- Package formats:
biocan pack/unpack.imgand.ziparchives
(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/@unforkstream annotations. - Cross-platform: cooperative threads via ucontext (POSIX) with a Win32
fiber backend; dlopen shim (bio_dlsym);make bincross-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/Areastreamnot 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