MiniVM v0.0.1 - All downhill from here
Pre-release
Pre-release
Release
This is the first release of The MiniVM Lua Runtime so please be patient.
What's there
- Parsing Lua
- Two JIT Compilers
- Static Compiler
--tb-no-llbv
- Fast startup, slower runtime
- Lazy Basic Block Versioning (LBBV) Compiler
--tb-llbv
- Fast startup, high compilation cost, faster runtime
- Can benifit from profiling data
- Each JIT uses TB and can generate code for multiple backends
- C11 for GCC, Clang, TCC and Emscripten
- TB for 64 bit x86
- Static Compiler
- Dumping Internal State
--dump-*
--dump-ast
Dump Syntax Tree--dump-ir
Dump Static MiniVM IR--dump-ver
Dump Version Stuff--dump-asm
Dump Output Code
- Some Lua environment including custom _ENV
- Custom
--number=type
number types- Defaults to
--number=i32
- Supports i8, i16, i32, i64 fully
- Basic Support for f32 and f64
- Defaults to
- Interactive REPL
- Syntax Highlighting
- Web based version (including both JITs)
Whats Missing
- TB Compilation
- Plain
--target=tb
is broken right now due to @RealNeGate up-and-coming fixes
- Plain
- JIT Tier System
- Tier up from Baseline to Basic Block Versioning JIT
- Startup Interpreter
- Profile based Smart-LBBV
- Mutable Closures
- UpValues in general are missing right now
- MultiValues
- Multiple Returns don't on either backend, though There is a way forward.
- Safety Testing
- Garbage collection