Lower Lua class instances to recycled integer IDs - #1264
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7bc22c8f78
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1d25d92e4c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
This is the independent follow-up to #1261 and closes #1262.
Semantics
Wurst already has explicit destroy and ondestroy lifetime semantics. The new representation follows the Jass object model:
Static class descriptors remain Lua tables. This removes per-instance tables and metatables only.
Directional Lua 5.3 microbenchmarks
One million allocate/write/destroy iterations:
Two hundred thousand retained objects, twenty field-access rounds:
Peak memory for two hundred thousand retained objects with two fields:
These are directional bundled-Lua 5.3 microbenchmarks, not Warcraft III frame benchmarks.
Verification
Focused tests passed:
Coverage includes inheritance, polymorphic dispatch, instanceof, typeId, ondestroy, reference cleanup, fixed arrays, ID reuse, dead/stale references, class-index casts, generic canonical fields, and generated-output shape.
The full suite was intentionally not rerun locally; CI is authoritative.