mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-23 06:00:25 +02:00
80 lines
3.9 KiB
Markdown
80 lines
3.9 KiB
Markdown
# `wcsspn.obj` exact-match log
|
|
|
|
## Plain-English behavior
|
|
|
|
This CRT routine counts the initial UTF-16 characters in `string` that all
|
|
belong to `control`. It stops at the first character absent from the control
|
|
set or at the string terminator and returns that character index.
|
|
|
|
## Provenance and target inventory
|
|
|
|
The completed local result at commit `98f28ba7` (duplicated later as
|
|
`ec562740`) was treated as untrusted. Its object-scoped source was transplanted
|
|
onto the current campaign line, rebuilt from scratch with XDK 3911 CL
|
|
13.00.9254.1, and checked independently against the January target.
|
|
|
|
- Generated object flags: `/O1 /Gy /I"xbox/include"`, unchanged.
|
|
- The January target owns exactly one 70-byte `.text` COMDAT.
|
|
- `_wcsspn` is the only function and is externally linked (COFF type `0x20`,
|
|
storage class `2`).
|
|
- There are zero relocations and no target-owned `.rdata`, `.data`, or `.bss`.
|
|
|
|
January's bytes prove the canonical Microsoft CRT topology: an outer scan of
|
|
the input and an inner scan of the control set. A missing character exits from
|
|
the inner loop; the string terminator exits the outer loop; both paths converge
|
|
on the same pointer-subtraction and divide-by-two machine epilogue.
|
|
|
|
## Measured source shapes
|
|
|
|
| ID | Source shape | Size T/B | Relocs T/B | Candidate hash | Result |
|
|
| --- | --- | ---: | ---: | --- | --- |
|
|
| E01 | Canonical nested scans with early source return | `70/70` | `0/0` | `daf0926e...035d04a` | Accepted: strict-exact |
|
|
| E02 | Single source return using `goto done` | `70/70` | `0/0` | `a3ee2c4f...ec48e4` | Rejected: pushes moved below empty-string branch |
|
|
| E03 | E01 with const-correct local scan pointers | `70/70` | `0/0` | `daf0926e...035d04a` | Accepted: same exact bytes, cleaner source |
|
|
|
|
The accepted full normalized SHA-256 is
|
|
`daf0926e297ef92eb1c4cced409b2f9f8afd164fc2a0b5dd3a8f5a9ca035d04a`.
|
|
The strict comparator also verifies the empty relocation list, and the symbol
|
|
audit verifies exact external ownership.
|
|
|
|
## House/Berth and safety audit
|
|
|
|
Each parameter is on its own line and the two return expressions are explicit.
|
|
This function retains two source-level returns as a narrowly measured exception
|
|
to the preferred single-return rule: E02 shows that merging them changes the
|
|
otherwise exact prologue and empty-string path even though total size remains
|
|
70 bytes. VC7 already cross-jumps E01's two source exits into the single target
|
|
machine epilogue.
|
|
|
|
Both scan pointers remain `const`, and neither string is modified. The source
|
|
uses no assembly, `volatile`, `__forceinline`, alignment pragma, undefined
|
|
behavior, byte forcing, magic offset, compiler-flag change, or comparator
|
|
exception. It contains no known original bug requiring a preservation comment.
|
|
|
|
## Final admission gates
|
|
|
|
The final isolated lane was rebased onto authoritative campaign tip
|
|
`fe4065f6` before admission. The object was then cleaned and rebuilt, rather
|
|
than reusing an earlier candidate artifact.
|
|
|
|
- Hardened whole-object audit: exact one-function inventory, `70/70` raw
|
|
bytes, `0/0` relocations, identical normalized SHA-256, and matching
|
|
external function ownership.
|
|
- Owned data audit: the target owns no `.rdata`, `.data`, or `.bss`, and the
|
|
candidate introduces none. Compiler-only `.drectve` and discardable debug
|
|
sections are not runtime-owned target sections.
|
|
- Full `halobetacache_build` and `libcmt_build`: passed.
|
|
- Semantic progress: 3,448 functions evaluated, 3,364 accepted exact, and
|
|
zero unit errors.
|
|
- Ordinary progress credits `wcsspn.obj` as one complete libcmt object. The
|
|
current aggregate is 277/833 objects; libcmt is 10/212 objects and 11/476
|
|
functions.
|
|
- Admission audit: no `wcsspn` candidate, contradiction, or revocation.
|
|
- Fail-closed regression manifest/check: `_wcsspn` remains exact, with no
|
|
failures or warnings.
|
|
- Tool tests: all 177 passed.
|
|
- `git diff --check`: clean.
|
|
|
|
No production file outside this object, its configuration entry, and this log
|
|
was changed. Nothing was pushed.
|