Tooling

Working on Luwu takes a few tools beyond a C++ compiler: the command-line tools the build produces, luwu-lsp's build script, the seal runtime for scripts, and the Python scripts in tools/. A bug in any of them is a development tooling bug.

Command-line tools

Both come from the build on the Development page.

luwu-lsp

luwu-lsp builds with rebuild.luau, a seal script. It needs CMake, git and seal 0.8.x:

git clone https://github.com/luwu-community/luwu-lsp.git --recurse-submodules
cd luwu-lsp
seal ./rebuild.luau --release

Set LUWU_TEST_PATH to a checkout of luwu to build against it instead of the submodule. seal ./rebuild.luau --help lists the other options.

seal

seal is a Luau and Luwu runtime, maintained separately from Luwu. Luwu's scripts, like luwu-lsp's build script and its installer, run on it.

Luna

Luna is a DSL for writing Luwu's native code generation. It's still a pull request.

Python scripts

Most of the scripts in tools/ come from Luau. They profile heap and stack use, print VM values in gdb and lldb, process fuzzer output and bisect FFlags (flag-bisect.py). New scripts should be written in Luwu instead.