Reporting Bugs
Bugs in the language, its compiler, VM, native code generation or Analysis go to the luwu repository. Bugs in editor support go to the luwu-lsp repository. Bugs and Improvements helps tell the two apart when the language server crashes.
Report memory safety vulnerabilities privately
A memory safety vulnerability that a script can abuse, like an exploitable buffer overflow, must be reported through the luwu repository's private security advisories, never in a public issue. Crashes themselves are public issues.
Severity
Each bug gets a severity so the most serious ones are fixed first. Features enabled by default count for more than experimental features, which sit behind FFlags starting with Debug.
Critical
- Runtime and compiler crashes, like
SIGSEGVorSIGILL. Report these as public issues. - Other memory safety vulnerabilities. Report these privately, as above.
- Runtime correctness bugs in features enabled by default, including native code that behaves differently from the interpreter. For example,
nonetesting truthy in native code while the interpreter treats it as falsy.
High
- Runtime correctness bugs in experimental features.
- Analysis crashes in features enabled by default.
Medium
- Analysis crashes in experimental features.
- Runtime behavior that differs from its RFC, or a feature whose RFC is missing or underspecified.
- Bugs in Luwu's development tooling that stop the community from working on Luwu (see below).
Low
- Misleading or unhelpful Analysis error messages, including ones Luwu inherited from Luau.
- Bugs in Luwu's development tooling that get in the way less, or only affect integration.
Development tooling
Development tooling is everything needed to work on Luwu itself: building with cargo build in luwu, rebuild.luau in luwu-lsp, Luna (the native code generation DSL, still a pull request), seal, and the Python scripts that generate or update code and docs. A tooling bug is medium when it stops the community from working on Luwu or affects master, and low when it only gets in the way or only affects integration.
What to include
- The Luwu commit or luwu-lsp version you're on.
- The FFlags you have on, if you changed any.
- The smallest piece of code that shows the bug.
- For runtime bugs, whether it happens in the interpreter, in native code or both.