Skip to content

MiniVM v0.0.1 - All downhill from here

Pre-release
Pre-release
Compare
Choose a tag to compare
@ShawSumma ShawSumma released this 05 May 00:48
· 78 commits to main since this 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
  • 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
  • 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
  • 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