The Wire · Showcase
COMPLEX NUMBERS NOW IEEE 754 COMPLIANT, SKILLS EVALS GO VALLY-ONLY, UNSAFE EVOLVES
By RepoJournal · Filed · About .NET
Complex<T> just shipped conformance to C23 Annex G special values, dotnet/skills completed its migration to the Vally eval harness, and the language is tightening unsafe semantics ahead of C# 13.
Complex<T> now conforms to C23 Annex G (IEC 60559) for signed zeros, infinities, and NaNs [1], filling a gap that existed because complex arithmetic sits outside IEEE 754 itself. This matters for numerical code that relies on special-value semantics in complex domain calculations. Separately, dotnet/skills retired skill-validator's evaluate command entirely, making Vally the sole LLM eval engine across PR gates, scheduled runs, and dashboard publishing [2], while retaining skill-validator's check linter pending Vally support; three skills that shipped base evals but had no Vally configs are now scored [3]. On the language front, Roslyn is implementing unsafe evolution: unsafe modifiers on delegates, static constructors, destructors, and type declarations now produce errors because they have no meaning under the new rules [4]. The JIT hardened lowering paths with no user-visible impact [5], and LibraryImportGenerator prepped for unsafe-v2 by wrapping generated stubs in unsafe blocks instead of marking containing types [6], ensuring code remains valid under both old and new unsafe rules. Pattern matching got a performance boost via Tests.ValueSet, cutting O(n^2) behavior for large or-patterns down to O(1) filter operations [7]. Debugger infrastructure pushed DAC/cDAC activation logic into dbgshim so SOS and ClrMD can request IXCLRDataProcess without duplicating location decisions [8]. Test infrastructure cleaned house: macios deleted the legacy mmptest suite targeting .NET Framework 4.7.2 and ported two relevant tests to the active test harness [9]. RemoteExecutor bumped from 7.0.0-beta to 10.0.0-beta, removing obsolete pinning [10].
One email a day. Unsubscribe in one click.
What actually shipped in .NET, written up every day — commits, pull requests, releases, and security advisories.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Review unsafe evolution changes if you have unsafe modifiers on delegates, static constructors, or types dotnet/roslyn [plan]
- → Verify Complex<T> special-value handling in numerical code targeting C23 compliance dotnet/runtime [monitor]
- → Monitor Vally eval harness stability across dotnet/skills runs dotnet/skills [monitor]
References
- [1] Make Complex<T> conform to C23 Annex G special values ↗ dotnet/runtime
- [2] Migrate LLM evals to the Vally harness ↗ dotnet/skills
- [3] Add missing Vally configs for 3 evals ↗ dotnet/skills
- [4] Unsafe evolution: report error for `unsafe` with no effect ↗ dotnet/roslyn
- [5] JIT: Cleanup and harden lowering (#130837) dotnet/runtime
- [6] LibraryImportGenerator: prep for unsafe-v2 ↗ dotnet/runtime
- [7] Optimize DecisionDagBuilder with Tests.ValueSet for large or-patterns ↗ dotnet/roslyn
- [8] dbgshim: service data-access (IXCLRDataProcess) through OpenVirtualProcess ↗ dotnet/diagnostics
- [9] [tests] Delete legacy mmptest suite and port two tests to tests/dotnet/UnitTests. Fixes #26145. ↗ dotnet/macios
- [10] Update Microsoft.DotNet.RemoteExecutor to match Arcade version (#5929) dotnet/diagnostics