Quartz Language Roadmap
Current: v5.12.37-alpha | 1964 tests (0 failures, 6 pending) | Feb 6, 2026
Status: Self-Hosted Primary | All Tests Passing | P1+P2+P3 Complete
Goal:
Reduce pending tests from 15 to ~5DONE (6 pending, all networking)History: See
docs/ROADMAP-ARCHIVE-v5.12.28.mdfor the complete development journey.
Current State
The Quartz compiler is self-hosted and feature-complete for most use cases:
- Type System: Parameterized types (
Vec<T>,HashMap<K,V>,Ptr<T>), traits, generics - UFCS: Method syntax on all collections (
.push(),.size,[]indexing) - Macros: Hygienic macro system with
$try,$unwrap,$assert,$debug - FFI: Full C interop with
extern "C",@repr(C),@cImport - Concurrency: Threads, channels, mutexes, atomics, select, parallel intrinsics
- Error Handling: Result/Option types,
?operator, world-class error messages - Type Inference: Struct field access infers parameter types from context
Priority Queue
P1: Type System Polish - COMPLETE
| Item | Description | Status |
|---|---|---|
| Generic enum inference | Option::None infers from context | DONE |
| Trait impl validation | Verify impl method signatures match trait | DONE |
P2: Deferred Bootstrap Items - COMPLETE
| Item | File | Notes |
|---|---|---|
| Channel select | mir.c:2892 | DONE - Lowered to try_recv/try_send loop |
| @cImport function params | cimport.c:353 | DONE - Generates param nodes from C types |
P3: Clear Pending Tests - COMPLETE
Goal: Get pending tests down to ~5 (networking-dependent only) - EXCEEDED
Progress: 22 → 7 pending (15 tests cleared)
| Category | Count | Difficulty | Action |
|---|---|---|---|
| Regex features | DONE - Named captures, regex in match | ||
| @heap allocation | DONE - @heap strings, automatic allocation test | ||
| C struct alignment | DONE - field_offset<T>("field") intrinsic | ||
| gen_ffi headers | DONE - Struct/enum/typedef/macro support | ||
| Embedded nulls | DONE - cptr_to_string_with_len + as_int | ||
| Networking | 6 | DEFER | Blocked on u8/u16 FFI types for sockaddr_in |
P4: Stdlib Expansion (DEFERRED)
| Module | Description | Status |
|---|---|---|
| datetime | Date/time operations | Not started |
| tcp | TCP socket networking | Not started |
| http | HTTP client | Not started |
| csv | CSV parsing | Not started |
| yaml | YAML parsing | Not started |
| uuid | UUID generation | Not started |
P5: Tooling (DEFERRED)
| Tool | Description | Status |
|---|---|---|
| REPL | Interactive read-eval-print loop | Not started |
| LSP | Language Server Protocol | Not started |
| Package registry | Package repository | Not started |
| Formal spec | Language specification | Not started |
Commands
# Full test suite (parallel)
bundle exec parallel_rspec spec/
# Run only pending tests to see what needs fixing
bundle exec rspec --tag pending
# Rebuild bootstrap compiler
make -C ../quartz-bootstrap
# Fixpoint validation
rake quartz:validate
Architecture
| Component | Location | Purpose |
|---|---|---|
| C Bootstrap | ../quartz-bootstrap/ | Emergency recovery compiler |
| Self-Hosted | self-hosted/ | Primary development target |
| Stdlib | std/ | Standard library modules |
| Tests | spec/ | RSpec integration tests |
Rule: Only update C bootstrap when self-hosted source needs a feature bootstrap can’t compile.
Success Criteria
- 0 test failures - DONE
- ~5 pending tests - 15 → 6 pending (all networking)
- P1 + P2 + P3 complete - DONE
Version History
| Version | Date | Milestone |
|---|---|---|
| v5.12.37 | Feb 6, 2026 | Fix 7 pre-existing failures: @heap strings, field_offset alignment, regex in match, string escapes |
| v5.12.36 | Feb 6, 2026 | All non-networking tests pass: embedded nulls, automatic allocation |
| v5.12.35 | Feb 6, 2026 | P3 complete: gen_ffi macros, @heap strings, field_offset |
| v5.12.34 | Feb 6, 2026 | Regex complete: named captures, match expressions, ref.md docs |
| v5.12.33 | Feb 6, 2026 | P2 complete: channel select verified, @cImport params |
| v5.12.32 | Feb 6, 2026 | Channel select tests added (6 new tests) |
| v5.12.31 | Feb 6, 2026 | Vec index type checking, 18→17 pending |
| v5.12.30 | Feb 6, 2026 | Trait impl signature validation, 22→18 pending tests |
| v5.12.29 | Feb 6, 2026 | 0 failures! Struct field inference fix |
| v5.12.28 | Feb 6, 2026 | 56 test failures fixed (57→1) |
| v5.12.0 | Feb 4, 2026 | UFCS complete, dogfooding phase 2 |
| v5.10.0 | Feb 3, 2026 | Self-hosted macros, transitive closure |
| v5.5.7 | Feb 2, 2026 | 0 failures, macro system complete |
| v5.0.0 | Jan 22, 2026 | Parallel iteration, pipeline operator |
| v1.0.0 | Jan 2, 2026 | Self-hosting fixpoint achieved |
See docs/ROADMAP-ARCHIVE-v5.12.28.md for complete history.