Design records

Sailfin Enhancement Proposals

SFEPs capture the durable language, runtime, toolchain, and process decisions behind Sailfin.

Read SFEP-0001
82Total
32Implemented
33Accepted
15Draft
82 proposals
SFEP-0001Accepted

SFEP Purpose and Process

process
SFEP-0002Accepted

Capsule Distribution and the Registry Protocol

tooling
SFEP-0003Accepted

The Toolchain Surface and Its Output Contracts

tooling
SFEP-0004Implemented

sfn check — Fast Analysis Without Codegen

tooling
SFEP-0005Implemented

Colon Type Annotations

language
SFEP-0006Accepted

Unified Build Architecture

tooling
SFEP-0007Implemented

sfn fmt — Canonical Formatter

tooling
SFEP-0008Implemented

Effect Validation as Build Gate

language
SFEP-0009Superseded

CLI Modularization

tooling

Tracks #351

SFEP-0010Accepted

Sailfin-Native Test Infrastructure

tooling

Tracks #965, #839, #842, #840 (historical intake); SFN-17

SFEP-0011Implemented

Content-Addressed Test Artifacts and Deterministic Suite Partitioning

tooling

Tracks #1012, #1230, #1233, #843 (historical intake); SFN-431, SFN-545, SFN-547

SFEP-0012Implemented

Result<T, E> and the ? Operator

language

Tracks #321, #323

SFEP-0013Implemented

Host-Aware exe_path Intrinsic

runtime
SFEP-0014Accepted

Agent-Legible Build/Test Output

tooling

Tracks SFN-725, SFN-726

SFEP-0016Accepted

The Capability-Sealed Runtime — Claim Ladder and Link-Time Admission

runtime
SFEP-0017Implemented

Hierarchical Sub-Effects as Subsumption

language

Tracks #1180, #1182

SFEP-0018Accepted

Borrow / Ownership Checking for the Native Runtime

runtime

Tracks #1207, #1209

SFEP-0019Implemented

sfn/http — Typed HTTP Surface

tooling

Tracks #1321

SFEP-0020Implemented

Role-Oriented Compiler Capsules

tooling

Tracks #345 (historical epic); Linear project Role-Oriented Compiler Capsules. §3.7 steps 1-2 (landed): SFN-705, SFN-706, SFN-707, SFN-708, SFN-709, SFN-710, SFN-711, SFN-712, SFN-713, SFN-714, SFN-715, SFN-717, SFN-718, SFN-734. §3.7 steps 3-8 (groomed 2026-08-06): SFN-735 through SFN-751. §3.3.1 remediation: SFN-894.

SFEP-0021Accepted

Native Windows Self-Host (MSVC ABI)

runtime

Tracks SFN-53, SFN-54, SFN-55, SFN-56, SFN-57, SFN-58

SFEP-0022Accepted

Darwin (macOS arm64) Memory Governor

runtime

Tracks SFN-626

SFEP-0023Accepted

Capsule-Defined Decorators

language

Tracks #1557

SFEP-0024Superseded

Model Engines, Adapters, Tensors, Training

informational
SFEP-0025Implemented

Native Runtime Architecture

runtime

Tracks #321, #322, #451, #822, #1089, #1118, #1181, #1203, #1209, SFN-558

SFEP-0026Accepted

Delivery Process — Drift-Tolerant Issues, Seed Discovery, Release Cadence

process
SFEP-0027Implemented

CLI Modularization — Per-Worker RSS Relief First, Then Migration

tooling

Tracks #1671

SFEP-0028Draft

Typed / Generic-Element Array Higher-Order Functions (map / filter / reduce)

language

Tracks #1943, #1945

SFEP-0029Implemented

Lambda expression syntax for 1.0 — keep, reform, or defer

language

Tracks #690, #1683 (historical intake)

SFEP-0030Implemented

First-Class Function Values

language

Tracks #1609, #1610, #1172

SFEP-0031Implemented

Inline `export <declaration>` syntax

language

Tracks #1681, #1680

SFEP-0032Implemented

Infer untyped lambda parameter and return types from the expected call-site function type

language

Tracks #1683 (historical intake)

SFEP-0033Implemented

Length-aware ({i8*, i64}) ABI for query-side string runtime helpers

proposal

Tracks #1704 (historical intake)

SFEP-0034Accepted

Structured, Enforced `x is T` Type-Guard Operator

language

Tracks #1753

SFEP-0035Implemented

Deriving prelude-mirror registry signatures from the prelude (kill latent ABI drift)

runtime

Tracks #572, #1779, #1780

SFEP-0036Implemented

TLS termination + upstream TLS for the native runtime (OpenSSL)

runtime

Tracks #1540, #1820, #1821, #1822

SFEP-0037Accepted

Peer-Language Process Adoption — Merge Queue, ICE Discipline, Perf History, Corpus Runs, Reduction, Fuzzing

process

Tracks #1806, #1807, #1808, #1809 (Tier 1, §3.13)

SFEP-0038Implemented

Generic Type Parameter Constraints and Monomorphization

language

Tracks #1867, #1868, #1869, #1870, #1871, #1872

SFEP-0039Implemented

Nominal Object Model — Honest Rejection of TypeScript-Shaped Data Syntax

language

Tracks #1860, #1887, #1888, #1838, #1855, #1900, #1904, #1905

SFEP-0040Implemented

Global Artifact Cache Store and Garbage Collection

tooling

Tracks #1892, #1893

SFEP-0041Implemented

Unified expected-type + typing-environment context for the typecheck walk

tooling

Tracks #1900, #1904, #1905

SFEP-0042Implemented

Nested / Local Function Declarations (non-capturing static `fn` items)

language

Tracks #1609, #1922, #1935, #1940, #1950, SFN-108

SFEP-0043Implemented

Phase-scoped arena reclamation to reduce per-module peak RSS

runtime

Tracks #1989

SFEP-0044Implemented

Invocation-scoped runtime identity + in-process sha256 for the test runner

tooling

Tracks #1995, #1996, #1997, #1998, #1999, #2008, #2010

SFEP-0045Draft

Shared-frontend test runner — parent compiles, children only execute

tooling

Tracks SFN-152, #2010, #1997

SFEP-0046Accepted

Native Toolchain Version Pinning + Dispatch

tooling

Tracks SFN-167, SFN-168, SFN-169, SFN-170, SFN-171, SFN-172

SFEP-0047Implemented

Compiler Bootstrap Manifest

tooling

Tracks SFN-197

SFEP-0048Accepted

Native crypto + TLS stack — removing the OpenSSL dependency

runtime

Tracks https://linear.app/sailfin/project/native-crypto-tls-stack-zero-openssl-5ce55ca8f46e

SFEP-0049Implemented

Effect-transparency for concurrency-primitive leaves (spawn / parallel / channel send·receive)

language

Tracks SFN-86, #1702

SFEP-0050Implemented

Streamed per-test results over a captured pipe (retiring the results.log/fail.bin side-channel)

tooling

Tracks SFN-393

SFEP-0051Accepted

Workspace Manifest — Multi-Capsule Policy and the Capability Envelope

tooling

Tracks SFN-413 (Phase 1 member declaration — multi-line arrays + glob, Done), SFN-412 (workspace.toml reflow after seed pin), SFN-414 (Phase 2 root [toolchain] default), SFN-415 (Phase 3 [workspace.package]/[workspace.dependencies] inheritance), SFN-416 (Phase 4a declared-surface capability audit), SFN-418 (Phase 4b inferred-surface audit), SFN-419 (Phase 4c sfn capabilities audit + enforce/warn gate), SFN-417 (Phase 5 default-members + exclude). Epic: Linear project 'Workspace Manifest & Multi-Capsule Policy'

SFEP-0052Accepted

Accelerated ML — Substrate Interop and Capability-Typed Accelerator Programming

informational
SFEP-0053Accepted

Shape-Typed Tensor IR and Fusion

tooling

Tracks #2485, SFN-424, SFN-427, SFN-429

SFEP-0054Accepted

Low-Precision Numeric Substrate

language

Tracks #2484, SFN-423, SFN-426

SFEP-0055Implemented

Typed task handles (Task<T>) and ordered multi-await (join_all)

language

Tracks SFN-440, SFN-441, SFN-446

SFEP-0056Implemented

aarch64-Linux Target Support (Raspberry Pi Install + On-Device Self-Host)

runtime

Tracks SFN-471,SFN-472,SFN-473,SFN-474,SFN-475,SFN-476,SFN-579,SFN-580,SFN-581,SFN-644,SFN-798,SFN-799,SFN-826

SFEP-0057Implemented

String Interpolation with ${ } (migrating off {{ }})

language

Tracks SFN-482 (Phases 1–3), SFN-483 (Phase 4), SFN-576 (literal escape)

SFEP-0058Accepted

Sized Integer Types and Overflow Semantics

language

Tracks SFN-501, SFN-502, SFN-503, SFN-570, SFN-573

SFEP-0059Accepted

Typed SSA Activation — Making the Metadata IR Load-Bearing

tooling

Tracks SFN-508, SFN-509, SFN-511, SFN-512, SFN-514, SFN-517, SFN-519; structured types: SFN-585, SFN-588–SFN-606

SFEP-0060Accepted

The Owned Syscall Layer (Axis 3, tier-1 Linux x86-64)

runtime

Tracks SFN-510, SFN-513, SFN-515, SFN-516, SFN-518, SFN-520, SFN-521, SFN-522, SFN-523, SFN-524, SFN-525

SFEP-0061Accepted

Diagnostic Unification — One Coded, Spanned, Severity-Bearing Diagnostic

tooling

Tracks SFN-534, SFN-535, SFN-536, SFN-537, SFN-538, SFN-539, SFN-540, SFN-541, SFN-608, SFN-915, SFN-916

SFEP-0062Accepted

Numerical and Behavioural Contracts (the Result Pillar)

language
SFEP-0063Accepted

sfn/sync — scope and blocking predecessor for a synchronization capsule

language
SFEP-0064Draft

Generic resource-reclamation seam

runtime
SFEP-0065Draft

sfn/sync — public API surface and semantics

language
SFEP-0066Draft

Codegen Provider Ownership — Which Toolchain Roles Sailfin Owns

tooling

Tracks https://linear.app/sailfin/project/cross-platform-clang-independence-baeafe4f0a9a

SFEP-0067Draft

Platform Access Ownership — the `-nostdlib` Program

runtime
SFEP-0068Accepted

Native Cross-Target Builds (`sfn build --target=<triple>`)

tooling

Tracks SFN-774, SFN-775, SFN-776, SFN-777, SFN-1039, SFN-1117

SFEP-0069Accepted

Non-Elidable Zeroization for Uniquely Owned Secret Buffers

runtime

Tracks SFN-703, SFN-782, SFN-783, SFN-784, SFN-785, SFN-786, SFN-787, SFN-788, SFN-789, SFN-790, SFN-791

SFEP-0070Accepted

Import-Reachability Filtering of the Capsule Source Closure

tooling

Tracks SFN-804, SFN-830, SFN-831, SFN-832, SFN-833, SFN-834, SFN-894

SFEP-0071Accepted

In-Process .tar.gz Reader and Writer (sfn/archive)

tooling

Tracks SFN-753

SFEP-0072Accepted

Domain-Oriented Repository Topology

tooling

Tracks https://linear.app/sailfin/project/repository-topology-and-capsule-layout-fd4f474aaaae

SFEP-0073Accepted

Installed Toolchain Lifecycle, Exact Selection, and Update Policy

tooling

Tracks https://linear.app/sailfin/project/installed-toolchain-lifecycle-e6024b4498bb

SFEP-0074Accepted

Repo Tooling Ownership — Retiring `scripts/` into Native Verbs

tooling

Tracks https://linear.app/sailfin/project/repo-tooling-ownership-13d4826f99a9

SFEP-TBDDraft

Concurrency runtime maturity — cancel-on-fault and async I/O

runtime

Tracks #1540, #1963

SFEP-TBDDraft

Derivable Interface Implementations (@derive)

language
SFEP-TBDDraft

Compile-Time Match Exhaustiveness Checking

language
SFEP-TBDDraft

Generic Collections — Map, Set, and Tuple

language

Tracks #1941

SFEP-TBDDraft

Import-surface compaction across the phase rewind to cut emit peak RSS

runtime

Tracks SFN-382; supersedes SFN-94

SFEP-TBDDraft

Signature-Checked Interface Conformance

language
SFEP-TBDDraft

Shared runtime/dep object cache for nested builds in the e2e suite

tooling
SFEP-TBDDraft

Nullable Access Operators (?. and ??)

language
SFEP-TBDDraft

Cross-invocation runtime-object persistence for the `sfn test` link path

tooling

Tracks SFN-1086