Design records

Sailfin Enhancement Proposals

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

Read SFEP-0001
68Total
27Implemented
29Accepted
11Draft
68 proposals
SFEP-0001Accepted

SFEP Purpose and Process

process
SFEP-0002Draft

Sailfin Capsule & Model Management

tooling
SFEP-0003Accepted

Built-in Tooling

informational
SFEP-0004Implemented

sfn check — Fast Analysis Without Codegen

tooling
SFEP-0005Implemented

Colon Type Annotations

language
SFEP-0006Implemented

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

SFEP-0011Accepted

CI Test-Speed Plan

tooling

Tracks #1012, #843

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
SFEP-0015Accepted

Toolchain Independence — Sailfin-Native Backend

runtime

Tracks #1640, #1641

SFEP-0016Accepted

The Capability-Sealed Runtime

runtime

Tracks #1639, #934, #1642, #1643

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-0020Accepted

Compiler Decomposition

tooling

Tracks #345

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
SFEP-0023Accepted

Capsule-Defined Decorators

language

Tracks #1557

SFEP-0024Draft

Model Engines, Adapters, Tensors, Training

informational
SFEP-0025Implemented

Native Runtime Architecture

runtime

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

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

SFEP-0030Accepted

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

SFEP-0033Implemented

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

proposal

Tracks 1704

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

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
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-0055Accepted

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

language

Tracks SFN-440, SFN-441

SFEP-0056Accepted

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

SFEP-0057Accepted

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

language

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

SFEP-0058Accepted

Sized Integer Types and Overflow Semantics

language

Tracks SFN-501, SFN-502, SFN-503

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

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

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

Nullable Access Operators (?. and ??)

language