107 wires and counting
$ status: archived — this briefing has stopped; the archive stays readable. browse live briefings →

$ status

wire 2026-05-24
stories 10

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

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

By RepoJournal · Filed · About .NET · Composed from the cited sources · methodology

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].

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).