Design records
Sailfin Enhancement Proposals
SFEPs capture the durable language, runtime, toolchain, and process decisions behind Sailfin.
SFEP Purpose and Process
Sailfin Capsule & Model Management
Built-in Tooling
sfn check — Fast Analysis Without Codegen
Colon Type Annotations
Unified Build Architecture
sfn fmt — Canonical Formatter
Effect Validation as Build Gate
CLI Modularization
Tracks #351
Sailfin-Native Test Infrastructure
Tracks #965, #839, #842, #840
CI Test-Speed Plan
Tracks #1012, #843
Result<T, E> and the ? Operator
Tracks #321, #323
Host-Aware exe_path Intrinsic
Agent-Legible Build/Test Output
Toolchain Independence — Sailfin-Native Backend
Tracks #1640, #1641
The Capability-Sealed Runtime
Tracks #1639, #934, #1642, #1643
Hierarchical Sub-Effects as Subsumption
Tracks #1180, #1182
Borrow / Ownership Checking for the Native Runtime
Tracks #1207, #1209
sfn/http — Typed HTTP Surface
Tracks #1321
Compiler Decomposition
Tracks #345
Native Windows Self-Host (MSVC ABI)
Tracks #1485
Darwin (macOS arm64) Memory Governor
Capsule-Defined Decorators
Tracks #1557
Model Engines, Adapters, Tensors, Training
Native Runtime Architecture
Tracks #321, #322, #451, #822, #1089, #1118, #1181, #1203, #1209
Delivery Process — Drift-Tolerant Issues, Seed Discovery, Release Cadence
CLI Modularization — Per-Worker RSS Relief First, Then Migration
Tracks #1671
Typed / Generic-Element Array Higher-Order Functions (map / filter / reduce)
Tracks #1943, #1945
Lambda expression syntax for 1.0 — keep, reform, or defer
Tracks 690,1683
First-Class Function Values
Tracks #1609, #1610, #1172
Inline `export <declaration>` syntax
Tracks #1681, #1680
Infer untyped lambda parameter and return types from the expected call-site function type
Tracks 1683
Length-aware ({i8*, i64}) ABI for query-side string runtime helpers
Tracks 1704
Structured, Enforced `x is T` Type-Guard Operator
Tracks #1753
Deriving prelude-mirror registry signatures from the prelude (kill latent ABI drift)
Tracks #572, #1779, #1780
TLS termination + upstream TLS for the native runtime (OpenSSL)
Tracks #1540, #1820, #1821, #1822
Peer-Language Process Adoption — Merge Queue, ICE Discipline, Perf History, Corpus Runs, Reduction, Fuzzing
Tracks #1806, #1807, #1808, #1809 (Tier 1, §3.13)
Generic Type Parameter Constraints and Monomorphization
Tracks #1867, #1868, #1869, #1870, #1871, #1872
Nominal Object Model — Honest Rejection of TypeScript-Shaped Data Syntax
Tracks #1860, #1887, #1888, #1838, #1855, #1900, #1904, #1905
Global Artifact Cache Store and Garbage Collection
Tracks #1892, #1893
Unified expected-type + typing-environment context for the typecheck walk
Tracks #1900, #1904, #1905
Nested / Local Function Declarations (non-capturing static `fn` items)
Tracks #1609, #1922, #1935, #1940, #1950
Phase-scoped arena reclamation to reduce per-module peak RSS
Tracks #1989
Invocation-scoped runtime identity + in-process sha256 for the test runner
Tracks #1995, #1996, #1997, #1998, #1999, #2008, #2010
Shared-frontend test runner — parent compiles, children only execute
Tracks SFN-152, #2010, #1997
Native Toolchain Version Pinning + Dispatch
Tracks SFN-167, SFN-168, SFN-169, SFN-170, SFN-171, SFN-172
Compiler Bootstrap Manifest
Tracks SFN-197
Native crypto + TLS stack — removing the OpenSSL dependency
Concurrency runtime maturity — cancel-on-fault and async I/O
Tracks #1540, #1963
Derivable Interface Implementations (@derive)
Compile-Time Match Exhaustiveness Checking
Generic Collections — Map, Set, and Tuple
Tracks #1941