FIBBER / A NATIVE LISP
Lisp syntax.
Native code.
No garbage collector.¶
Write expressive programs with macros and static types. Fibber brings ownership checking to Lisp, then compiles your code through LLVM to a native binary.
0.1.21 · Pre-1.0 · Linux x86-64 & Apple Silicon
01 / MEMORY
Borrow first. Count second.¶
Values within their creating scope live and die with it. Escaping values are reference counted. The compiler chooses; you write neither lifetimes nor retain/release calls.
02 / EXPRESSION
Lisp, with static types.¶
Functions, persistent collections, protocols and pattern matching. Macros operate on forms at compile time. Start small, then shape the language around your program.
03 / EXECUTION
A compiler in Fibber.¶
The self-hosted compiler lowers through LLVM. Use the JIT while developing, then build a native executable. SIMD, tensors and a work-stealing pool support numerical and parallel work.
START WITH HELLO
From source to a binary.¶
Download the release, verify its checksum and unpack it. Keep bin and share
together, and add bin to your PATH. Save the example above as hello.fib.
Linux needs glibc 2.33+ and an AVX2/FMA CPU. macOS needs Apple Silicon.
Building an executable needs cc (Xcode command-line tools on a Mac).
TAKE THE NEXT STEP
A small start. Room to grow.¶
Everyday programs¶
Persistent collections, strings, JSON and JSON Schema, regex, file and OS services, HTTP and LZ4 compression.
Numerical work¶
Typed tensors, SIMD kernels, matrix multiplication and reverse-mode automatic differentiation. GPU kernels are an experimental opt-in with external drivers.
A development loop¶
Create a project, run behaviour specs, inspect ownership decisions and use completion and diagnostics in VS Code.