luawl / semantic-lifter
git clone https://github.com/luawl/semantic-lifter.git
An IR lifting backend for Luau: for emitting semantically accurate readable Luau
+-1
stars, 24h · #60,043
+~-2
stars, 7 days · #58,934
+34
stars, 30 days · #17,449
34
★ total · -2% this week
0
forks · 3 open issues
Star history (as recorded here)
LanguageZig
License—
Created2026-10-13 (9d ago)
Last pushtoday
Watchers4
OwnerOrganization
Links
README excerpt
# Semantic-Lifter **An IR Lifting Backend for Luau** Semantic-Lifter is a lifting backend for Luau made to validate, resolve, and restructure a typed intermediate representation into readable Luau that compiles under the official Luau compiler. By separating frontend lifting from the core checks, the backend allows you to develop custom frontends for other Luau representations, each producing the same typed handoff, while reusing the unified checked pipeline. ***This repository serves as the implementation of the forthcoming preprint "Checked, Not Trusted" and contains the backend, a source frontend, and a compiler-disassembly frontend.*** ## Documentation Hub To maintain clarity, everything is separated from one another. **If you are new to Semantic-Lifter, please visit the links below**: * **Getting Started & Introduction** - Architecture overview, features, and short guides for building, lifting, and emitting. ## Roadmap To track active milestones, upcoming constructs, and the release of run records, visit our roadmap: * **Development Roadmap** - Tracking of active milestones, upcoming constructs, solver work, and evidence publication. ## Pipeline Semantic-Lifter separates frontend lifting from the core backend pipeline, allowing new frontends to reuse the existing admission, checked resolution, structuring, and emission. [code] ## Building and Testing Semantic-Lifter Each Semantic-Lifter build requires Zig and finds Lune, the Luau tools, and Node through build options or `PATH`. Detailed building and testing instructions can be found here: Build and test. ## Scripts Semantic-Lifter includes a PowerShell wrapper, `build.ps1`, for the common build and test invocations on Windows. More information and usage examples can be found in build.ps1 and Build and test. ## Testing **Every program that `emit-luau` publishes is first compiled by the official Luau compiler, and the conformance suite compiles every program it emits and checks what it computes. Two build steps, `test` and `conformance`, run every check.** ### Backend The **src** directory contains the backend with its unit tests beside the sources. - src/ - Backend and its unit tests ### Conformance The **luau** directory contains the source frontend's tests and the conformance scripts, audits, and oracles that exercise the backend on its fixtures and generated programs. - luau/ - Source frontend tests, conformance scripts, audits, and oracles - luau/fixtures/ - Fixtures (Luau sources, manifests, and IR) ### Frontends The **frontends** directory contains the compiler-disassembly frontend with its Node tests; the source frontend lives in `luau/`. - frontends/disassembly/ - Compiler-disassembly frontend and adapter tests ## Examples An example lift of a Luau loop, with its emitted output, can be found in Example. Command-line usage for both frontends is in Using Semantic-Lifter. ## Citation This repository implements the forthcoming preprint *Checked, Not Trusted: Typed Evidence Contracts and