826194e2ac
benilla-lua's string and number library now answers as the client's: - `string.byte` returns one byte (`0x7fc210`). - `gsub` takes only a string or a function (`0x7fd163`), and `%0` raises (`0x7fce20`). - `lower` and `upper` case-map UTF-8 (`0x7fbeb0`). - `tonumber` with a base is MSVC's 32-bit `strtoul` (`0x40db09`), on every platform. - Chunk names cut at a NUL and at `\n` (`0x835144`). - `string.format` is the client's native one (`0x7fd3d0`): `__ftol` conversions, `%q`'s table, one-digit `n$`, and the client's errors. - Number text is the MSVC CRT's, ported down to `$I10_OUTPUT`: `1.#INF`, `-1.#IND`, `1e+020`. - A NaN made from numbers is the x87 indefinite, and the math library returns the runtime's own answers at infinities. A fuzz against the client's own `sprintf`, run in emulation, matches 1.5M cases. Every fix fails its test without it. `tostring` and `%g` got faster. Fixes #1367 Fixes #1368 Fixes #1373 Fixes #1375 Fixes #1376 Fixes #1450 Fixes #1481 Fixes #1486 Fixes #1770 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>