The Wire · Showcase
RUNTIME CUTS ASYNC PROFILER BLOAT, ROSLYN CLOSES TYPE METADATA GAP
By RepoJournal · Filed · About .NET
The CLR's async instrumentation just got unified under a single gate, letting the ILLinker dead-code-eliminate entire profiling paths the compiler can prove are unreachable.
The async profiler, debugger, and TPL event source have been reworked to flow through one unified instrumentation flags gate [1], shrinking the constant-fold surface for per-client support checks and unlocking aggressive dead-code elimination. This is the kind of internals polish that shows up as smaller binaries and faster startup on constrained devices. In parallel, Roslyn shipped the DerivedTypes metadata format change [2] to align with runtime issue #129009, letting the compiler properly track closed-type semantics in metadata. The iOS/tvOS minimum version bump to 13.0 also let runtime drop the gettimeofday fallback and standardize on timespec_get [3], simplifying platform abstraction. On the F# side, the compiler now emits FS0755 when CompiledName attributes land on multi-value let-bindings [4], catching a silent crash bug that was duplicating compiled names. LSP progress reporting hit Roslyn [5], so neovim and other clients can now see what's loading and how far along the solution parse is.
Action items
- → Review async profiler changes if you ship custom instrumentation or depend on TPL event source dotnet/runtime [plan]
- → Update F# compiler if you use CompiledName on multi-value bindings dotnet/fsharp [plan]
- → Monitor LSP progress reporting changes if you maintain editor integrations dotnet/roslyn [monitor]
- → Check AVFoundation LoadTrack method signatures in macios bindings if you use media APIs dotnet/macios [plan]
References
- [1] Async Profiler: Combine instrumentation flags usage over profiler/tpl/debugger. (#130083) dotnet/runtime
- [2] Set IsClosedTypeAttribute.DerivedTypes ↗ dotnet/roslyn
- [3] Use timespec_get on iOS/tvOS/MacCatalyst now that 13.0 is the minimum version (#130246) dotnet/runtime
- [4] Emit FS0755 for CompiledName on multi-value let-bindings ↗ dotnet/fsharp
- [5] [LSP] Add progress when loading solution and progress ↗ dotnet/roslyn
FAQ
- What changed in .NET on July 7, 2026?
- The CLR's async instrumentation just got unified under a single gate, letting the ILLinker dead-code-eliminate entire profiling paths the compiler can prove are unreachable.
- What should .NET teams do about it?
- Review async profiler changes if you ship custom instrumentation or depend on TPL event source • Update F# compiler if you use CompiledName on multi-value bindings • Monitor LSP progress reporting changes if you maintain editor integrations
- Which .NET repositories shipped on July 7, 2026?
- dotnet/runtime, dotnet/roslyn, dotnet/fsharp