LÖVE backend + build target (compat/luajit.lua shims, Roblox build unchanged), examples/example_love, examples/example_shared (same app on Roblox and LÖVE), LuaJIT checksum tests

This commit is contained in:
4DBug
2026-10-08 19:31:22 -05:00
parent 81c5ad9e43
commit 66fa061089
23 changed files with 56780 additions and 17 deletions
+6
View File
@@ -18,6 +18,12 @@ there, but keep this port's existing data structures and conventions. Read the s
- Luau has a limit of 200 locals per function and 255 upvalues; split huge functions (like demo sections) into
several local/global functions.
## Portability (LÖVE build)
- Library code must stay valid **Lua 5.1/LuaJIT syntax** apart from `@native` lines (stripped for LÖVE): no `+=`, `//`,
`continue`, type annotations, `if`-expressions or string interpolation. Luau library calls are fine only if
`compat/luajit.lua` shims them (`bit32`, `buffer`, `table.clear/find/move/unpack`, `utf8`).
- Check with `tools/test/love/run.sh` (LuaJIT draw checksums must equal the Luau ones).
## Conventions (follow what the port already does)
- `ImVector`: 1-based `.Data`, `.Size`, methods `push_back/pop_back/resize/back/iter/erase/...` (imgui_h.lua).
Indices that C++ stores as 0-based *values* (e.g. column index, tab order) stay 0-based unless the surrounding