Vitte Roadmap 161-200 (Pro Version)
Steering framework
Scope: Complete Vitte's transition from an advanced compiler to a complete language platform, without sacrificing reliability.
Guiding principle: any added complexity must remain strictly lower than the system confidence it provides.
Definition of done global:
- measurable functional impact
- readable and actionable diagnostics
- non-regression and robustness tests
- synchronized technical documentation
- risque residuel explicite et accepte
Strategic streams
Stream A - Type System, Inference, Generics, Traits (161-165, 168)
161. Advanced Type Inference
- Objective: improve ergonomics without loss of static safety.
- Deliverables:
- inference of local variables
- inference of simple returns
- coherent propagation of constraints
- unique unification engine
- precise ambiguity diagnostics
- explicit fallback rules
- Acceptance:
- no soundness regression on the typing suite
- ambiguity diagnostics with concrete suggestion
162. Generics Foundation
- Objective: introduce controlled and predictable generics.
- Deliverables:
- generic parameters
- type substitution
- minimal monomorphization
- simple constraints (base bounds)
- clear generic diagnostics
- Acceptance:
- generic standard examples compile
- localized constraint errors with reliable spans
163. Generic Monomorphization
- Objective: generate specialized instances without unnecessary duplication.
- Deliverables:
- instance cache
- deterministic specialization keys
- elimination of duplicates
- MIR specialization
- backend specialization
- Acceptance:
- deterministic build for same inputs
- reduction of duplicates verified by metrics
164. Trait / Interface Foundation
- Objective: provide a stable typical abstraction.
- Deliverables:
- definitions of traits/interfaces
- method resolution
- verification of impl
- recovery diagnostics
- minimum line bounds
- Acceptance:
- consistency of impl guaranteed
- resolution ambiguity properly reported
165. Dynamic Dispatch Support
- Objective: support runtime polymorphism safely.
- Deliverables:
- vtables
- fat pointers
- runtime dynamic dispatch
- verification object safety
- Stable ABI for dyn types
- Acceptance:
- valid dyn calls on supported targets
- explicit rejection of non-object-safe cases
168. Const Generics Foundation
- Objective: support constant parameters in types.
- Deliverables:
- const parameters
- integration eval const
- generic tables
- overflow diagnostics
- Acceptance:
- deterministic const evaluation
- reproducible and understandable overflow errors
Stream B - Pattern Semantics & Completeness (166-167)
166. Advanced Pattern Matching
- Objective: make the
matchrobust and complete. - Deliverables:
- completeness check
- detection of unreachable branches
- nested patterns
- guards (if active)
- correction-oriented diagnostics
- Acceptance:
- no false negative criticism on completeness
- dead branches precisely detected
167. Exhaustiveness Engine
- Objective: ensure full coverage of variants.
- Deliverables:
- decision tree
- variant coverage
- wildcard analysis
- unreachable detection
- Acceptance:
- reusable engine for
match/select - complexity mastered on large enums
Stream C - Macro & Frontend Pipeline (169-170)
169. Macro System Foundation
- Objective: add metaprogramming without weakening the language.
- Deliverables:
- hygienic macros
- token expansion
- recursion limits
- diagnostics with macro spans
- trace of expansion
- Acceptance:
- hygiene validated in case of name capture
- recursion stopped with actionable message
170. Macro Expansion Pipeline
- Objective: integrate the expansion into the frontend in a stable manner.
- Target pipeline:
- source -> lexer -> macro expand -> parser -> AST
- Verifications:
- correct spans from start to finish
- diagnostics preserved after expansion
- recursion protection safe
Stream D - Async, Coroutines, Concurrency (171-174)
171. Async Foundation
- Objective: establish async primitives.
- Deliverables:
- async functions
- lowering towards futures
- lowering
await - async MIR support
- async misuse diagnostics
172. Coroutine Lowering
- Goal: convert async to reliable state machine.
- Deliverables:
- Generator MIR
- ellipsis/resume
- captures of premises
- drop safety
173. Concurrency Memory Model
- Objective: formalize concurrent memory behavior.
- To document:
- atomics
- synchronization
- inter-thread visibility
- ordering rules
- data-race guarantees
174. Parallel Borrow Analysis
- Objective: make borrow checking parallel compatible.
- Deliverables:
- equivalents
Send/Sync - shared mutation checks
- thread ownership rules
- competition diagnostics
Stream E - Backends, ABI, Perf, Execution Modes (175-181)
175. Advanced Optimization Passes
- inline, loop simplification, branch folding, scalar replacement, dead store elimination, value numbering.
- Acceptance: measurable gains on reference benches without semantic regression.
176. LLVM Backend Experimental
- LLVM IR emission, metadata debug, optimization bridge, target lowering, integration linker.
- Acceptance: experimental isolate flag + minimum functional parity.
177. Native ASM Backend
- register allocation, calling convention, layout stack, instruction selection, prologue/epilogue.
- Acceptance: stable target subset + green ABI tests.
178. Register Allocator
- liveness analysis, spills, register classes, diagnostics.
- Acceptance: priority correction before performance.
179. Low-level ABI Test Suite
- stack alignment, calling convention, passing structs, returns, varargs if supported.
- Acceptance: ABI matrix by target with explicit reporting.
180. JIT Foundation
- MIR interpreter, JIT experimental backend, loader runtime, symbol resolver.
181. MIR Interpreter
- MIR ops execution, minimal memory model, step-by-step debug, const eval reuse.
Stream F - Tooling Platform (182-185)
182. Compile Embedding API
compile_from_memory, diagnostic callbacks, custom source loader, backend hooks, incremental embedding.
183. IDE Integration Complete
- semantic highlighting, incremental diagnostics, intelligent completion, rename, references, code actions.
184. Refactor Engine
- rename symbol, extract function, organize imports, inline variable, rewrites sure.
185. Advanced Formatter
- configurable styles, stable comments, macro formatting, determinism, edition-aware.
Stream G - Analysis, Safety, Security (186-189)
186. Static Analysis Framework
- nullability (if supported), misuse lifetime/unsafe, unreachable logic, smells performance.
187. Security Analysis Passes
- detection overflows, dangerous memory patterns, suspicious casts, groundwork taint, insecure API warnings.
188. Unsafe Code Model
- unsafe blocks/functions/traits, explicit diagnostics, unsafe tracking in MIR.
189. Verified Unsafe Boundaries
- unsafe audit logs, unsafe summaries, unsafe call graph, propagation warnings.
Stream H - Runtime, Interop, Targets, Research, Formalization, Platform (190-200)
190. Advanced Runtime Services
- allocator, threading, timers, async scheduler, panic hooks, I/O abstraction.
191. GC Experimental Mode
- optional GC runtime, bridge ownership/GC, compatibility diagnostics, performance metrics.
192. Foreign Function Interface
- external declarations, ABI verification, symbol linking, unsafe FFI borders, mismatch diagnostics.
193. Bindgen Foundation
- parse minimal headers C, generation Vitte declarations, ABI checks, validation layout.
194. Embedded Target Support
no_std, custom allocators, freestanding runtime, linker scripts, memory maps.
195. Kernel Mode Foundation
- mode without runtime, panic handlers custom, subset interrupt-safe, subset kernel memory-safe.
196. Compile Research Sandbox
- experimental branches, isolated MIR passes, unstable namespace syntax, sandbox diagnostics.
197. Verified Compiler Pipeline
- partial proofs of invariants, verified passes, property tests, semantic equivalence checks.
198. Formal Semantic Model
- operational semantics, ownership semantics, groundwork soundness of types, MIR execution semantics.
199. Vitte Language Platform
- compile, stdlib, runtime, package manager, IDE/CI tooling, docs, ecosystem.
200. Vitte Platform Complete Foundation
- Mandatory criteria:
- stable compiler
- credible self-host
- real backend
- professional diagnostics
- complete tooling
- maintainable stdlib
- maintainable runtime
- minimal package ecosystem
- IDE support
- deterministic builds
- active replay/debug/fuzz/stress
- strong technical documentation
- minimum security verified
- extensible architecture
- technical governance defined
- Final gate:
- any feature must justify its cost in complexity by a net gain in measurable reliability.
Recommended sequencing (macro-priorities)
P0 (core reliability): 161, 162, 164, 166, 167, 173, 188 P1 (language capabilities): 163, 165, 168, 169, 170, 171, 172, 174 P2 (execution/perf): 175, 178, 179, 181, then 176/177/180 P3 (platform): 182, 183, 184, 185, 186, 187, 189 P4 (expansion): 190 to 195 P5 (long-term confidence): 196, 197, 198, 199, 200
Tracking KPIs
- soundness regressions: 0 tolerated
- deterministic build rate: 100%
- crash-free compile sessions (CI corpus): > 99.9%
- actionable diagnosis rate (internal triage): > 95%
- perf compile (median): trend stable or better per release
- unsafe surface growth: monitored, justified, and bounded
Critical risks to monitor
- explosion of complexity inference/generics
- trait/impl coherence derivative
- fragility spans/diagnostics via macros
- subtle regressions in lowering async/coroutines
- ABI discrepancies between backends
- unsafe extension faster than guardrails
Absolute rule of governance
The added complexity must always be less than the confidence gained in the reliability of the system.