Skip to content

Annotations and repository metadata - #1762

Open
foxtacles wants to merge 1 commit into
masterfrom
stack-01-annotations
Open

Annotations and repository metadata#1762
foxtacles wants to merge 1 commit into
masterfrom
stack-01-annotations

Conversation

@foxtacles

@foxtacles foxtacles commented Aug 31, 2026

Copy link
Copy Markdown
Member

SYMBOL-form annotations with mangled names, recovered BETA10 function
addresses, library annotation headers (msvc, smack, smartheap, new
CONFIG/library_dx.h), ncc skip entries for upcoming 1997 identifier
restorations, gitattributes byte-stability rules, and the .clang-format
include policy (stop reordering includes; 1997 seating follows). No
object-code change.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_0111kigpi1MsEfGHfvJgGjRv

Why the name-based annotations move to SYMBOL form

The TEMPLATE/SYNTHETIC markers previously carried the demangled display name and were matched against the comparison pipeline's rendering of the same symbol. That rendering is demangler-dependent. The same destructor:

old annotation (1997 cvdump-style):  list<MxStreamController *,allocator<MxStreamController *> >::~list<...>
modern demangler (pydemumble):       public: __thiscall list<class MxStreamController *, class allocator<class MxStreamController *>>::~list<...>(void)

class keywords, comma spacing, and > > vs >> all differ between demangler generations, and distinct symbols (e.g. constructor overloads) can even demangle to identical display strings. Under the strict comparison gate this stack builds toward — every row at 100% and every annotated function compared — an annotation that fails to resolve is a CI failure, not a skipped row.

The mangled symbol is renderer-independent and unique by construction (it is the identity the linker itself folds COMDATs by), so these markers now use the SYMBOL form documented by reccmp, which routes them through exact symbol matching instead of display-text matching.


Stack context: part of the stacked delivery of #1761 (byte-identical reproduction of LEGO1.DLL, ISLE.EXE, and CONFIG.EXE). This layer is verified by the standard CI gates (builds, format, naming, annotations, exports/vtables/data compare). Byte-identity to retail is an emergent property of the complete stack and is re-proven by the ReproBit gates in the final PR of the stack (#1773).


Stack created with GitHub Stacks CLIGive Feedback 💬

@foxtacles
foxtacles force-pushed the stack-01-annotations branch 2 times, most recently from ca63f85 to 1f7252f Compare September 1, 2026 00:27
Comment thread CONFIG/library_dx.h Outdated
Comment thread tools/requirements.txt Outdated
Comment thread ISLE/library_msvc.h Outdated
@foxtacles
foxtacles force-pushed the stack-01-annotations branch 12 times, most recently from 92c7530 to 2e01105 Compare September 3, 2026 21:10
SYMBOL-form annotations with mangled names, recovered BETA10 function
addresses, library annotation headers (msvc, smack, smartheap, new
CONFIG/library_dx.h), ncc skip entries for upcoming 1997 identifier
restorations, gitattributes byte-stability rules, and the .clang-format
include policy (stop reordering includes; 1997 seating follows). No
object-code change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E
@foxtacles
foxtacles force-pushed the stack-01-annotations branch from 2e01105 to 294c7e8 Compare September 4, 2026 03:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants