Roadmap
This is the plan.
0.1.0 Make it work
- A working compiler
- A working bytecode VM
Gate:
- We can run everything
elmcan compile - The VM runs every valid bytecode program we throw at it
- No matter what we give it, it doesn't crash
0.2.0 Make it correct
- Machine-readable specification we can defend
- Lots of testing/fuzzing
- Guaranteed to run all valid Elm programs
- No frontend breakage: even if we change the backends, valid Elm must run
- Every new release must build against the whole (growing) test corpus
- Machine-readable kernel catalog
Gate:
- The VM is fully generated from the spec
- All meaningful canonical Elm kernels implemented and working per the kernel catalog
0.3.0 Draw the rest of the fucking owl
- AoT compiled binaries
- Build tools/diagnostics
- Model + message tracing (i.e. the "Elm Debugger" vibe)
- CLI host runtime
- TUI host runtime
- Integrated into elm-wrap distribution
Gate:
- Experienced Elm programmers can confidently and comfortably create programs for the CLI and TUI host runtimes
0.4.0 Make it secure
- The loader identifies effects and alerts about the contents of the program
- Clearly specified capabilities per host
- Usable capability management UI (no million
--allow-X switches every
invocation)
0.5.0 Make it fast
- Server Worker host runtime
- Optimized bytecode execution
- Competitively fast AoT binaries
- Execution and memory profiling
- Optimization catalog
Gate:
- Bytecode execution speed reasonably close to interpreted WebAssembly on WASI
- AoT execution speed comparable to `clang -O1`
0.6.0 Game on
- elm-game runs games at 60fps
- Debugging/profiling tools
- One click publishing to itch.io
0.7.0 Make it pleasant
- Host-supported i18n / a11y
- Pleasant coding experience with seamless build / deploy
0.8.0 Go Small
- Runs on RasPi Pico 2
- Debugging experience
- Stop-and-go debugger
0.9.0 In ur DB
- Native Postgres
plelm - Deployment model
- Profiling/visibility tools
1.0.0 🎉
- Native Windows experience
1.1.0 Enterprise
- Policies and controls
- Auditing and logging
- Paid security review If someone pays for it. I ain't payin'; I know it's secure.
