MediLang v0.0.3 Released
We’ve shipped MediLang v0.0.3 — a release focused on end-to-end code generation via LLVM, multi-target support, and a CI matrix that keeps the project green across platforms.
Highlights
- LLVM backend integration (feature:
llvm-backend) viamedic_codegen_llvm(Inkwell on LLVM 15) - Codegen targets and CI artifacts for:
- x86-64
- wasm32-wasi
- riscv32 (initial RV32)
- GitHub Actions CI matrix:
- fmt/lint with rustfmt + clippy
- test on Linux, macOS, Windows
- quick codegen bench smoke
- per-target artifacts from the
medicCLI - Improved diagnostics and lexer error handling aligned with PRD Phase 1
What’s in v0.0.3
LLVM Backend
- Enable with:
- Minimal codegen smoke can be produced via the
medicCLI in CI and locally with:
cargo run -p medic --features llvm-backend -- --emit=x86_64 --opt=2 --out out.o << 'EOF'
fn main() {}
EOF
Swap --emit to wasm32 or riscv32 to target other platforms.
Diagnostics & Lexer
- Clinician-friendly parser diagnostics for common mistakes (e.g.,
=vs==, unmatched brackets,peroperator suggestions) - Unified lexer error tokens across streaming and chunked modes:
TokenType::Error("Invalid token '<lexeme>'") - Parser recovery for early lexer errors with clean EOF handling
Try It
# clone
git clone https://github.com/MediLang/medi.git
cd medi
# run tests
cargo test --workspace
# build with LLVM backend
cargo build -p medic --features llvm-backend
Links
- Changelog: https://github.com/MediLang/medi/blob/main/CHANGELOG.md
- Repository: https://github.com/MediLang/medi
Looking Ahead
- Broader IR coverage, more optimization passes
- Execution smoke tests per target
- Additional healthcare semantics and diagnostics