Commit 8b08571
committed
docs(plan): re-measure #1940's blocker and make it decidable (rule-14 sweep)
The todo queue is empty. This sweep re-checked all ten blocked tickets; nine
stay blocked for reasons already measured today (#1980 G-3, #1997 A-2/A-4,
#1962 CAP_NET_RAW, #1773 and #2381 on external events, and the four date/time
tickets on their dependency chain). #1940 is the root of that chain -- #1942,
#1943 and #1945 depend on it directly and #1944 through #1943 -- so one
decision there unblocks five tickets. It moves blocked -> needs_user with the
question recorded. No code was written.
Four premise corrections, all measured:
1. THE REFERENCE CANNOT SETTLE THIS. DateTime.cs, CultureInfo.cs and
DateTimeFormatInfo.cs are all in System.Private.CoreLib -- .NET has no
component boundary here, so SA-5 does not reach the question.
2. The structural blocker is a CYCLE, named precisely: Globalization declares
PUBLIC_DEPENDENCIES Core.Base, so DateTime (Core.Base) cannot name
DateTimeFormatInfo (Globalization) without an edge the validator rejects.
3. ONE VIABLE SHAPE IS FAR CHEAPER THAN THE TICKET ASSUMES. Moving DateTime to
a new component is 34 including files across eight modules. Moving
DateTimeFormatInfo into Core.Base is TWO HEADER FILES: it is header-only,
does not name CultureInfo, its only non-Core.Base include is an enum, and
its four includers are all inside Globalization. Ownership is by logical
path uniqueness, not directory prefix, so not one include line changes.
4. The "culture concurrency premise" is a LIVE DEFECT and the reference
settles it: .NET's s_currentThreadCulture is [ThreadStatic] while this
port's currentCulture_/currentUICulture_ are process-wide inline statics,
written without synchronisation, under a doc-comment that says "the current
THREAD's culture". It is NOT landed here because the naive repair is wrong:
.NET falls back through DefaultThreadCurrentCulture, so plain thread_local
would silently remove the process-wide setting this port has today.
Gate unchanged at 17,597/38 (no production code touched).1 parent 0070f23 commit 8b08571
1 file changed
Binary file not shown.
0 commit comments