dialogs come to the front, and the red line names what it needs
- dialogs carry the reference's toplevel bit, so the stack-split window opens above Bagnon instead of behind it - the failure line fills its blank — "Requires Blacksmith Hammer", not "Requires" — and Opening casts stop printing a label the spell itself marks "no text" - the pet bar's Attack/Follow/Stay tooltips name their keybinding, and typed text reaches the focused frame through the client's own delivery walk - AtlasLoot parses again: our Lua keeps 5.0's compatibility semicolon Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Vendored
+3
-2
@@ -35,7 +35,7 @@ downgrade, and it is the entire reason this is a one-hunk fork rather than a ven
|
||||
|
||||
## The delta, and the command that proves it
|
||||
|
||||
**Current state: two hunks, in two files.** `src/lib.rs` additionally differs by having Lua
|
||||
**Current state: three hunks, in three files.** `src/lib.rs` additionally differs by having Lua
|
||||
5.2/5.3/5.4/5.5 stripped from the `Version` enum (with their source trees deleted) — benilla builds
|
||||
5.1 and only 5.1, and a fork that still *offered* the other four would answer a request for one with
|
||||
a missing directory at build time instead of a compile error.
|
||||
@@ -44,6 +44,7 @@ a missing directory at build time instead of a compile error.
|
||||
|---|---|---|---|
|
||||
| `lvm.c` | 5.0's `OP_TFORPREP` table→`next` substitution, folded into the top of `OP_TFORLOOP` | `for k, v in someTable do` raised "attempt to call a table value"; it was the first session-start error for **60** corpus addons | 1215 |
|
||||
| `luaconf.h` | `LUA_COMPAT_LSTR` `1` → `2` | 5.1 kept 5.0's nesting machinery and put an advisory error in front of it; two corpus addons died on "nesting of `[[...]]` is deprecated" | — |
|
||||
| `lparser.c` | 5.0's compat-semicolon skip restored at the top of `constructor()`'s field loop — 5.0's own line, verbatim, comment included | one extra `;` after a field separator inside a table constructor (`Back_Title = AL["Factions"];;`, ×20 in AtlasLoot's `ButtonRegistry.lua`) parses on the client and died here with "unexpected symbol near `;`"; statement-level `;;` stays rejected by both dialects | 1315 |
|
||||
|
||||
The ordering was deliberate and it held: the fork landed **inert**, byte-identical to upstream, so
|
||||
the build pipeline was proven transparent *before* any behavioural payload went into it — and when
|
||||
@@ -59,7 +60,7 @@ diff -r third_party/lua-src/lua-5.1.5 \
|
||||
~/.cargo/registry/src/*/lua-src-550.0.0/lua-5.1.5
|
||||
```
|
||||
|
||||
That must print **exactly** the two hunks in the table above and nothing else. If it ever prints
|
||||
That must print **exactly** the three hunks in the table above and nothing else. If it ever prints
|
||||
more, something crept in.
|
||||
|
||||
## Status of the payload
|
||||
|
||||
+17
@@ -509,6 +509,23 @@ static void constructor (LexState *ls, expdesc *t) {
|
||||
checknext(ls, '{');
|
||||
do {
|
||||
lua_assert(cc.v.k == VVOID || cc.tostore > 0);
|
||||
/* BENILLA: Lua 5.0's constructor compat-semicolon, restored (decision 1315;
|
||||
** see third_party/lua-src/BENILLA.md). 5.0 opened this loop with exactly the
|
||||
** line below -- its own comment read "compatibility only", a Lua 4.0 leftover
|
||||
** (4.0 separated a constructor's list part from its record part with `;`).
|
||||
** 5.1 deleted the line, so one extra `;` after a field separator -- the
|
||||
** `Back_Title = AL["Factions"];;` shape AtlasLoot's ButtonRegistry.lua writes
|
||||
** twenty times -- became "unexpected symbol near ';'" here while the 1.12.1
|
||||
** client (Lua 5.0) accepts it. Statement-level `;;` stays rejected by both,
|
||||
** which is the half wow-5875-re byte-verified first (system/ui/scratch/
|
||||
** lua-dialect.md 9.1), and byte-verified in the client itself rather than
|
||||
** inferred from stock 5.0: constructor is 0x6fd430, and its loop head
|
||||
** 0x6fd4a0 calls testnext(ls,';') WITHOUT testing EAX -- a skip, not a
|
||||
** separator check -- while the loop's continuation at 0x6fd4f5/0x6fd505 does
|
||||
** test it. Of the 16 call sites of testnext 0x6fccf0 image-wide, the only
|
||||
** other consumer of `;' is chunk 0x6fcccc, at STATEMENT level, with no such
|
||||
** head skip. This line restores the constructor context only. */
|
||||
testnext(ls, ';'); /* compatibility only */
|
||||
if (ls->t.token == '}') break;
|
||||
closelistfield(fs, &cc);
|
||||
switch(ls->t.token) {
|
||||
|
||||
Reference in New Issue
Block a user