Skip to content

Docs/luwu documentation rebrand - #34

Merged
deviaze merged 2 commits into
mluau:masterfrom
PRMS-magnet:docs/luwu-documentation-rebrand
Aug 17, 2026
Merged

Docs/luwu documentation rebrand#34
deviaze merged 2 commits into
mluau:masterfrom
PRMS-magnet:docs/luwu-documentation-rebrand

Conversation

@PRMS-magnet

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI lite review requested due to automatic review settings August 16, 2026 20:20

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates repository documentation and RFC text to reflect the project’s rebrand from Luau to Luwu, including link/path updates and an RFC rename to match the new naming.

Changes:

  • Rebrands core docs (README, SECURITY, CONTRIBUTING, maintainers) from Luau → Luwu and updates repository URLs accordingly.
  • Rebrands multiple extra RFC documents to reference Luwu and adjusts wording in several places.
  • Replaces the “Luau-managed refs” RFC with a newly named “Luwu-managed refs” RFC document.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
SECURITY.md Updates security policy wording/repo reference for Luwu.
README.md Rebrands top-level project description, links, and compatibility notes to Luwu.
CONTRIBUTING.md Rebrands contribution guidance and support links to Luwu/Discord.
MAINTAINERS.md Updates maintainer note to reference mluau/luwu.
.github/ISSUE_TEMPLATE/config.yml Updates “Questions” contact link to Discord.
rfcx/README.md Rebrands RFC guidance and improves wording/clarity.
rfcx/thread-statechange-hook.md Rebrands RFC prose to Luwu.
rfcx/none.md Rebrands RFC prose to Luwu.
rfcx/function-default-arguments.md Rebrands RFC prose to Luwu and updates examples.
rfcx/fat-c-closures.md Rebrands RFC prose to Luwu and edits motivation/summary wording.
rfcx/external-strings.md Rebrands RFC prose to Luwu.
rfcx/external-buffers.md Rebrands RFC prose to Luwu.
rfcx/api-luwu-managed-refs.md Adds newly named RFC for Luwu-managed references.
rfcx/api-luau-managed-refs.md Removes the prior Luau-named RFC document.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Luwu is commonly paired with custom async task schedulers (like `mluau/scheduler`, other async impls). To track when a thread yields, finishes or errors, schedulers currently patch the global `coroutine.resume` function with a wrapper that intercepts the call, records the result in their scheduler, and forwards the return values.

Ideally, scheduling would be a first class part of Luau but this is a future goal and is orthogonal to this RFC.
Ideally, scheduling would be a first class part of Luwu but this is a future goal and is orthogonal to this RFC.
Comment thread SECURITY.md
Comment on lines +3 to +7
Luwu provides a safe sandbox that scripts can not escape from, short of vulnerabilities in custom C functions exposed by the host. This includes the virtual machine, builtin libraries and native code generation facilities.

Any source code can not result in memory safety errors or crashes during its compilation or execution. Violations of memory safety are considered vulnerabilities.

Note that Luau does not provide termination guarantees - some code may exhaust CPU or RAM resources on the system during compilation or execution.
Note that Luwu does not provide termination guarantees - some code may exhaust CPU or RAM resources on the system during compilation or execution.

## Motivation

Luwu already has `lua_ref`, `lua_unref` and `lua_getref` as existing C APIs that merely work with the Luwu registry (honestly should be `luaL_*` at that point?). Unfortunately, this may have performance drawbacks in certain degenerate table cases (table holes, interactions w/ the length operator for tables actually being a boundary operator in Luwu, performance etc.), leading embedders like mluau to instead hijack threads (or, in some cases, handle multiple thread stacks) to prevent GC.
Comment thread README.md
Luwu is a community-led fork intended to provide a more featureful and helpful experience for general-purpose, open-source language development. It will evolve with features, syntax, and semantics that may not align with upstream Luau.

For more information about this fork, how to contribute, and help us name our new language based off of Luau (but different!), please join our discord server [hina & ferris](https://discord.gg/3MJ37CFNWh).
Luwu is backwards compatible with Luau up to and including version 0.730, with possible exceptions for `export local` and Luau's unreleased integer feature as those areas are improved in Luwu.
Comment thread rfcx/fat-c-closures.md
## Motivation

Embedders like `mluau` currently need to use userdata (w/ a metatable etc.) and upvalues for every stateful closures. This has the downside of making C functions in luau a fair bit slower, increases GC pressure as the GC has to both handle the closure itself and the userdata allocation and less ergonomic for developers (involving needing upvalues etc.). `mluau` has a ton of infrastructure here regarding internal userdata with dtors which could be dropped while also increasing overall performance in general.
Embedders like `mluau` currently need to use userdata (w/ a metatable etc.) and upvalues for every stateful closure. This has the downside of making C functions in Luwu a fair bit slower, increasing GC pressure because the GC has to handle both the closure and the userdata allocation, and making the API less ergonomic for developers. `mluau` has a significant amount of infrastructure for internal userdata with destructors that could be dropped while improving overall performance.
Comment on lines 25 to +27
While effective this produces a degree of noise at the start of functions. Notably also the `or` short-circuit approach will coalesce all falsey values to the default value, rather than just `nil` values.

The luau type system also does not currently narrow these types correctly. For example,
The Luwu type system also does not currently narrow these types correctly. For example,
Comment thread rfcx/external-buffers.md


By introducing external buffers, we allow embeddings to wrap existing memory allocations without copying, restrict mutation from scripts if necessary, and allow the Luau garbage collector to accurately track the memory footprint of externally allocated data.
By introducing external buffers, we allow embeddings to wrap existing memory allocations without copying, restrict mutation from scripts if necessary, and allow the Luwu garbage collector to accurately track the memory footprint of externally allocated data.
Comment thread rfcx/external-strings.md
Comment on lines +9 to +11
Luwu's `string` type represents immutable byte sequences. Currently, creating a string in Luwu requires copying the bytes from the host application into a VM-managed allocation. In embedding scenarios, it is common for the host to already possess large strings (such as errors w/ stack traces, data from a JSON file etc.).

While external buffers do exist in Luau now, buffers cannot be manipulated by the `string` library (and other string-related operations/infrastructure) nor can they easily be used as table keys etc. Furthermore, it is expected/idiomatic for certain things in Luau to be a `string` and not a `buffer` (error tracebacks, strings in a json etc.).
While external buffers do exist in Luwu now, buffers cannot be manipulated by the `string` library (and other string-related operations/infrastructure) nor can they easily be used as table keys etc. Furthermore, it is expected/idiomatic for certain things in Luwu to be a `string` and not a `buffer` (error tracebacks, strings in a json etc.).

@deviaze deviaze left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall good, we can fix some wording in post. Thanks!

@deviaze
deviaze merged commit 5414575 into mluau:master Aug 17, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants