|
1 | 1 | # ProXPL Modernization Phase Plan |
2 | 2 |
|
3 | | -This document consolidates the modernization roadmap into phases aligned with the project's goals. |
4 | | - |
5 | | -Phase A - Core Runtime |
6 | | -- Design IR and opcode set (docs/ir/opcodes.md) |
7 | | -- Implement complete bytecode emitter and stack-based VM |
8 | | -- Add microbenchmarks and perf harness |
9 | | - |
10 | | -Phase B - Memory Model & Concurrency |
11 | | -- Implement generational garbage collector with write barriers |
12 | | -- Add coroutines, async/await, threads, channels, actor model |
13 | | -- Provide scheduler (cooperative + preemptive) |
14 | | - |
15 | | -Phase C - Optional Static Type System |
16 | | -- Optional type annotations and type inference |
17 | | -- Generics and specialization |
18 | | -- Type-based optimizations and VM fast paths |
19 | | - |
20 | | -Phase D - Standard Library |
21 | | -- Filesystem, networking, crypto, JSON, regex, datetime, subprocess |
22 | | -- Database connectors via FFI |
23 | | - |
24 | | -Phase E - Tooling & Ecosystem |
25 | | -- Package manager (prx), registry service |
26 | | -- LSP server, Debugger (DAP), VSCode extension |
27 | | -- REPL improvements |
28 | | - |
29 | | -Phase F - JIT Backend |
30 | | -- Tracing JIT / LLVM-based backend |
31 | | -- Hot-path detection and codegen |
32 | | -- JIT > 2x baseline performance target |
33 | | - |
34 | | -Testing and CI |
35 | | -- Unit coverage target 95% |
36 | | -- Fuzzing for parser/VM |
37 | | -- Cross-platform CI matrix (Linux/macOS/Windows) |
38 | | - |
39 | | -Security & Migration |
40 | | -- FFI sandboxing and capability-based modules |
41 | | -- Migration guides & codemods |
| 3 | +This document outlines the development phases for ProXPL, tracking our journey from a C-based interpreter to a professional compiler ecosystem. |
| 4 | + |
| 5 | +## ✅ Phase A - Core Runtime (Completed) |
| 6 | +**Status: Production Ready** |
| 7 | +- [x] Stack-based Virtual Machine (VM) |
| 8 | +- [x] Bytecode Compiler & Opcodes |
| 9 | +- [x] Native C Implementation |
| 10 | +- [x] Basic REPL |
| 11 | + |
| 12 | +## ✅ Phase B - Memory & Type System (Completed) |
| 13 | +**Status: Stable** |
| 14 | +- [x] Mark-and-Sweep Garbage Collector |
| 15 | +- [x] Static Type System (Int, Float, Bool, String) |
| 16 | +- [x] Complex Types (List, Dict, Function) |
| 17 | +- [x] Scope-based Memory Management |
| 18 | + |
| 19 | +## ✅ Phase C - Standard Library (Completed) |
| 20 | +**Status: Rich Feature Set** |
| 21 | +- [x] Core I/O (`print`, `input`) |
| 22 | +- [x] Math Library (`std.math`) |
| 23 | +- [x] String Utilities (`std.string`) |
| 24 | +- [x] File System (`std.fs`) |
| 25 | +- [x] System Interface (`std.sys`) |
| 26 | + |
| 27 | +## 🚧 Phase D - Ecosystem & Tooling (Current Focus) |
| 28 | +**Status: In Progress (v0.4.0)** |
| 29 | +- [x] VS Code Extension (Syntax Highlighting, Snippets) |
| 30 | +- [x] Package Manager (PRM) foundation |
| 31 | +- [x] Module System (`use` keyword) |
| 32 | +- [ ] Language Server Protocol (LSP) - **Next** |
| 33 | +- [ ] Debugger Adapter Protocol (DAP) |
| 34 | + |
| 35 | +## 🔮 Phase E - Future Modernization (2025 Roadmap) |
| 36 | + |
| 37 | +### Q1 2025: Developer Experience |
| 38 | +- Enhanced Error Reporting (Column tracking, suggestions) |
| 39 | +- PRM Registry integration (Remote packages) |
| 40 | +- VS Code Extension 1.0 (IntelliSense, Hover) |
| 41 | + |
| 42 | +### Q2 2025: Object-Oriented Features |
| 43 | +- Classes & Interfaces |
| 44 | +- Inheritance & Polymorphism |
| 45 | +- Access Modifiers (`public`, `private`) |
| 46 | + |
| 47 | +### Q3 2025: Advanced Language Features |
| 48 | +- Coroutines / Async-Await |
| 49 | +- Pattern Matching |
| 50 | +- Generics |
| 51 | +- Algebraic Data Types (Enums) |
| 52 | + |
| 53 | +### Q4 2025: Performance & Native |
| 54 | +- LLVM AOT Compilation (Stable) |
| 55 | +- JIT Compilation Research |
| 56 | +- Foreign Function Interface (FFI) |
| 57 | + |
| 58 | +## Release History |
| 59 | + |
| 60 | +- **v0.4.0** - VS Code Extension, Version Bump |
| 61 | +- **v0.3.0** - Module System, updated `use` syntax |
| 62 | +- **v0.2.0** - Initial Public Release, basic VM |
0 commit comments