A less emotional successor to liar
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
A Lisp with static types, memory safety and no garbage collector. Fibber combines
macros, ownership checking and native code for applications and numerical programs.
Its compiler is written in Fibber. Successor to liar.
Borrow first, count second. Values inside their creating scope live and die
with it. Escaping values are reference counted. The compiler chooses; programmers
write neither lifetimes nor retain/release.查看完整 README ↗A Lisp with static types, memory safety and no garbage collector. Fibber combines macros, ownership checking and native code for applications and numerical programs. Its compiler is written in Fibber. Successor to liar.
Borrow first, count second. Values inside their creating scope live and die with it. Escaping values are reference counted. The compiler chooses; programmers write neither lifetimes nor retain/release.
Fibber source → Fibber compiler → lIR → LLVM IR → native
Visit the Fibber website for searchable documentation and a quick start. Start with the tutorial, documentation map or examples. For a practice-first course, Learn Fibber the Hard Way has 16 exercises, deliberate failures and a native-command capstone. Collections, JSON/JSON Schema, LZ4, HTTP/DNS, OS services and database/crypto contracts are in the library. SIMD, tensors, autodiff, GPU protocols and relational search are explicit modules. See the library index. TLS is client-only and UNAUDITED; read security and limits.
The current release and bootstrap seed are 0.1.21, recorded in VERSION and SEED. Download your platform's archive and SHA256SUMS from GitHub releases:
fibc-0.1.21-linux-x86_64.tar.gz: glibc 2.33+, AVX2 and FMA (x86-64-v3).fibc-0.1.21-darwin-arm64.tar.gz: Apple Silicon; published since 0.1.7.sha256sum -c --ignore-missing SHA256SUMS # macOS: shasum -a 256 -c SHA256SUMS
tar xzf fibc-0.1.21-linux-x86_64.tar.gz # substitute darwin-arm64 on a Mac
export PATH="$PWD/fibc-0.1.21-linux-x86_64/bin:$PATH"
fibc --version
Keep bin/ and share/ together when relocating. Building programs needs cc
(Xcode command-line tools on Mac). LLVM is bundled in release binaries.
See platform setup
for system dependencies, Mac quarantine handling and source builds.
Save this as hello.fib:
(defun main () -> i64 (do (println "hello from fibber") 0))
hello from fibber
0
fibc run hello.fib
fibc build hello.fib -o hello
./hello
run prints main's result; an executable uses it as its exit status.
Or skip the file: fibc repl is a read-eval-print loop. Definitions persist, a
redefinition is re-checked against everything that uses it, and a refused or
trapping input leaves the session unchanged.
$ fibc repl
fib> (defun sq (x: i64) -> i64 (* x x))
; defined sq
fib> (sq 7)
49
fib> :type (map sq [1 2 3])
(map sq [1 2 3]) : (LSeq i64)
Values do not persist between inputs (the session is its source text); see the tooling guide.
repl, check, explain, serve, --server, lsp;
VS Code setup, CLI reference.make help, make quick, make gate, make doc-examples.The self-hosting check is a fixed point: stage 2 builds stage 3 and both emit
identical compiler lIR. Maintained stage-2 goldens, audited cases, behaviour specs
and executable ADRs provide additional evidence (method). Rust
tools are retired at tag seed-1 (history).
lIR and lair, its compiler, live in their own repository, tailoredshapes/lir,
with lIR's cases, tests and designs. fibc compiles lair from source, so fibber
keeps a pinned, read-only copy of lair's code and spec/lir.md: the file LIR
names the commit, scripts/sync-lir.sh updates it, and the quick gate fails
when the copy drifts.
Fibber remains pre-1.0. The owner approves release promises alongside executable acceptance checks; stability records the proposal. The roadmap, changelog and dated performance records retain development history.