Skip to content

Releases: tailoredshapes/fibber

v0.1.21

Choose a tag to compare

@github-actions github-actions released this 27 Oct 00:52

Full Changelog: v0.1.20...v0.1.21

v0.1.20

Choose a tag to compare

@github-actions github-actions released this 26 Oct 15:51

Full Changelog: v0.1.19...v0.1.20

v0.1.19

Choose a tag to compare

@github-actions github-actions released this 24 Oct 02:15

Full Changelog: v0.1.18...v0.1.19

v0.1.18

Choose a tag to compare

@github-actions github-actions released this 23 Oct 20:06

Full Changelog: v0.1.17...v0.1.18

v0.1.17

Choose a tag to compare

@github-actions github-actions released this 16 Oct 23:27

Full Changelog: v0.1.16...v0.1.17

v0.1.16

Choose a tag to compare

@tsmarsh tsmarsh released this 13 Oct 00:36

Checker: the type and ownership checker keeps the checked library between programs. emit --batch, types --batch, fibc serve and fibc repl check the library once and reuse it (a warm server check of an edited program drops from 165 ms to 28 ms; a REPL input from 188 ms to 87 ms). One-shot commands are unchanged. FIB_CHECK_CACHE=off|on|verify; verify checks every program both ways and fails on any difference. Design and controls: docs/design/persistent-checker.md.

Runtime: fibc run --trace writes its heap events through a 64 KiB buffer, flushed at exit and before any trap or abort, instead of one write per event. FIB_TIME=1 prints the phases of the front end.

Gate: faster and parallel persistent-checker controls, lsp-hardening and unit runner; profile in docs/design/gate-profile.md.

Linux x86-64-v3 and macOS arm64 tarballs. The Mac build was verified natively (shipped-binary checks, mac-check quick). Full gate passed on the tagged commit. Releases are unsigned; verify with SHA256SUMS. TLS is client-only and unaudited (docs/policy/limits.md).

fibber 0.1.15

Choose a tag to compare

@tsmarsh tsmarsh released this 12 Oct 18:51

Compilation: a cache-off build can partition into units and compile them in parallel (FIB_LIRO_PARTITION=1, FIB_LIRO_JOBS=N, FIB_LIRO_IMPORT=N); the cold self-build of the compiler drops from about 101 s to 35 s with byte-identical output at 1 and 8 jobs. Default builds and releases are unchanged (whole-program). Measurements and open questions: docs/design/compile-performance.md.

Tooling: expand --batch expands many files in one process from a snapshot of the library context. The gate now prints a budget report (wall, parallelism, critical path) and warns on regressions. fibc repl is documented in the tooling guide.

Linux x86-64-v3 and macOS arm64 tarballs. The Mac build was verified natively (shipped-binary checks, partitioned build, mac-check quick). Full gate passed on the tagged commit. Releases are unsigned; verify with SHA256SUMS. TLS is client-only and unaudited (docs/policy/limits.md).

fibber 0.1.14

Choose a tag to compare

@tsmarsh tsmarsh released this 12 Oct 15:34

Scheduler: no idle-spinner cap on Linux (2 on Darwin) after measuring a 3x slowdown on a Ryzen 5800X, a hint word for spinning workers, and a fix for a rare early-exit race (a thread now leaves the thread count before its task completes).

Compilation: the emitter builds structured lIR with no text intermediary (ADR 0025); compiled lIR objects are cached and linked per unit (ADR 0024: --no-cache, --whole-program, --time, --cache-stats). Release builds stay whole-program.

GPU: kernel atomics, block and warp reductions, structured control flow in WGSL, warp shuffles (PTX and WebGPU subgroups), f32 atomics on WebGPU, pinned host memory and async copies. Also: pruning of unreachable runtime and unread definitions (FIB_PRUNE=0 disables), the AArch64 C-backend musttail fix, the documentation site, the Hard Way course, and fibc repl documented in the tooling guide.

Linux x86-64-v3 and macOS arm64 tarballs. The Mac build was verified natively (fixed point, shipped-binary checks, mac-check quick). Full gate passed on the tagged commit. Releases are unsigned; verify with SHA256SUMS. TLS is client-only and unaudited (docs/policy/limits.md).

v0.1.13

Choose a tag to compare

@tsmarsh tsmarsh released this 08 Oct 17:21

fib.compress and an LZ4 compressor (pure fibber, byte-identical to liblz4 at levels 1-64 fast and 3-12 HC; parallel jobs on the pool), a work-stealing scheduler (Chase-Lev deques, parking, FIB_THREADS; pmap/pfor/preduce ride on it), defkernel and fib.gpu (PTX and WGSL kernel targets, shared memory), an lIR-to-C backend (--emit c, --via c --cc gcc|clang, with warnings for lIR that does not translate), GNU Make as the build coordinator (make gate, make release, make k8s-*), a stack-overflow trap (trap: stack overflow, 256 MiB main stack, FIB_STACK_MB), HOCON/Gherkin front ends' prerequisites, narrower integer literals, and the 0.1.12 AArch64 fix: calls from a callee-pops function to an ordinary C function are now notail, which avoids the LLVM AArch64 backend bug described in docs/design/aarch64-sibcall.md (the upstream report follows).

Linux x86-64-v3 and macOS arm64 tarballs. The Mac build was verified natively (fixed point, pool stress, LZ4 safety spec on 16 KiB pages, stack trap, sibcall repro, C backend) and under a sandbox with /opt/homebrew denied. fibc --via c --cc clang needs --allow-plain-tail-calls (docs/design/lir2c.md).

v0.1.12

Choose a tag to compare

@tsmarsh tsmarsh released this 07 Oct 17:57

fib.json speed (SIMD stage 1, tape, direct encoders, lazy NDJSON), fib.json.schema (JSON Schema draft 7), fib.merkle and fib.os file durability calls (sync-fd, sync-path, rename-file, truncate-fd, lock-fd), native DNS, proxies, cookies and streaming bodies in fib.http, AEAD key handles / array-blit! / RSA-PSS signing in fib.crypto, faster TLS, fibc serve and fibc repl, wasm32-wasi builds that run (WASI_SDK), field-move uniqueness, recur double-free fix, fibc check, str->keyword, executable ADRs 0010-0023, fib.compress is NOT in this release. Linux x86-64-v3 and macOS arm64 tarballs; the Mac build was verified natively and under a sandbox with /opt/homebrew denied.

Known issue (found after release; fixed in 0.1.13): on AArch64 (the macOS arm64 tarball, and any aarch64 build), a function with 9 or more arguments whose last action is a call can return through a corrupted stack frame (SIGBUS/SIGSEGV with a return address on the stack). Cause: an LLVM AArch64 backend bug (reproduced independently with plain C using clang's swiftasynccall, on Apple clang 21, Homebrew clang 21.1.8 and 23.1.2, and in llc from LLVM 17 through 22): a tail-position call from a callee-pops (tailcc) function to an ordinary C function is lowered as a sibling branch without popping the caller's incoming stack arguments. 0.1.13 marks such calls notail. Programs compiled by this release on arm64 are affected only if they contain such a function; x86-64 is not affected. Details: docs/design/aarch64-sibcall.md.