SBCL Fibers: Implementation Design for Lightweight Cooperative Threads
By
anonzzzies
Crackling crust, pillowy middle. The kind of bagel that earns a second cup of coffee.
Summary
This is a draft design document describing the implementation of lightweight userland cooperative threads (called 'fibers') for SBCL (Steel Bank Common Lisp). The document covers the motivation for fibers, design goals, terminology, and programming API including creating/running fibers, yielding/waiting mechanisms, sleep/timed waits, condition-based parking, fiber joining, spawning from fibers, and multi-carrier scheduling. It represents work-in-progress implementation details that may change during active development.
Key quotes
· 5 pulledThis is a work-in-progress draft document describing lightweight userland cooperative threads for SBCL.
The implementation is under active development and details may change.
This is a living document — you can view its revision history.
You can try it out on the fibers-v2 branch at github.com/atgreen/sbcl.
Table of Contents: Introduction, Motivation: Why Fibers?, Design Goals, Terminology, Programming API
You might also wanna read
Dynamic Borrow-Checking in a Toy Programming Language: Implementing Rust-like Memory Safety Without Static Types
This article presents a demonstration of a toy programming language that implements borrow-checking without static type-checking. The langua
C++26 Standard Draft Finalized with Reflection, Memory Safety, Contracts, and New Concurrency Framework
The C++26 standard draft has been completed, introducing major new features including reflection capabilities that allow C++ to describe its
Understanding Fil-C: A Simplified Model of Memory-Safe C/C++ Implementation
The article presents a simplified model of Fil-C, a memory-safe implementation of C/C++. It explains that while the real Fil-C uses a compil
Sky: An Experimental Elm-Inspired Programming Language That Compiles to Go
Sky is an experimental programming language that combines Go's pragmatism with Elm's elegance to create a fullstack functional programming l
Analyzing Rust's Coherence and Orphan Rules: Ecosystem Development Challenges and Proposed Solutions
This article critiques Rust programming language's coherence rules and orphan rules, which prevent implementing traits for types defined in
Zig Programming Language Devlog: LLVM Incremental Compilation Improvements (April 2026)
This is a developer log (devlog) entry for the Zig programming language, documenting recent changes to the main branch. The April 8, 2026 en
