RepoJournal
.NET

@dotnet

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

Keep up with .NET in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: .NET Full archive →

The Wire · Showcase

JIT INTRINSICS BUG FIX UNBLOCKS STRESS TESTING, DEBUGGER FALLBACK RESTORED FOR NON-WINDOWS

By RepoJournal · Filed · About .NET

The runtime team patched a critical JIT assertion that was breaking stress-tailcall testing on methods with SuppressGCTransition calls, while simultaneously restoring managed debugging on non-Windows platforms.

The JIT compiler was incorrectly marking call+ret patterns for tail-call optimization before determining whether the callee was a named intrinsic [1]. When intrinsics like GC.KeepAlive get imported as non-CALL IR nodes, this left malformed return blocks that triggered assertions during GC poll insertion on methods containing SuppressGCTransition calls. That fix is now landed [2]. In parallel, the runtime team restored a critical fallback in the debugging layer that reconstructs register context from thread frame chains on platforms where ICorDebugDataTarget::GetThreadContext returns E_NOTIMPL [3]. This was removed in a previous commit and broke managed debugging stack walks on non-Windows platforms. The team caught it through internal Visual Studio testing. On the optimization side, the JIT now folds always-true isinst checks using PHI node analysis and improved type comparison logic [4], extending the reach of assertion-based optimizations. WinForms continues pulling codeflow updates from the main VMR [5] [6].

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] JIT: don't stress-tailcall named intrinsics (#122479) ↗ dotnet/runtime
  2. [2] JIT: don't stress-tailcall named intrinsics (#122479) (#128336) dotnet/runtime
  3. [3] Restore E_NOTIMPL fallback in DacDbiInterfaceImpl::GetContext (#128499) dotnet/runtime
  4. [4] JIT: fold isinst using reaching VNs and compareTypesForCast ↗ dotnet/runtime
  5. [5] [main] Source code updates from dotnet/dotnet ↗ dotnet/winforms
  6. [6] [main] Source code updates from dotnet/dotnet ↗ dotnet/winforms

Quick answers

What shipped in .NET on May 24, 2026?
The runtime team patched a critical JIT assertion that was breaking stress-tailcall testing on methods with SuppressGCTransition calls, while simultaneously restoring managed debugging on non-Windows platforms. In total, 5 commits and 5 pull requests landed.
Who contributed to .NET on May 24, 2026?
3 developers shipped this update, including AndyAyersMS, EgorBo, and dotnet-maestro[bot].
What were the notable .NET updates?
JIT: don't stress-tailcall named intrinsics (#122479), JIT: don't stress-tailcall named intrinsics (#122479) (#128336), and Restore E_NOTIMPL fallback in DacDbiInterfaceImpl::GetContext (#128499).

More from @dotnet

Daily updates, in your inbox

Follow .NET

Keep up with .NET in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?