Skip to content

Commit 8b08571

Browse files
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

File tree

plan.sqlite3

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)