Roadmap
Sailfin's path from alpha to a stable 1.0 release and beyond.
Release 1.0
0 of 36 items closed across 7 milestonesAccelerated ML
Enter the AI-compiler arena (Mojo/Triton/JAX/XLA) without rebuilding XLA: a shape-typed tensor IR reusing an existing accelerator substrate (Track A) plus capability-typed accelerators (Track B). Design: SFEP-0052.
Product & Adoption
Adoption of Sailfin as a language agents write better than the alternatives. The MCP-firewall gateway is one demo of that thesis, not the thesis. Gated by SFN-350.
Test Infrastructure
A Sailfin-native, Vitest/cargo-test-grade workflow via the sfn/test capsule, plus parallel test execution (CI sharding + per-test cache) to keep the pre-1.0 loop fast
Build & Toolchain
Bring the self-hosted build to a Rust/Go/Zig-class experience: per-module memory budgets, faster cold builds, a slim Makefile with sfn owning build/check/bench, compiler decomposition into sub-capsules, CLI modularization, and native Windows self-host
- Native Toolchain Pinning & Dispatch
- Compiler Hardening
- Per-Module Compile-Time Peak RSS
- CLI Follow-Ups — Phase D
- CLI Modularization
- Native sfn bench Command & sfn/bench Harness
- Native Windows Self-Host (MSVC ABI)
- Makefile Retirement — sfn Owns Build/Check/Bootstrap
- Compiler Decomposition into Sub-Capsules
- Build Performance & Production-Readiness
Structured Concurrency
Mature the concurrency pillar from its working v0 (routines, channels, spawn/await, thread-pool scheduler) to a complete model: cancel-on-fault nurseries, an epoll/kqueue async-I/O reactor, and a bridged websocket runtime.
Effect System & Language Core
Harden the effects pillar and the language substrate beneath it: hierarchical effects, effect polymorphism, first-class function values, and capsule-defined decorators — the type-system keeping effect annotations honest across generics & higher-order code
Capability-Sealed Runtime
The 1.0 hallmark: extend Sailfin’s compile-time capability enforcement into a runtime seal, so a program provably cannot exceed its declared effects at run time. Spans the seal-sufficient native backend, an owned syscall layer, per-task capability context
Post-1.0
These workstreams begin after a stable self-hosted toolchain ships.
Enterprise Hardening & AI Integration
Library-level AI support, taint tracking, and advanced safety features — delivered as capsules, not language syntax.
- sfn/ai capsule — model invocation, prompt templating, generation provenance (replaces the removed model/prompt/tool/pipeline keywords)
- Secret<T> / PII<T> taint tracking integrated with the effect system
- sfn lsp — language server for IDE integration
- sfn audit enhancements — transitive capability analysis, SBOM generation
- User-facing ownership & full borrow checking (&T, &mut T, shared borrows, lifetimes) — Phase U, widening the 1.0 runtime memory-safety floor (epic #1209) to user code.
Platform & Ecosystem
Runtime, tooling, and ecosystem infrastructure for post-1.0 growth.
- Async runtime — Sailfin-native event loop and async I/O (the v0 task scheduler, channels, spawn/await, and parallel shipped pre-1.0; post-1.0 scope is the non-blocking event loop and TLS/keep-alive network integration)
- Runtime diagnostics — structured tracing and allocation telemetry
- WebAssembly emission target
- Native test framework — golden, adversarial, and replay test types
- |> pipeline operator with async and lazy semantics
- GPU effect enforcement and tensor dispatch
Backlog & Exploration
Workstreams without an architected Linear initiative yet. Some will graduate into initiatives once design work lands; others stay exploratory.
- Perf-parity native backend — the post-1.0 long tail beyond the seal-sufficient backend (#1640): full optimization and codegen maturity after the 1.0 capability seal lands
- Structured concurrency (v0 shipped) — routine, channel, spawn/await, parallel, scheduler work today; atomics beyond channel-send and richer sync primitives are post-1.0
- Effect system hardening — validate_effects() is a build gate (shipped); Raw-degradation holes closed for cast (#1627), ternary (#1690), and is type-guard (#1753); remaining: prefix */& and assignment-as-expression (#1180-c); hierarchical sub-effects (detection + manifest tightening) shipped (SFEP-0017); effect polymorphism post-1.0
- Phase 2 containers — closures with capture, generic constraints, drop emission
- Documentation expansion — production-quality site coverage, remove legacy stage references
- LLM adoption levers — llms.txt, sfn check --json, MCP server, Rosetta Code corpus
- Release pipeline hardening — signed checksums, installer CI, self-hosted-only artifacts
- unsafe capability enforcement
- Currency literals ($0.05) and time literals (1s, 150ms)
- Notebook and interactive tooling
- Effect handlers (algebraic effect semantics)
Contributing
Open an issue or start a discussion in a pull request. Tag it with the appropriate milestone label so it can be triaged against the 1.0 scope. Major design changes that affect the language or ABI should reference a written proposal in docs/proposals/ before implementation begins.