Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

108 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KEPs — Kaappi Enhancement Proposals

Design documents for substantial changes to Kaappi Scheme and its ecosystem. A KEP captures the motivation, design, and trade-offs of a proposal so the decision and its rationale are recorded in one place.

When a KEP is needed

Open a KEP for changes that are large, cross-cutting, or hard to reverse:

  • New runtime subsystems (e.g. an I/O reactor, a new GC strategy).
  • Language- or library-surface changes that affect compatibility.
  • New core libraries, or changes to the package manager / build model.
  • Anything where the design discussion is worth more than the diff.

Routine bug fixes, small features, and docs changes do not need a KEP — just open a pull request on the relevant repo.

Process

  1. Draft — copy template.md to keps/NNNN-short-title.md, using the next free four-digit number. Open a PR against this repo. Discussion happens on the PR.
  2. Accepted — once there is consensus, the KEP is merged with status Accepted and implementation can begin (tracked in the target repo).
  3. Final — set to Final when the implementation has shipped in a release.
  4. Rejected / Withdrawn / Superseded — recorded, not deleted, so the reasoning survives.

A KEP is a living document until it is Final; keep it in sync with the implementation as the design evolves.

Status lifecycle

Draft ──▶ Accepted ──▶ Final
  │           │
  ▼           ▼
Withdrawn   Rejected / Superseded

Index

KEP Title Status Target
0001 Event-Loop Reactor for Fiber I/O Final kaappi core
0002 Cross-Thread Channels and Multi-Core Fiber Scheduling Accepted (amended 2026-07-16: §6 capacity-0 rendezvous) kaappi core, (kaappi parallel)
0003 Shared Flat Numeric Data Draft (gated — evaluated Between, 2026-07-16) kaappi core, (kaappi parallel)
0004 Discoverable Deviations from R7RS-small Accepted kaappi core, kaappi.github.io
0005 The Diagnostic Contract Accepted kaappi core, kaappi.github.io
0006 Explicit-Renaming Macros (er-macro-transformer) Draft kaappi core
0007 Full syntax-case Support (Deferred) Draft (Informational) kaappi core
0008 A Shared IR Contract for kaappi, paal, and chaaya Draft kaappi core, paal, chaaya
0009 A (kaappi version) Library for SemVer 2.0.0 Draft kaappi core, kaappi.github.io
0010 The LLVM Native Backend Draft (Informational) kaappi core, kaappi.github.io
0011 The FFI Subsystem and the Sandbox Boundary Draft (Informational) kaappi core, kaappi.github.io
0012 thottam — The Package Manager Draft (Informational) kaappi core, kaappi.github.io
0013 The WebAssembly (wasm32-wasi) Target Draft (Informational) kaappi core, kaappi.github.io
0014 The .sbc Bytecode File Format and Compile Cache Draft (Informational) kaappi core, kaappi.github.io
0015 The Language Server (kaappi-lsp) Draft (Informational) kaappi core, vscode-kaappi, kaappi.github.io
0016 The Canonical Formatter (kaappi fmt) and Static Linter (kaappi check) Draft (Informational) kaappi core, kaappi.github.io
0017 The Value Representation and Per-Heap Garbage Collector Draft (Informational) kaappi core
0018 The Macro Expander — Expansion Algorithm and Hygiene Mechanism Draft (Informational) kaappi core
0019 The Datum Reader Draft (Informational) kaappi core
0020 The IR Pipeline and Bytecode Emitter Draft (Informational) kaappi core
0021 The Register-Based Bytecode VM Draft (Informational) kaappi core

License

MIT — see LICENSE.

About

Kaappi Enhancement Proposals (KEPs)

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages