Design records

Sailfin Enhancement Proposals

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

Read SFEP-0001
56Total
14Implemented
26Accepted
15Draft
56 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-0008Accepted

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

Result<T, E> and the ? Operator

language

Tracks #321, #323

SFEP-0013Accepted

Host-Aware exe_path Intrinsic

runtime
SFEP-0014Draft

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

Hierarchical Sub-Effects as Subsumption

language

Tracks #1180, #1182

SFEP-0018Accepted

Borrow / Ownership Checking for the Native Runtime

runtime

Tracks #1207, #1209

SFEP-0019Accepted

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 #1485

SFEP-0022Draft

Darwin (macOS arm64) Memory Governor

runtime
SFEP-0023Draft

Capsule-Defined Decorators

language

Tracks #1557

SFEP-0024Draft

Model Engines, Adapters, Tensors, Training

informational
SFEP-0025Accepted

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

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

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

language

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

SFEP-0040Accepted

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

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

Compiler Bootstrap Manifest

tooling

Tracks SFN-197

SFEP-0048Accepted

Native crypto + TLS stack — removing the OpenSSL dependency

runtime
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

Signature-Checked Interface Conformance

language
SFEP-TBDDraft

Nullable Access Operators (?. and ??)

language
SFEP-TBDDraft

Sized Integer Types and Overflow Semantics

language
SFEP-TBDDraft

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

language