RepoJournal
.NET

@dotnet

The .NET runtime, ASP.NET, and the C# tooling

Pick a date

The Wire · Showcase

ROSLYN FIXES RAZOR DIRECTIVE SPANS, RUNTIME ELIMINATES DEAD GC CODE

By RepoJournal · Filed · About .NET

Roslyn's completion engine now correctly reports attribute parameter locations in Razor directives, fixing a precision bug that cascaded into performance work across webtools.

The Roslyn team closed a long-standing span computation bug where directive attributes like @bind-value:format were reported as only @bind-value, omitting the colon and parameter portion [1]. This fix extracts from a larger effort to reduce webtools dependence during completion for measurable performance gains. In parallel, the runtime team is aggressively pruning dead code paths: they deleted the unused WBF_NoBarrier_CheckNotHeapInDebug write barrier form and its associated JIT helper, which were never emitted by the garbage collector [2]. On the JIT side, folding optimizations for double not/neg operations moved earlier in the pipeline, eliminating trivially unnecessary nodes and showing measurable throughput improvements in SPMI benchmarks [4]. The cDAC work continues reshaping allocation-heavy APIs like GetHeapSegments into callback-based EnumerateHeapSegments to reduce native heap pressure [5]. ASP.NET Core shipped a critical fix to the quarantine workflow where external contributor PRs were silently filtered by DIFC integrity checks, causing re-quarantine detection to fail and tests to be incorrectly unquarantined [3].

Action items

References

  1. [1] Fix TryGetAttributeName nameLocation to include parameter name ↗ dotnet/roslyn
  2. [2] Delete unused WBF_NoBarrier_CheckNotHeapInDebug and CORINFO_HELP_ASSIGN_REF_ENSURE_NONHEAP (#128230) dotnet/runtime
  3. [3] Use deterministic pre-step for re-quarantine detection to bypass DIFC filtering ↗ dotnet/aspnetcore
  4. [4] Move the folding of double not/neg to gtFoldExpr ↗ dotnet/runtime
  5. [5] [cDAC] Reshape DacDbi API GetHeapSegments to EnumerateHeapSegments and implement in cDAC ↗ dotnet/runtime

FAQ

What changed in .NET on May 17, 2026?
Roslyn's completion engine now correctly reports attribute parameter locations in Razor directives, fixing a precision bug that cascaded into performance work across webtools.
What should .NET teams do about it?
Validate Razor directive completion spans in your tooling integration tests • Review ASP.NET Core quarantine workflow changes if you maintain test infrastructure • Update cDAC consumers to use EnumerateHeapSegments callback pattern
Which .NET repositories shipped on May 17, 2026?
dotnet/roslyn, dotnet/runtime, dotnet/aspnetcore

For your repos

The showcase is a teaser.
Your wire is the product.

Same engine. Different stack. Below: what changes when the wire is yours.

Showcase wire

  • 14 famous open source orgs
  • One wire per day
  • Public, generic
  • Read on the web, when you remember

Your wire

  • Up to 1,500 of your repos - orgs, deps, vendors
  • Morning and evening briefs
  • Action items routed to your team
  • Slack delivery, email, breaking-news CVE alerts

Want a hands-on demo first? Ask a current user for an invite link.