fetch-luau recipe and the committed Luau foreign binding package (#75) #78
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crowmaki/cinnabar#78
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
#75
What to build
The Luau runtime arrives the way
slangcand Dear ImGui do. Ajust fetch-luaurecipe downloads the pinned Luau source archive, verifies its hash against the justfile the wayfetch-cimguidoes, and builds the Ast, Compiler and VM libraries withLUAU_EXTERN_Cusing the C++ toolchain the imgui build already requires. Output lands under the tools directory keyed by version.A committed Odin package under the
luauPlugin (sibling to how cimgui sits under imgui) holds hand-writtenforeign importbindings for the subset of the Luau C API the Plugin will use: state creation and close, compile, load,pcall, stack access, tables, userdata with metatables, light userdata, and thread data (or an equivalent) for recovering the Plugin State from a C callback. The version constant and the pinned hash live beside the bindings, the wayIMGUI_VERSIONdoes. A fresh clone type-checks without a C++ toolchain.A new
tests/luausuite is listed besideimguiin the justfile and starts with a smoke test that creates a state, compiles and runs a chunk that sets a global, and reads the global back.Acceptance criteria
just fetch-luaudownloads, hash-verifies, builds and installs the pinned Luau into the tools directory; a second run reports "already present" andforce=1rebuildsLUAU_EXTERN_Cand the resulting library exports C-ABI symbols the bindings link againstjust checktype-checks the binding package on a clone that has not runfetch-luautests/luauis in the justfile suite list and its smoke test compiles a chunk, runs it viapcall, and observes a global it setfetch-luauBlocked by