Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Proposals (docs/proposals/)

Forward-looking design proposals for things OwnLang does not do yet. The counterpart to spec/: the spec is normative (what is true today, pinned by tests); proposals are exploratory (options for tomorrow, no code commitment). Keeping them apart stops aspirational docs from lying about the code.

Each proposal is numbered P-NNN and has the same shape:

  • Statusdraft / accepted / in progress / done / rejected.
  • Motivation — the real pain it solves.
  • Scope and Non-goals — what it is not (the most important section; the whole project's discipline is refusing the soul-eating version).
  • Sketch — enough design to judge feasibility, not a full spec.
  • Open questions — what must be decided before building.

When a proposal is built, its behaviour moves into spec/ (normative) and the proposal is marked done with a pointer.

Index

# Title Status
P-001 C# → OwnIR extractor (the WPF leak spike) in progress (well past v0: WPF001–005 + DI + pool + flow + semantic resolution)
P-002 Verification backend (Boogie/Dafny) draft
P-003 Lifetime visualization (RustOwl-style) draft
P-004 WPF / UI lifetime leak profile in progress (WPF001–005 built)
P-005 IDisposable ownership profile in progress (D1/D2 built; D3/D4 via --flow-locals)
P-006 DI lifetime / captive dependency in progress (DI001–DI005 end-to-end)
P-007 ArrayPool / Span borrow-view in progress (POOL001–003 built; 004/005 first slices)
P-008 Effects & resources (Own.Effects) draft
P-009 No-GC / allocation-free regions draft
P-010 Richer type disciplines (Own.Types) draft
P-011 Editor tooling & syntax highlighting draft
P-012 Real-world bug corpus & mining in progress (corpus benchmark + real-world cases, CI-gated)
P-013 Distribution surface (how people run Own.NET) v0 built (CI/Action + dotnet tool)
P-014 Project-local semantic resolution (kills += false positives) in progress (Tier A default-on + Tier B light path --ref-dir; full MSBuild closure deferred)
P-015 Configuration surface (check selection & per-category severity) draft (stub)
P-016 Deep C# fact extraction (CFG + flow lowering; loops) in progress (B0a/B0b/B2/A1 via --flow-locals)
P-017 Multi-stack frontends (OwnTS / OwnJVM: OwnJava + OwnKotlin) draft
P-020 OwnTS React effects profile (Own.React) — the effect-storm angle draft
P-021 Async audit pack (Own.Async) draft

For priorities, milestones, the framing, and the design philosophy across all of these, see the strategy hub: docs/ROADMAP.md. P-004 … P-016 capture ideas raised in design discussion — they are on the record for consideration, drafts, not commitments.

The long-term arc (one paragraph)

OwnLang today is a sound, tested resource/borrow/lifetime checker for a small .own DSL that lowers to C# (see spec/). The arc from here: (1) retro-document and pin behaviour with the spec ✅; (2) ingest real C# via a narrow Roslyn extractor that emits OwnIR facts in the spec's vocabulary (P-001) — the first time the tool bites real code; (3) optionally export proof obligations to a verification backend for the core soundness theorem (P-002); (4) surface lifetimes/loans visually (P-003). The core stays the same checker throughout; everything else produces or consumes OwnIR facts. We resist the boil-the-ocean versions of each (full C# frontend, proving all of unsafe, XAML engine) — boredom keeps projects alive.