RepoJournal
.NET

@dotnet

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

Pick a date

The Wire · Showcase

JIT OPTIMIZER UNLOCKS LARGE-STRIDE ARRAYS, WASM R2R CATCHES EXCEPTIONS

By RepoJournal · Filed · About .NET

The runtime JIT dropped its stride limiter and now clones high-stride array loops with proper bounds checking, while WebAssembly R2R gained exception handling after catch blocks.

The JIT optimizer removed the blanket stride cap that was rejecting array loops with post-step induction variables exceeding INT_MAX [1]. For strides larger than 57, it now emits a runtime bounds check (arr.Length <= INT_MAX - s + 1) instead of skipping the optimization entirely, building on span-loop work from earlier this cycle. This is a concrete win for numeric and data-heavy workloads that iterate arrays with large steps. Separately, WebAssembly R2R now supports resuming after catch blocks by pairing each try_table with an exnref-typed wrapper and per-funclet exception locals [2], closing a gap in exception semantics. On the testing side, Apple CoreCLR mobile test suites had three failures disabled or fixed: Moq's RefEmit codegen breaks on iOS, Tan diverges slightly under FMA on arm64, and one trimmer descriptor issue was resolved [3]. Across the .NET skills ecosystem, two new polyglot testing analyzers shipped: `find-untested-sources` uses Roslyn to map C# files to their test referents in 9 seconds on a 3,900-file repo [4], while `find-untested-sources-polyglot` uses tree-sitter to do the same across Python, TypeScript, JavaScript, Go, Java, Rust, and Ruby with no build step [5]. The xunit-to-mstest migration skill fixed false-negative graders by switching from output-based to file-based assertions, eliminating phantom test failures when the agent explained its changes [6]. MAUI's release tooling got surgical updates: review reruns now only trigger on new author activity, and versioning logic was extracted into shared modules with a new -CloseFixedIssues flag and earliest-release-wins milestone validation [7] [8]. Finally, java-interop decoupled its NuGet dependency updates by removing Dependabot grouping, so each package bump gets its own PR for cleaner bisecting and selective reverts [9].

Action items

References

  1. [1] JIT: clone array loops with stride > 57 ↗ dotnet/runtime
  2. [2] Wasm R2R: implement support for resume after catch ↗ dotnet/runtime
  3. [3] [clr-ios] Disable failing tests and fix trimming in Apple CoreCLR mobile test suites (#129226) dotnet/runtime
  4. [4] Add find-untested-sources skill (C# parse-only test pairing) ↗ dotnet/skills
  5. [5] Add find-untested-sources-polyglot skill (tree-sitter, 9 languages) ↗ dotnet/skills
  6. [6] migrate-xunit-to-mstest: switch file-state graders from output to file (no false negatives) ↗ dotnet/skills
  7. [7] Restrict /review rerun eligibility to author activity ↗ dotnet/maui
  8. [8] Extract shared versioning module, add -CloseFixedIssues flag, and earliest-release-wins milestone validation ↗ dotnet/maui
  9. [9] Remove NuGet dependency grouping from Dependabot config (#1459) dotnet/java-interop

FAQ

What changed in .NET on June 16, 2026?
The runtime JIT dropped its stride limiter and now clones high-stride array loops with proper bounds checking, while WebAssembly R2R gained exception handling after catch blocks.
What should .NET teams do about it?
Test the JIT array-loop cloning changes on large-stride workloads before the next runtime release • Integrate find-untested-sources or find-untested-sources-polyglot into your test coverage CI pipeline • Monitor MAUI's review-rerun and release-tooling PRs for merge; test artifacts if you're waiting on the changes
Which .NET repositories shipped on June 16, 2026?
dotnet/runtime, dotnet/skills, dotnet/maui, dotnet/java-interop

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.