2026年05月のダイジェスト

dotnet/runtimeにマージされたPull RequestをAIで日本語要約

← アーカイブ一覧へ戻る

このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。

509
PR 数(Total)
386
PR 数(Community)
82
PR 数(AI Agent)
41
PR 数(Bot)
88
ラベルタイプ数
31
更新日数

日別 Pull Request 数

日付をクリックするとその日のセクションへ移動します。

ラベル別 Pull Request 数(上位10)

ラベル別 Pull Request 数の上位10 上位10件の合計399件を100%とした内訳です。各スライスの番号は凡例の番号に対応します。ラベルごとの件数は凡例を参照してください。 1. area-CodeGen-coreclr — 101 PRs (25.3%) 2. community-contribution — 53 PRs (13.3%) 3. Servicing-approved — 43 PRs (10.8%) 4. area-Diagnostics-cdac — 41 PRs (10.3%) 5. area-Diagnostics-coreclr — 37 PRs (9.3%) 6. arch-wasm — 35 PRs (8.8%) 7. area-codeflow — 28 PRs (7.0%) 8. area-NativeAOT-coreclr — 22 PRs (5.5%) 9. area-Infrastructure — 20 PRs (5.0%) 10. area-VM-coreclr — 19 PRs (4.8%)
  1. area-CodeGen-coreclr101 PRs25.3%
  2. community-contribution53 PRs13.3%
  3. Servicing-approved43 PRs10.8%
  4. area-Diagnostics-cdac41 PRs10.3%
  5. area-Diagnostics-coreclr37 PRs9.3%
  6. arch-wasm35 PRs8.8%
  7. area-codeflow28 PRs7.0%
  8. area-NativeAOT-coreclr22 PRs5.5%
  9. area-Infrastructure20 PRs5.0%
  10. area-VM-coreclr19 PRs4.8%
上位10件で全731件中399件(54.6%)を占めます。ラベルは1つの Pull Request に複数付くため、比率は PR 数ではなくラベル付与の延べ数に対するものです。

各 Pull Request の概要

この月にマージされた 509 件を新しい日から順に並べています。タイトルをクリックするとその日のページの該当箇所へ移動します。Bot が作成した 41 件はタイトルのみにして、各日の最後にまとめています。

2026年05月31日 (2 PRs) この日のページ →

2026年05月30日 (9 PRs) この日のページ →

#128791 JIT: remove dead BBJ_RETURN-in-loop assertion in loop cloner

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JIT のループクローナーから、ループ内に BBJ_RETURN ブロックが存在しないという古い仮定に基づいた assertion とコメントを削除します。EH-ループクローニングがデフォルトで有効になったことで、BBJ_RETURN ブロックがクローン可能なループに合法的に出現するようになったため、この制約は不要になりました。

#128780 [cDAC] Implement IsDelegate for cDAC

@barosiak・GitHub・area-Diagnostics-cdac

cDAC(Compact Debugger Access Component)にデリゲート型判定機能を実装します。型がSystem.MulticastDelegateを親MethodTableとして持つ場合、それをデリゲートと見なす新しいIRuntimeTypeSystem.IsDelegate契約APIを追加し、レガシーDAC実装からの移行を完了します。

#128774 [cDAC] Cache resolved read-only metadata address per module in EcmaMetadata_1

@max-charlamb・GitHub・area-Diagnostics-cdac

cDAC (Compact Diagnostics And Inspection Container) の EcmaMetadata_1 において、読み取り専用メタデータアドレスをモジュールごとにキャッシュする最適化。これにより、毎回のPEヘッダウォークと不要なメタデータプリフェッチを削減し、ダンプ分析時のパフォーマンスを大幅に改善します。

#128747 [Android] Clear pending JNI exceptions in pal_rsa.c to avoid CheckJNI aborts

@simonrozsival・GitHub・area-System.Security

AndroidのSystem.Security.Cryptography.Native.Androidライブラリで、JNI例外処理が不適切により発生していたCheckJNI SIGABRTを修正。特に16384ビットRSA鍵などをConscrypt + BoringSSLプロバイダが拒否する場合に、JNI呼び出し間で保留中の例外をクリアせずに次の呼び出しを実行していた問題を解決。

#128705 Filter local interface DNS results by address family

@simonrozsival・GitHub・area-System.Net

SystemNative_GetHostEntryForNameがローカルホスト名の解決時にgetifaddrsで取得したインターフェイスアドレスを追加する際、リクエストされたアドレスファミリでフィルタリングしていなかった問題を修正します。getaddrinfoは既にhint.ai_familyでフィルタリングしていますが、ローカルインターフェイスの追加パスではこのフィルタが適用されておらず、IPv4のみのリクエストでもIPv6アドレスが含まれる可能性がありました。

#128616 [cDAC] Implement GetExactTypeHandle DacDbi API

@Copilot・GitHub・area-Diagnostics-cdac

cDAC(Contract Data Access Component)とレガシーDBI(Debugger Bridge Interface)の相互運用層を拡張し、関数ポインタ型を含む正確な型ハンドル解決をサポートするGetExactTypeHandle DacDbi APIを実装しました。ローダーアロケータのコレクティビリティメタデータの読み取りと、DAC互換の関数ポインタ型比較を実現します。

#128609 Add basic test for crossgen2 WebCIL

@jtschuster・GitHub・area-crossgen2-coreclr

crossgen2のWebCIL(WebAssembly内に埋め込まれたIL)コンパイル機能に対する基本的なテストを追加します。ILCompiler.ReadyToRunテストハーネスを拡張して、.dll以外の出力形式(.wasmなど)に対応し、WASM/ブラウザターゲット向けのWebCILペイロード生成と検証を行うxUnittestケースを実装しています。

#128294 Replace EnumerateModulesInAssembly with combined GetModuleForAssembly; implement in cDAC

@Copilot・GitHub・area-Diagnostics-coreclr

DAC/DBI(デバッグアクセスコンポーネント/デバッグインターフェース)のモジュール照会APIをリファクタリングしました。EnumerateModulesInAssemblyコールバックを廃止し、GetModuleForAssemblyに「モジュールがロード済みか」を示すフラグを統合する変更です。cDAC(Microsoft.Diagnostics.DataContractReader.Legacy)に新APIを実装し、ダンプベースのテストも更新しました。

2026年05月29日 (31 PRs) この日のページ →

#128753 [ci-scan] Fix feedback workflow safe outputs and redesign KPI tracker

@kotlarmilos・GitHub・area-Infrastructure-libraries

CI失敗スキャンフィードバックワークフローの3つの改善を実施しました。

  1. Safe-outputsの修正: gh-awのprotect_top_level_dot_foldersルール対象外とするため、.github/workflows/ci-failure-scan.mdに対する明示的なprotected-files設定を追加し、ワークフロー生成時にprotected_dot_folder_excludesとprotected_files_policyを含める設定を追加
  2. KPIトラッカーの再設計: 統計的に意味のある指標に変更
    • Scanner artifact acceptance rate(30d/90d rolling window、Wilson 95% lower bound、N≥10で計測)
    • CI環境: 観測された障害数(7d/30dと前週比)と主要パイプライン分析
    • Scanner activity: KBE/PR作成・解決数
    • Coverage and latency: KBEファイル数、初期観測から提出までの時間(中央値+P90)
    • Diagnostics: メンテナー報告数、重複数、CI失敗数
  3. スケジュール実行対応: target: "*"を追加し、長寿命KPIトラッカー(#128742)をissue番号で更新可能に

#128739 Remove dotnet/corert#3873 workarounds

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

dotnet/corert#3873で導入されたワークアラウンドを削除し、コンパイル時の汎用メソッド検索を厳密化します。従来は遅延初期化で処理していた仮想テーブルスライスと汎用辞書レイアウトの生成を事前計算必須に変更し、スキャナの漏れを明示的にエラーで検出するようにします。

#128725 Simplify/Improve the HashMap/PtrHashMap/EEHashTable

@davidwrighton・GitHub・area-VM-coreclr

HashMap、PtrHashMap、EEHashTableの実装を簡素化・最適化するPRです。未使用の置換関数を削除し、仮想関数を使用するCompare関数を非仮想のComptrFunc関数に置き換えることで、メモリ効率と実行速度を向上させます。また、LookupValueの代わりにGetHashを適切に使用するよう変更しています。

#128724 [Release/10.0] JIT: Fix bug in GenTree::Equals (#128654)

@AndyAyersMS・GitHub・Servicing-approvedarea-CodeGen-coreclr

JITのテール マージ最適化におけるバグを修正します。仮想スタブ呼び出しを正しく区別せず、異なる型の共有ジェネリックメソッドを呼び出す複数のテール コール サイトで呼び出しを誤って統合し、間違ったメソッドが呼び出される問題を解決します。

// 問題のパターン例
if (tag == "bytes")  return ((IFoo<byte[]>)this).Get();
if (tag == "string") return ((IFoo<string>)this).Get();

#128719 Include relocation addend in IMAGE_REL_SYMBOL_SIZE resolution

@jtschuster・GitHub・area-ReadyToRun

IMAGE_REL_SYMBOL_SIZE解決パスでリロケーション加数(addend)とインライン値が無視されていた問題を修正しました。PE/COFF形式のシンボルサイズ計算で、呼び出し元の加数と既存のインライン値を組み合わせるようにしました。これにより、R2Rヘッダー内のRuntimeFunctions エントリが、不正に4バイトの末尾sentinelを含めずに正しいサイズを報告するようになります。

具体的には、definedSymbol.Size + addend + inline という計算式に修正され、すべてのCOFF/PEターゲットで意図された動作が復元されます。

#128715 [Wasm RyuJIT] Fix declared local off-by-one in reverse P-Invoke case

@adamperlin・GitHub・area-CodeGen-coreclr

Wasm RyuJIT の逆P-Invoke(RPI)ケースにおいて、宣言されたローカル変数のカウントに1つのずれが生じていた問題を修正します。スタックポインタ(SP)が RPI では明示的に宣言されたローカル変数に存在する一方、非RPI では入力引数として扱われることによる不一致を解決しています。

#128713 Use a distinct wasm machine type for R2R dumps

@jtschuster・GitHub・area-ReadyToRun

Webcil/WebAssembly ReadyToRun (R2R) イメージが従来Machine.I386として扱われていたため、x86固有のデコーディングパスを再利用していた問題を解決します。WebAssembly専用の機械タイプセンチネル(WasmMachine.Wasm32)を導入し、ポインタサイズ、インポートセクション、トランジションブロック、GC情報、r2rdumpのアーキテクチャ処理をWebAssembly固有のコードパスにルーティングします。

#128711 [cDAC] LegacyHandle on IEnum should be nuint

@rcj1・GitHub・area-Diagnostics-cdac

Legacy DAC (Data Access Component) の列挙型インターフェース IEnum<T>.LegacyHandle の型を TargetPointer から nuint に修正するPRです。Legacy DAC列挙ハンドルはホスト側の不透明なポインタであり、ネイティブDAC内で CLRDATA_ENUM 経由で (ULONG_PTR) として格納されるため、nuint が意味論的に正しくなります。これはプロジェクト内の既存慣例(DBI stack/heap/ref walkハンドルなど)に準拠しています。

#128708 Reduce thread count on 32-bit platforms for GThread01_threadstart (arm32/x86)

@Copilot・GitHub・area-System.Threading

32ビットプラットフォーム(arm32/x86)で GThread01_threadstart テストが OutOfMemoryException で失敗するのを防ぐため、スレッド数を50から5に削減する変更です。32ビットプロセスの限定的な仮想アドレス空間を考慮し、テストスキップではなく実行継続しながら安定動作させます。

// Use fewer threads on 32-bit platforms to avoid OOM from exhausting the virtual address space.
public static int nThreads = PlatformDetection.Is32BitProcess ? 5 : 50;

#128701 JIT: avoid redundant nullcheck in LowerBlockStoreAsGcBulkCopyCall

@EgorBo・GitHub・area-CodeGen-coreclr

JITコンパイラのLowerBlockStoreAsGcBulkCopyCall関数において、GC含有ブロックストアをバルク書き込みバリアヘルパーに変換する際の冗長なnullcheck処理を削除します。先行フェーズで間接参照がfaultしないことが証明されている場合、元のGT_STORE_BLKの例外フラグに依存することで、不要な明示的nullcheckをスキップします。

#128695 Add Process.TryGetProcessById and SafeProcessHandle.TryOpen APIs

@Copilot・GitHub・area-System.Diagnostics.Process

Process.GetProcessById と SafeProcessHandle.Open の非スロー型代替メソッドを追加します。これらの新しいAPI(Process.TryGetProcessById と SafeProcessHandle.TryOpen)はプロセスが存在しない場合に false を返し、存在する場合に true を返します。UnauthorizedAccessException などの権限エラーはスロー型と同じく例外として発生します。これにより、プロセスID取得時の競合状態を安全に処理できます。

// プロセスが存在しない場合は false を返す(権限エラーは例外をスロー)
SafeProcessHandle.TryOpen(int processId, out SafeProcessHandle? processHandle);
Process.TryGetProcessById(int processId, out Process? process);

#128692 Validate sizes and offsets when parsing NTLM challenge

@rzikm・GitHub・area-System.Net.Security

マネージドNTLMクライアントのCHALLENGE_MESSAGE解析を強化し、不正形式または切詰められたチャレンジが範囲外スライス例外やサイレント誤解析を引き起こさないようにしました。宣言されたオフセット、長さ、およびAVペアサイズが提供されたblobに適合することを検証し、不正な入力に対してはInvalidTokenを返すようにしました。

#128691 Validate base64 in NegotiateAuthentication.GetOutgoingBlob(string)

@rzikm・GitHub・area-System.Net.Security

NegotiateAuthentication.GetOutgoingBlob(string) メソッドの base64 デコード処理を改善しました。従来は Convert.FromBase64String を使用して例外をスローしていましたが、Convert.TryFromBase64String に切り替えることで、不正な base64 入力を InvalidToken ステータスコードとして返すようにしました。HTTP サーバーなど、信頼できないクライアントトークンを処理する場合に try/catch を使用する必要がなくなります。

#128687 Remove CORINFO_HELP_ASSIGN_BYREF and related dead code

@EgorBo・GitHub・area-VM-coreclr

CORINFO_HELP_ASSIGN_BYREF ヘルパーと JIT_ByRefWriteBarrier / RhpByRefAssignRef 実装を削除する変更です。これは前回のPR #128542 のフォローアップで、JIT-EE インターフェースから不要になったByRef write barrier ヘルパーを完全に削除し、ReadyToRun(R2R)ヘルパーマッピングを更新し、JIT/EEバージョンGUIDをバンプします。

#128679 [cDAC] Prepare for dacdbi stackwalk

@rcj1・GitHub・area-Diagnostics-cdac

cDAC(Compact Data Access Component)のスタックウォーク機能をDacDbi向けに準備するため、スタックウォーキングイテレータをリファクタリングしました。ネイティブマーカーフレームをcDAC APIから公開し、レガシーのSOSDac互換性を保ちながらDacDbiスタックウォークで消費可能にします。フレームフィルタリングはコンシューマーレベルで実施されます。

#128677 Improve the handling of popcnt and tzcnt on arm64

@tannergooding・GitHub・area-CodeGen-coreclr

ARM64プラットフォームにおいて、popcnt(ポップカウント)とtzcnt(末尾のゼロビット数)命令の処理を改善します。従来はpopcntがまったく処理されておらず、tzcntが2つのIRノードとしてインポートされていたため、ヒューリスティクスやパターンマッチングに悪影響を及ぼしていました。この変更により、これら命令の処理を最適化し、コード生成の効率を向上させます。

#128669 Add wasm coverage to SuperPMI CI pipelines

@AndyAyersMS・GitHub・area-CodeGen-coreclr

SuperPMI(JIT性能測定・比較ツール)のCI パイプラインにWebAssembly(wasm)クロスターゲット JIT対応を追加します。wasm JIT(clrjit_universal_wasm_<host_arch>)のコレクション、リプレイ、アセンブリ差分解析機能を統合し、パイプライン・スクリプト・ビルドシステムを拡張して wasm をクロスターゲット altjit ケースとして処理します。

#128667 Guard unused llvm-libunwind symbols to avoid duplicates on Android

@sbomer・GitHub・area-NativeAOT-coreclr

NativeAOTが使用しないllvm-libunwindの公開API(unw_*関数など)をガード化し、Android NDK r29などのプラットフォームlibunwindとのシンボル重複を回避する変更です。NativeAOTは内部C++クラス(DwarfInstructions、CompactUnwinder、UnwindCursorなど)のみを使用するため、これらの公開APIをコンパイル時に除外し、新たにUnwindHelpers::FindUnwindSections()アクセッサを導入してアンワインドセクション検出を処理します。

#128517 [cDAC] Implementing cDAC DacDbi API methods EnumerateMethodDescParams and EnumerateTypeHandleParams

@Copilot・GitHub・area-Diagnostics-cdac

DAC/DBI型パラメータ取得APIを、割り当てられたTypeParamsListバッファを返すモデルから、コールバックベースの列挙方式へリファクタリングしました。GetMethodDescParams/GetTypeHandleParamsをEnumerateMethodDescParams/EnumerateTypeHandleParamsに置き換え、ネイティブ(DAC/DBI+RS)および管理cDAC側の対応インフラを整備しています。

#128502 Add cdac CCR instructions

@rcj1・GitHub・area-Diagnostics-cdac

cDAC(Common Data Access Component)領域のレビュー/自動化ガイダンスを明確化するため、フォルダ固有のインストラクション文書を追加します。繰り返されるレビューコメントを削減し、レビュー基準を統一することを目的としています。

#128455 Fix NativeAOT string GC config handling

@janvorli・GitHub・area-NativeAOT-coreclr

NativeAOTランタイムのGC設定処理を修正し、文字列型のGC設定値(例:GCHeapAffinitizeRanges)が正しく取得できるようにしました。従来はGCToEEInterface::GetStringConfigValueが常にfalseを返していたため、文字列設定の抽出ができず、CoreCLRとの動作差異が生じていました。本修正により、環境変数および組み込み設定ブロブから文字列設定値を読み込めるようになります。

#128417 Disable TpaLoadFailureTest cases on mobile platforms

@Copilot・GitHub・area-AssemblyLoader

モバイルプラットフォーム上でのアセンブリロード失敗テストの失敗を解決するPRです。TpaLoadFailureTestの2つのテストケースにモバイルプラットフォーム除外条件を追加します。モバイルではファイル削除とパッケージング/バンドリングの相互作用によってテストが失敗するため、デスクトップ/CoreCLRプラットフォームのみでのテスト実行に限定します。

#128065 Enable sccache for arm64 and FreeBSD cross-builds

@agocke・GitHub・area-Infrastructure-coreclr

sccacheのキャッシング機能をarm64とFreeBSDのクロスコンパイルに対応させるPRです。キャッシュキーにarchTypeとosSubgroupを含めることで、各バリアント(arm64、FreeBSD、musl)が個別のキャッシュエントリを取得できるようにしています。arm64とFreeBSDはx64マシン上でクロスコンパイルされるため、既存のx64 sccacheバイナリで対応可能です。

2026年05月28日 (21 PRs)うち Bot 1 件 この日のページ →

#128726 [cdac] Cache negative lookups in ManagedTypeSource_1

@max-charlamb・GitHub・area-Diagnostics-cdac

ManagedTypeSource_1における負のキャッシング機構の追加により、ホットパスの効率性を大幅に改善しました。従来は成功したルックアップのみをキャッシュしていたため、失敗したルックアップは毎回System.Private.CoreLib内のすべてのTypeDefinition行を再スキャンしていました。本修正により、負のルックアップ結果をセンチネル値(nullやTypeHandle(TargetPointer.Null))としてキャッシュし、繰り返される失敗ルックアップの再スキャンを回避します。

#128662 JIT: Encapsulate VNFuncApp fields and clean up FuncIs/IsVNBinFunc usage

@EgorBo・GitHub・area-CodeGen-coreclr

JITのValue Numberingにおいて、VNFuncAppの内部フィールドをカプセル化し、危険な直接アクセス(特にm_args配列へのstd::swap)を排除しました。GetArg(x)メソッドでarityチェック付きアクセスを提供し、安全性を向上させています。またVNFunc比較や関数型チェックのコードをより標準的なヘルパー(FuncIs、IsVNBinFunc)に統一しました。

#128655 Add breadcrumb READMEs under src/ for test-doc discoverability

@steveisok・GitHub・area-Meta

dotnet/runtimeリポジトリの主要コンポーネントディレクトリ配下に軽量なREADME.mdファイルを追加し、AIエージェントやユーザーが容易にドキュメントを発見できるようにするための"breadcrumb"ドキュメント構造を導入します。各READMEはdocs/workflow/配下の権威的なドキュメントへのリンク集となっています。

#128654 JIT: Fix bug in GenTree::Equals

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JIT コンパイラの GenTree::Equals メソッドにおいて、異なるディスパッチセルを持つ仮想スタブコールが同一と判定される問題を修正しました。この問題により、共有ジェネリック インターフェース ディスパッチの不正なヘッド/テール マージが発生していました。

#128646 Dead-code cleanup: HandleTableMap multi-bucket / multi-AppDomain scaffolding

@Copilot・GitHub・area-GC-coreclr

2019年のAppDomain-per-process廃止以降、g_HandleTableMapは単一ノードで安定し、CreateHandleStoreの呼び出し元がなくなったため、マルチバケット・マルチAppDomain対応の不要なスキャフォルディングコードを削除します。削除されたコードはアサーション付きのスタブに置き換えられ、リグレッション検出を強化します。

#128644 [browser][coreCLR] Diagnostic server improvements for CoreCLR on WASM

@pavelsavara・GitHub・arch-wasmarea-Diagnostics-coreclros-browser

WASMにおけるEventPipeベースの診断インフラストラクチャを改善するPRです。主な変更は以下の3点です:

  1. ds_rt_browser_performance_measureの追加 — ネイティブコードからJS側のperformance.measure()を呼び出し、DevToolsでのプロファイリング/トレーシング表示を有効化
  2. スタートアップ診断ポート有効化 — DOTNET_DiagnosticPorts=js://readyをデフォルト有効化し、ランタイム初期化前から診断シナリオ(gcdump、counters、cpu-samples)に接続可能に
  3. 診断メッセージキュー性能改善 — メッセージ受信時のArray.shift()をヘッドポインタ方式に変更し、O(n)の配列コピーをO(1)に改善

#128639 createdump: detect cycles in link_map traversal

@steveisok・GitHub・area-Diagnostics-coreclr

createdumpツールのElfReader::EnumerateLinkMapEntriesメソッドで、動的リンカーのlink_mapリストをたどる際にサイクル検出機能がなく、メモリ破損やプロセス改変によってlink_mapが循環構造になった場合に無限ループに陥る問題を修正します。Brentのサイクル検出アルゴリズムを実装し、チェックポイントポインタを指数間隔(2の累乗)で移動させることで、メモリ読み込み失敗時の元の動作(すべてのモジュール訪問まで続行)を保持しながらサイクルを検出します。

#128621 Add Windows API needed by SafeProcessHandle to WindowsAPIs.txt

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

NativeAOT環境でのSafeProcessHandle/System.Diagnostics.Processの使用時に、Win32 APIをOS ローダーによる直接インポート(hard import)として解決できるようWindowsAPIs.txtを更新しました。これにより、LoadLibrary/GetProcAddressを用いた動的ロード機構が不要となり、バイナリサイズを1 MBから972 KBへ削減(約27 KB削減)します。

#128600 Add local create-kbe skill

@vitek-karas・GitHub・area-skills

Known Build Error(KBE)トリアージガイダンスを共有ドキュメント化し、CI失敗スキャンワークフローとローカルPR対応ツーリング間で同じKBEマッチング・テンプレートルールを使用するようにしました。新規のcreate-kbeスキルを追加し、PR Build Analysis結果を分析してKBE案を生成し、GitHub Issueの作成前にユーザー確認を行うローカルツーリングを実現します。

#128547 [cDAC] Implement EnumerateStackFramesFromException in DacDbi API (previously GetStackFramesFromException)

@Copilot・GitHub・area-Diagnostics-cdac

CoreCLR DAC/DBI インターフェースの例外スタックフレーム列挙機能を、コールバックベースの API として実装しました。GetStackFramesFromException から EnumerateStackFramesFromException へ移行し、管理コード側の cDAC (DataContractReader) 実装に新しい Exception contract API を追加しています。

新しい公開 API:

record struct ExceptionStackFrameInfo(
    TargetPointer Ip,
    TargetPointer MethodDesc,
    bool IsLastForeignExceptionFrame);

IEnumerable<ExceptionStackFrameInfo> GetExceptionStackFrames(TargetPointer exceptionAddr);

#128542 Remove CORINFO_HELP_ASSIGN_BYREF

@EgorBo・GitHub・area-CodeGen-coreclr

CORINFO_HELP_ASSIGN_BYREFヘルパー(GC ポインタを含む構造体コピー用のカスタム呼び出し規約を持つ書き込みバリア)を削除し、CORINFO_HELP_ASSIGN_REFまたはCORINFO_HELP_CHECKED_ASSIGN_REF、あるいはバルク書き込みバリア(CORINFO_HELP_BULK_WRITEBARRIER)に置き換えます。x64での遅いrep movsq命令の使用を回避し、SIMDの活用が可能になります。

// GC ポインタを含む構造体のコピーが高速化
record struct MyStruct(long N1, long N2, long N3, long N4, long N5, string A, string B);

class MyClass
{
    MyStruct _fld;
    void SetA(MyStruct value) => _fld = value; // 大幅に高速化
}

#128541 JIT: skip stack allocation for unused locals

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JITのエスケープ解析を拡張し、未使用のローカル変数に対するスタック割り当てをスキップする最適化を実装しました。追跡対象のローカル変数が実際に使用されているかどうかを判定する「used」ビットを追加し、エスケープせず使用もされないローカル変数はヒープ割り当てのままにして後続フェーズで削除可能にします。これにより、不要なスタック展開と死んだストア推論を回避できます。

#128440 [ci-scan] Improve ci-failure-scan emission rules and add daily feedback loop with KPI tracker

@kotlarmilos・GitHub・area-Infrastructure

ci-failure-scan agentic workflowの改善を行うPRです。既存のCI失敗スキャナーの発行ルールを厳密化して誤検知を削減し、新たに ci-failure-scan-feedback workflowを追加して、メンテナーからのフィードバックを収集し、KPIトラッキングとプロンプト編集提案を日次で行う仕組みを導入します。

#128356 [cDAC] Source generator for IData<T> data classes

@max-charlamb・GitHub・area-Diagnostics-coreclr

Roslyn増分ソースジェネレータ(DataGenerator)を導入し、cDAC IData<T> データクラスの生成を自動化するPRです。属性駆動型のアプローチにより、~150個の手書きクラスをポートしました。[CdacType]、[Field]、[StaticAddress] などの属性で、フィールド読み書きや型ハンドルアクセサを宣言的に定義できます。

[CdacType("System.Threading.Lock")]
internal sealed partial class Lock : IData<Lock>
{
    [Field("_state")]
    public uint State { get; }

    [Field("_owningThreadId")]
    public int OwningThreadId { get; }
}

#127174 Add runtime-diagnostics pipeline to Build Analysis

@max-charlamb・GitHub・area-Diagnostics-coreclr

runtime-diagnostics パイプライン(Azure DevOps定義ID 309)をBuild Analysis設定に追加するPRです。このパイプラインはSOS統合テスト、cDAC no-fallbackテスト、DACベースラインテスト、cDACダンプテストを実行します。現在これらのテスト結果はBuild Analysisで追跡されていないため、PR mergeをブロックできない状態が改善されます。

#126947 JIT: Unify to instParamLookup and improve GVM test coverage

@hez2010・GitHub・area-CodeGen-coreclrcommunity-contribution

JIT のジェネリック仮想メソッド(GVM)デバーチャライゼーション機能を準備するための段階的リファクタリングです。CORINFO_DEVIRTUALIZATION_INFO 構造体の複数の ad-hoc フラグを単一の instParamLookup に統一し、GVM テストカバレッジを拡充します。これにより後続の GVM デバーチャライゼーション有効化作業が容易になります。

2026年05月27日 (15 PRs)うち Bot 2 件 この日のページ →

#128577 Fix utf8_to_utf16 and utf16_to_utf8 for s390x

@saitama951・GitHub・area-PAL-coreclrcommunity-contribution

s390x(big-endian)プラットフォームにおいて、UTF-8↔UTF-16変換関数(utf8_to_utf16、utf16_to_utf8)がMINIPAL_TREAT_AS_LITTLE_ENDIANフラグ設定時に誤った文字列を返す問題を修正しています。エンディアンの扱いに関する実装ロジックを改善することで、big-endianアーキテクチャでの正確な変換を実現します。

#128528 Rework AsyncHelpers await helpers for correctness and efficiency

@jakobbotsch・GitHub・area-System.Threading.Tasksruntime-async

このPRは、ランタイム非同期await ヘルパーの動作正確性と効率を改善し、複数の継続がタスクに登録されている場合のasync1との動作差異を解決します。RuntimeAsyncTaskの代わりにRuntimeAsyncTaskContinuation(以前のTaskContinuation)を継続オブジェクトとして使用し、JITインライン化を有効化(テール await時)し、キャッシュされた継続により継続割り当てを削減します。

#128355 Enable trim and AOT analyzers for selected library tests

@Copilot・GitHub・area-Infrastructure-libraries

複数のライブラリテストプロジェクトでTrim/AOT アナライザーを有効化し、プロジェクトレベルの一括無効化を削除した上で、リフレクションと動的コード使用箇所に対してターゲット化された修正と注釈を適用する変更。アナライザーフレンドリーなAPIの使用(Enum.GetValues<TEnum>()、DiagnosticMethodInfoなど)に置き換えることで、警告を最小化している。

#128105 [Diagnostics] Add InProc CrashReport Logging

@mdh1418・GitHub・area-Diagnostics-coreclros-androidos-ios

CoreCLRのインプロセスクラッシュレポート機能にコンパクトなテキスト形式の出力を追加します。既存のJSON形式のレポートファイル出力は保持しながら、モバイルプラットフォーム向けにシグナルセーフなコンパクト形式をサポートします。Android環境ではlogcatのDOTNET_CRASHタグで出力され、iOS環境では標準エラー出力経由で出力されます。

#127958 Add LOCKREADIFFAILRET to unlocked MDInternalRW read methods

@kevingosse・GitHub・area-Diagnostics-coreclrcommunity-contribution

メタデータテーブルの再割り当て時に発生するポインタ無効化による競合状態を修正します。ExpandTables()がメタデータテーブルのバッキングバッファを再割り当てする際、GetMethodRecord/GetFieldRecord/GetMemberRefRecordが返すポインタが無効になる問題がありました。プロファイラのemit操作(DefineMemberRefなど)がLOCKWRITE下でExpandTablesをトリガーする際、use-after-free読み込みが発生し、MissingMethodExceptionやセグメンテーション違反が散発的に発生していました。

GetSigOfMethodDef、GetSigOfFieldDef、GetNameAndSigOfMemberRef、GetSigFromTokenにLOCKREADIFFAILRET()を追加してこれを修正します。

2026年05月26日 (24 PRs)うち Bot 5 件 この日のページ →

#128573 JIT: Defer fgSetOptions until after 2nd-pass EH removal

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JITコンパイラのパイプライン順序を調整し、fgSetOptions()(fully-interruptible GCやフレームポインタ要件などのコード生成選択をコミットする)を、空のEH領域削除の第2パスが完了した後に実行するように変更しました。これにより、不要なEH領域が削除されてからコード生成オプションが最終決定されるようになります。

#128572 [cDAC] Implement IsExceptionObject for cDAC

@barosiak・GitHub・area-Diagnostics-cdac

cDAC(managed Debugger Access Component)のIDacDbiInterface.IsExceptionObjectメソッドを実装します。対象プロセスのグローバルExceptionMethodTableを読み取り、IRuntimeTypeSystemとIObjectコントラクトを使用してオブジェクトのMethodTable階層を走査し、例外型かどうかを判定します。DEBUG構成では従来のDAC実装との検証も含まれます。

#128571 [cDAC] Fix ARM32 thumb-bit bug in GetFuncletStartAddress

@max-charlamb・GitHub・area-Diagnostics-cdac

ARM32プラットフォームにおいて、GetFuncletStartAddressがThumbビットを正しく処理していなかった問題を修正します。#128154以降、GetStartAddressはThumbビットを削除してタグ付けされていますが、GetFuncletStartAddressがこれに対応していなかったため、ARM32上のすべてのR2Rメソッドが不正にFuncletと判定されていました。

#128563 Validate Process.WaitForExit(int) milliseconds parameter

@Copilot・GitHub・area-System.Diagnostics.Process

Process.WaitForExit(int milliseconds) のパラメータ検証が不足していた問題を修正しました。Windows では不正な値が WaitHandle.WaitOne に伝播して誤った ParamName の ArgumentOutOfRangeException が発生し、Unix では負の値(例:-2)が暗黙的に WaitForExit(0) として動作していました。ArgumentOutOfRangeException.ThrowIfLessThan(milliseconds, Timeout.Infinite) を追加することで、全プラットフォーム間で一貫した検証動作を実現します。

// すべてのプラットフォームで ArgumentOutOfRangeException をスロー
process.WaitForExit(-2);  // throws
process.WaitForExit(-1);  // OK (Timeout.Infinite)
process.WaitForExit(0);   // OK (poll)

#128559 JIT: Tail merge async suspensions

@jakobbotsch・GitHub・area-CodeGen-coreclrruntime-async

async メソッドの JIT コンパイル時に、複数の先行ブロックが同じ非同期呼び出しで終了して join する場合、サスペンション/レジューメ状態を tail merge(統合)する最適化を追加します。これにより、重複するサスペンションコードを削除し、コードサイズを削減します。

#128532 JIT: generalize cloning conditions slightly

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JITコンパイラのループクローニング機能を一般化し、ループ解析の適用範囲を拡大します。主な改善は:

  1. ループ増分命令の検出をより柔軟に(テスト直前に限定しない)
  2. ゼロトリップガード条件を動的に生成し、実行保証がない場合でもループクローニングを適用可能に

#128522 Make O1K_LCLVAR local assertprop only

@EgorBo・GitHub・area-CodeGen-coreclr

JIT コンパイラのアサーション伝播(Assertion Propagation)ロジックを改善し、O1K_LCLVAR をローカルアサーション伝播専用に制限し、グローバルアサーション伝播では VN ベースのオペランド(O1K_VN など)を使用するようにしました。これにより SpanHelpers.SequenceEqual などの定数フォールディングが より積極的に適用され、一部のコードパターンでループアンローリングが改善されます。

#128521 Help ensure we get the smallest encoding for commutative instructions

@tannergooding・GitHub・area-CodeGen-coreclr

VEX 2バイトエンコーディングにおける制約を活用して、可換命令のオペランドを動的に入れ替え、より小さいエンコーディングを優先的に生成する最適化を実装しました。VEX 2バイトエンコーディングではREX.Rはオンオフ可能ですがREX.Bはオフである必要があるため、op1は拡張レジスタ[XMM0, XMM15]をエンコード可能ですがop2は[XMM0, XMM7]のみに制限されます。可換命令でこのシナリオに該当する場合、オペランドを入れ替えることで2バイトエンコーディングを実現します。

// 最適化により以下のように変換
// Before: vpand xmm3, xmm3, xmm8  (size=5, 3バイト VEX)
// After:  vpand xmm3, xmm8, xmm3  (size=4, 2バイト VEX)

#128428 Pass null to setBoundaries if the il to native map is empty

@BrzVlad・GitHub・area-CodeGen-Interpreter-coreclr

CoreCLR インタープリタのデバッグ情報ハンドオフにおいて、IL-to-native オフセットマップが空の場合に null ポインタを ICorJitInfo::setBoundaries に渡すように修正しました。事前割り当てされたバッファを常に使用するのではなく、マップエントリが生成されない場合は null を渡すことで、ランタイムのアサーション (iOffsetMapping == 0) == (pOffsetMapping == 0) の失敗を解決します。

単純なメソッド(例:コンストラクタ呼び出しと即座の return)でマップが空になる場合があります。

#128382 [Wasm RyuJit] emit virtual IP ranges in the unwind info

@AndyAyersMS・GitHub・arch-wasmarea-CodeGen-coreclr

WebAssembly RyuJIT コンパイラのアンワインド情報(unwind info)を拡張し、各funcletのVirtual IP(VIP)範囲を記録するようにしました。従来はフレームサイズのみを記録していましたが、各funcletの開始VIPと終了VIPを追跡し、ULEB128エンコーディングで { frameSize, startVirtualIP, (endVirtualIP - startVirtualIP) } として出力します。

#128328 Tighten LimitArrayPoolWriteStream cleanup contract and diagnostics

@Copilot・GitHub・area-System.Net.Http

LimitArrayPoolWriteStreamの破棄契約を厳密化し、ユーザーコードがバッファリングストリームを破棄した場合にInvalidOperationExceptionをスローするように変更。フレームワーク側のクリーンアップは新しいinternalメソッドReturnAllPooledBuffers()で一元管理し、ArrayPool.Sharedへの誤アクセスを防止する。

#127976 Fix agent file naming: use .agent.md suffix

@lewing・GitHub・area-Meta

Copilot CLI/VS Code/Claude Codeで正しく検出されるよう、.github/agents/配下の2つのカスタムエージェントファイルに.agent.mdサフィックスを追加するファイル名変更です。Copilot CLIはエージェントディレクトリ内の.agent.mdファイルのみを自動検出するため、サフィックスが欠落していた2つのファイルは読み込まれていませんでした。この変更により、@extensions-reviewerと@system-net-reviewへの@-mentions参照が正常に機能します。

2026年05月25日 (10 PRs)うち Bot 1 件 この日のページ →

#128548 [clrinterp] Remove wrong assertion

@BrzVlad・GitHub・area-CodeGen-Interpreter-coreclr

CoreCLRインタープリタコンパイラの非同期サスペンドデータ修正ロジックにおいて、非同期呼び出しの戻り値が後でグローバル変数に昇格される可能性を考慮し、不正なアサーションを削除しました。PR #128403で誤って追加されたアサーションを修正します。

#128537 Fix invalid IL test

@jakobbotsch・GitHub・area-CodeGen-coreclr

JIT Methodical テスト (refany/lcs.il) が無効なILを出力していた問題を修正します。テスト内で整数値(ceqの結果)とオブジェクト参照(System.Type)を誤って比較していたため、JIT内部で無効なIRが生成されていました。

修正により、GetTypeFromHandleの結果ペアを先に比較してから次のペアを比較する正しい評価順序に改めます。

#128526 [cDAC] Remove irrelevant method table test and update relevant one

@rcj1・GitHub・area-Diagnostics-coreclr

cDAC(Compact Data Access Component)のメソッドテーブルユニットテストから、無効な状態を構築していたテストケースを削除し、有効なテストケースを修正するものです。グローバルシングルトンのContinuation EEClassがnullまたはゼロである状態で非メタデータContinuation MethodTableを検証しようとするテストは、矛盾した無効なMethodTableを構築するため、削除またはシングルtonEEClassを追加して修正されました。

#128518 [cDAC] Restore Frame-walk fallback in Thread.GetContext

@Copilot・GitHub・area-Diagnostics-cdac

cDAC(Compact Data Access Component)の Thread.GetContext メソッドに Frame-walk フォールバック機能を復元しました。データターゲットが GetThreadContext を実装していない場合、スレッドの Frame チェーンをウォークしてスレッドコンテキストを導出します。これは以前削除されたネイティブ側の実装と同等の処理を cDAC に取り込むものです。

#128325 Fix GCHandle leak in OSX SafeDeleteSslContext

@liveans・GitHub・area-System.Net.Security

macOS SecureTransport PALにおいて、SafeDeleteSslContext.SslSetConnectionで割り当てられたGCHandleがリークしていた問題を修正します。GCHandleの所有権をSafeSslHandleに移行し、ネイティブSSLContextが完全に解放されるReleaseHandle()内でのみ解放することで、ライフタイムを正しく管理します。

#127762 Make Async Profiler tests compatible with single threaded runtime.

@lateralusX・GitHub・area-System.Threading

非同期プロファイラーテストのシングルスレッドランタイム(WASM等)への対応を実施しました。テストをマルチスレッド対応不要なテストと必須なテストに分割し、タスクIDとマーカーフレームのマッピングを使用した堅牢性向上、Native AOTの失敗修正、メタデータイベントからwrapper IPを削除(rundownイベントでの構築に変更)を行いました。結果として、CoreCLRとNativeAOTで全テスト実行可能、CoreCLR WASM シングルスレッド構成で48個中38個のテストが実行可能になりました。

2026年05月24日 (2 PRs) この日のページ →

#128527 Update public-signing.md with NGEN details

@KirillOsenkov・GitHub・area-Meta

.NET Frameworkにおけるアセンブリの遅延署名(delay-signed)とパブリック署名(public-signed)に関するNGEN(Native Image Generator)の動作の違いを明確化するドキュメント更新です。NGEN がこれらのアセンブリをどのように処理するかについての既知問題を追加しています。

#127889 JIT: Avoid TLS access when restoring async contexts

@jakobbotsch・GitHub・area-CodeGen-coreclrruntime-async

非同期関数の終了時にスレッドローカルストレージ(TLS)アクセスを回避するため、非同期コンテキストの復元パスでキャプチャされたThreadオブジェクトをローカル変数として使用するよう変更しました。JITと言語ランタイムの非同期ヘルパー呼び出し機構を拡張し、同期復元時のTLSアクセスを排除することで、将来的なスレッドアクセスの最適化を可能にします。

2026年05月23日 (6 PRs)うち Bot 1 件 この日のページ →

#128503 [cDAC] Implement CheckContext for cDAC

@barosiak・GitHub・area-Diagnostics-cdac

cDAC(Compact Data Access Components)の管理側実装にCheckContext機能を実装し、スタックポインタの範囲検証をサポートします。同時にネイティブDAC側からDbgSkipStackCheck設定による検証スキップ機能を削除し、セキュリティと一貫性を向上させます。

#128500 JIT: fold isinst using reaching VNs and compareTypesForCast

@EgorBo・GitHub・area-CodeGen-coreclr

JITの全局アサーション伝播機能を強化し、PHIノードと値番号(VN)を活用して、常にtrueになるisinst/chkcastキャストをコンパイル時に折り畳むことを可能にしました。複数の分岐で異なる型のオブジェクトを生成していても、すべてが共通の基底クラスを継承している場合、冗長なキャストチェックを削除します。

サンプルコード:

static void Test(int len)
{
    object bc;
    if (len > 100)
        bc = new DerivedClass1();
    else
        bc = new DerivedClass2();
    
    if (bc is BaseClass) // コンパイル後は常にtrueとして最適化される
        Console.WriteLine("bc is a BaseClass");
}

#128499 Restore E_NOTIMPL fallback in DacDbiInterfaceImpl::GetContext

@tommcdon・GitHub・area-Diagnostics-coreclr

マネージドデバッグのスタックウォーク機能が非Windows platforms で正常に動作するよう、DacDbiInterfaceImpl::GetContext に E_NOTIMPL フォールバック機能を復元しました。ICorDebugDataTarget::GetThreadContext が E_NOTIMPL を返すプラットフォームで、Thread の Frame chain をウォークして REGDISPLAY から レジスタコンテキストを再構築します。

このフォールバックは以前の変更で削除されており、今回の修正によって復元されます。

#128496 Fix async stack walk crash for continuations with null DiagnosticIP

@tommcdon・GitHub・area-Diagnostics-coreclr

CoreCLRデバッガーの非同期スタックウォーク機能において、CordbAsyncStackWalk::PopulateFrame()がnull DiagnosticIPを持つcontinuation(例:#127973で導入されたValueTaskContinuation)に遭遇した際のクラッシュを修正します。DiagnosticIPがnullのcontinuationをスキップするようにすることで、null アドレスに対するGetNativeCodeInfoForAddr呼び出しを回避します。

#128336 JIT: don't stress-tailcall named intrinsics (#122479)

@AndyAyersMS・GitHub・area-System.Threading

STRESS_TAILCALLモードでJIT importerが名前付きintrinsicを明示的なテイルコールとしてマークすることにより、GT_KEEPALIVE等の非CALL IRにインポートされるintrinsicで不正な状態が発生する問題を修正しました。この状態により後続の「GC Polls挿入」フェーズでアサートが発生していました。修正内容は、呼び出し先がCORINFO_FLG_INTRINSICフラグを持つ場合、stress-tailcall昇格をスキップすることです。

2026年05月22日 (22 PRs)うち Bot 2 件 この日のページ →

#128486 Remove redundant #if/#else blocks with identical branches

@Copilot・GitHub・area-Meta

#128464で特定されたパターンに従い、同一の分岐内容を持つ冗長な#if/#elseプリプロセッサブロックを削除するコードクリーンアップです。複数のC++ヘッダーファイルとC#ソースファイル全体で、条件分岐の両側が同じコードを持つ#if/#else/#endif構造を除去しています。

#128485 JIT: Propagate class handle when split tree

@hez2010・GitHub・area-CodeGen-coreclrcommunity-contribution

JIT コンパイラのgtSplitTree関数を改善し、ツリー分割時に生成される一時ローカル変数により正確なクラスハンドルメタデータを伝播させることで、後続のdevirtualization最適化がより正確な型情報を利用できるようにします。結果として、不要な仮想呼び出しが排除され、生成コードサイズが削減されます。

#128475 Disable ExpressionsUnwrapeExternallyThrownRuntimeWrappedException on Wasm CoreCLR

@Copilot・GitHub・area-ExceptionHandling-coreclr

Wasm CoreCLR環境で失敗するExpressionsUnwrapeExternallyThrownRuntimeWrappedExceptionテストをスキップするため、[ActiveIssue]属性を追加しました。PlatformDetection.IsBrowserとPlatformDetection.IsCoreCLRの条件ゲートを使用して、ブラウザ環境のCoreCLR実行時のみテストを無効化します。

[Theory, ClassData(typeof(CompilationTypes))]
[ActiveIssue("https://github.com/mono/mono/issues/14925", TestRuntimes.Mono)]
[ActiveIssue("https://github.com/dotnet/runtime/issues/128164", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsCoreCLR))]
public void ExpressionsUnwrapeExternallyThrownRuntimeWrappedException(bool useInterpreter)

#128462 NativeAOT: allow full-width 0x/0X-prefixed 64-bit hex env config values

@Copilot・GitHub・area-NativeAOT-coreclr

PR #127644で0x/0Xプレフィックスのサポートが追加されましたが、CONFIG_VAL_MAXLENが16のままだったため、0xFFFFFFFFFFFFFFFFのような18文字のフル幅64ビット16進値が拒否されていました。このPRは定数を18に増やし、プレフィックス+16桁の16進数値を受け入れるよう修正します。

// RhConfig.h
#define CONFIG_VAL_MAXLEN 18  // "0x" prefix + 64-bit uint in hex

#128461 Add DependencyKind.DisablePrivateReflectionRequirement to methodreasons and typereasons to fix tests.

@jtschuster・GitHub・linkable-frameworkarea-Tools-ILLink

ILLinkのMarkStepにおいて、Debug builds/testsで DependencyKind.DisablePrivateReflectionRequirement がアサーション失敗の原因となっていた問題を修正します。このDependencyKindを型およびメソッドマーキングの許可リスト(_typeReasons、_methodReasons)に追加し、linkerが DisablePrivateReflectionAttribute をroot化する際にDEBUG検証をスキップさせないようにします。

#128457 [cDAC] Implement IsValidObject for cDAC

@barosiak・GitHub・area-Diagnostics-cdac

cDAC(Compact Diagnostic Access Component)の RuntimeTypeSystem コントラクトを拡張し、DacDbiImpl.IsValidObject メソッドを実装しました。新しいグローバルポインタ ContinuationSingletonEEClass を追加し、MethodTable/EEClass クエリ用の新しいAPI(GetClassPointer、IsCanonicalMethodTable、IsContinuationWithoutMetadata)を IRuntimeTypeSystem コントラクトに追加しています。これにより、デバッガがランタイムオブジェクトの有効性を適切に検証できるようになります。

#128454 Cleanup some of the intrinsic fallback implementations to make it easier to add support for new types

@tannergooding・GitHub・area-System.Runtime.Intrinsics

SIMD内在関数のフォールバック実装をリファクタリングし、スカラー型分類ロジックをScalar<T>に集約化します。Shuffle/ShuffleNative実装を統一し、コード重複を削減し、新しい型(char、Half)やベクトル幅(nint/nuintシャッフルオーバーロード)の追加を容易にします。

#128432 Fix RuntimeMethodHandle cache key for async variants

@Copilot・GitHub・area-NativeAOT-coreclrruntime-async

NativeAOT TypeLoaderのRuntimeMethodHandleキャッシュが、async-variant bitをキーに含めていなかったため、同じメソッドのasync/non-async変種が同じキャッシュエントリにエイリアスされ、誤ったメソッド変種が解決される問題を修正します。async-variant bitをハンドル識別に含めることで、キャッシュの誤りを防ぎます。

// 修正前: asyncフラグがキーに含まれていない
RuntimeMethodHandleKey key = new RuntimeMethodHandleKey(declaringTypeHandle, handle, genericMethodArgs);

// 修正後: asyncフラグがキーの識別に含まれる
RuntimeMethodHandleKey key = new RuntimeMethodHandleKey(declaringTypeHandle, handle, genericMethodArgs, isAsyncVariant);

#128419 Fix for index out of bounds in sve scatter test

@dhartglassMSFT・GitHub・area-CodeGen-coreclr

SVE scatter テストのセットアップロジックで、生成されたインデックス値がoutput bufferの長さを超えることによるIndex Out of Bounds例外を修正するテスト修正です。SveScatterVectorBases.templateのMakeDistinctメソッドにおいて、重複排除時のインデックス調整処理を修正し、インデックス値を常に配列の有効範囲[0, OutElementCount)内に保つようにしました。

#128411 Platform specific docs analyzer

@ericstj・GitHub・area-Infrastructure-libraries

プラットフォーム固有のTFM(例:net11.0-windows)を対象とするライブラリで、コンパイラ生成ドキュメントXMLを使用する場合、XMLドキュメントコメントの配置が一貫していないことを検出・修正するRoslyn アナライザ「PlatformDocAnalyzer」を追加します。このアナライザは、部分的なソースファイルに分割された型のドキュメント配置規約を強制し、プラットフォーム非依存ビルドの規定ドキュメントとの一貫性を検証します。

#128229 [Wasm RyuJIT] Packed Simd Encodings

@adamperlin・GitHub・arch-wasmarea-CodeGen-coreclr

WebAssembly RyuJIT バックエンドの Packed SIMD (v128/0xFD-prefix) 命令セットに対するエミッター レベルのサポートを追加します。SIMD 命令テーブル、新しい命令フォーマット (IF_V128/IF_LANE/IF_MEMARG_LANE) および対応する記述子型を実装し、DEBUG のみのエミッター ユニット テストで新しいエンコーディング パスの動作検証を可能にします。

#128225 [Wasm] Write barriers

@kg・GitHub・arch-wasmarea-VM-coreclr

WebAssemblyターゲットにおいて、メモリ管理の正確性を確保するため、ライトバリア機構を実装しました。JITが期待する呼び出し規約の不一致を修正し、新たにFCDECL2_RAW/FCIMPL2_RAWマクロを導入してWasm用のインラインアセンブリでライトバリア処理を実装しています。

#128058 Change VMPTR IPC events to ensure endianness consistency

@rcj1・GitHub・area-Diagnostics-coreclr

PR #127943による副作用として、VMPTRがIPC層だけでなくDBI/DAC/EE全体で little-endian として伝播されていた問題を修正します。VMPTRを host endianness のラッパーに変更し、IPC層ではPortable<VMPTR>として little-endian をワイヤ上で保持しながら、アクセス時に host endianness に変換する設計に改めます。

#127818 Handle minimal MethodTables in dotnet-pgo trace processing

@DrewScoggins・GitHub・area-TypeSystem-coreclr

dotnet-pgo のトレース処理において、Reflection.Emit や IL スタブキャッシュで使用される "minimal" MethodTables が生成する BulkType ETW イベントを適切に処理できるようにする変更です。これまで無効な TypeDef トークン(rid 0 など)が有効なものとして扱われ、メタデータアクセス時に BadImageFormatException が発生していた問題を修正します。

2026年05月21日 (12 PRs) この日のページ →

#128447 JIT: Disallow CSE of multireg nodes

@jakobbotsch・GitHub・area-CodeGen-coreclr

JIT の Common Subexpression Elimination (CSE) ロジックを修正し、マルチレジスタ値を持つ非SIMD構造体型の式について CSE を禁止します。これらの値は常にスピルされ、正確性のためには既存のストア先を DNER(Do Not Eliminate Register)として扱う必要があるため。

#128403 [clr-interp] Fix handling of continuation return when it is not used by the method

@BrzVlad・GitHub・area-CodeGen-Interpreter-coreclr

CLR インタープリターの非同期メソッド呼び出しで、戻り値が使用されない場合の継続処理の復帰時に、ライブ変数を誤って上書きするバグを修正します。戻り値が未使用の場合、スタックオフセットが他のテンポラリ変数と共有されることがあり、復帰時に継続戻り値を書き込む際に既存のライブ値が破壊される問題を解決します。

#128399 Use cached continuation in Await as well when used with ValueTaskSource

@VSadov・GitHub・area-VM-coreclrruntime-async

ValueTaskSourceベースのValueTaskを待機する際に、キャッシュされた継続(continuation)を再利用することでメモリ割り当てを削減する変更です。#127973の考え方を、thunkではなく実際のAwaitが使用される場合に適用します。実測値として、ベンチマークでGen0 GC回数が15/secから2/secまで削減されました。

#128389 Replace small stackallocs with collection literals

@EgorBo・GitHub・area-Metareduce-unsafe

非常に小さい stackalloc バッファを C# collection expressions([0, 0, 0, 0] など)に置き換え、それらの stackalloc のためだけに必要だった unsafe 修飾子を削除するリファクタリングです。スタックベースのバッファ動作は維持しながら、コード安全性を向上させます。

// 変更前
unsafe void Example()
{
    Span<int> buffer = stackalloc int[4];
}

// 変更後
void Example()
{
    Span<int> buffer = [0, 0, 0, 0];
}

#128369 [R2R] Add discovery of generic virtual methods

@BrzVlad・GitHub・area-ReadyToRun

ReadyToRun(R2R)コンパイラの依存関係分析を拡張し、ジェネリック仮想メソッド(GVM)呼び出しの実装を動的に発見・コンパイルする機能を追加します。GVMDependenciesNodeをNativeAOTから共有ソースに移動し、ReadyToRunでも利用可能にします。型マーカーノード(InheritedVirtualMethodsNode)を導入し、アプリケーションで使用される型に対するGVM実装の解決を行います。

#128162 Add System.Text.Json union support

@eiriktsarpalis・GitHub・area-System.Text.Json

System.Text.JsonにC#の共用体型(union-like shapes)のサポートを追加します。ユニオン型のシリアライゼーション/デシリアライゼーション、カスタム分類器API、ソース生成対応を実装しています。新しいメタデータ、属性、コンバーターインフラストラクチャを導入し、リフレクションとソース生成の両方で対応します。

#127894 Remove the concept of primitive value types and follow-up JIT/TypedReference/arglist cleanup

@Copilot・GitHub・area-VM-coreclr

プリミティブ値型の概念を削除し、JIT/TypedReference/arglistの関連実装をクリーンアップするランタイム内部の大規模リファクタリングです。GetVerifierCorElementTypeを廃止してGetInternalCorElementTypeに統一し、列挙型とプリミティブ型を明確に区別するようにMethodTableのカテゴリフラグを再構成します。TypedReferenceは通常のbyref様値型として扱われ、CEE_ARGLISTはJITで実際のRuntimeArgumentHandle構造体を生成するようになります。

2026年05月20日 (24 PRs) この日のページ →

#128381 [release/8.0-staging] Fix loop hoist memory-dependence tracking

@AndyAyersMS・GitHub・Servicing-approvedarea-CodeGen-coreclr

ループ不変式コード移動(LICM)の際にメモリ依存性の追跡に誤りがあり、ループ不変ではない式が誤ってループ外にホイストされてしまう問題を修正しました。これは無声の不正な機械語コード生成につながる可能性があります。問題は二重ループ構造で、値番号付けは不変だがメモリ依存性がある式が内側ループの下にある場合に発生します。

#128364 Fix MarshalAs IID parameter index parsing

@Copilot・GitHub・area-NativeAOT-coreclr

NativeAOT実行時にCOMインターフェースパラメータのMarshalAsメタデータ内のIidParameterIndexの解析に失敗し、marshaldescriptorブロブに未読バイトが残ってアサーション例外が発生する問題を修正します。パーサーがIUnknown、IDispatch、Interface型に対するオプショナルなIidParameterIndexペイロードを適切に消費するようにします。

#128342 [release/10.0] Fix heap_segment_used watermark after compaction

@janvorli・GitHub・Servicing-approvedarea-GC-coreclr

GC regions + large pages有効時のメモリ破損バグを修正するバックポート。コンパクション後にheap_segment_usedウォーターマークが古い値のままだと、decommit_regionが不足した範囲しかクリアせず、ダーティメモリが再利用されてヒープ破損/クラッシュが発生する問題に対応しています。

#128274 JIT: Rename fields in indirect call transformer

@jakobbotsch・GitHub・area-CodeGen-coreclr

CoreCLR JITのIndirectCallTransformer実装内部フィールドをリネームするリファクタリングです。主にコンパイラとトランスフォーマー関連のフィールドにm_プリフィックスを付与し、命名規則の一貫性を向上させました。また複数のメンバーをコンストラクタ初期化からクラス内デフォルト初期化に変更しています。

#128271 Remove -Wno-unused-function -Wno-tautological-compare -Wno-unused-value for clrjit projects

@EgorBo・GitHub・area-CodeGen-coreclr

clrjit プロジェクトに対して、コンパイラの警告抑制フラグ (-Wno-unused-function, -Wno-tautological-compare, -Wno-unused-value) を削除し、コードの警告を修正する変更。JIT 関連の複数のファイルで未使用の変数・関数や冗長な比較に対する警告を明示的に対応して、コード品質を向上させることが目的。

#128232 Globally enable linker dead-code elimination on Unix

@Copilot・GitHub・area-Infrastructure

Unix(Linux、macOS、BSD等)プラットフォームにおいて、リンク時のデッドコード排除を全体的に有効化するため、ネイティブビルド設定を更新しました。既に使用されていた -ffunction-sections に加えて -fdata-sections を追加し、リンカフラグ(Apple向けは -Wl,-dead_strip、他のELF形式向けは -Wl,--gc-sections)を Release / Checked / RelWithDebInfo ビルドに設定することで、未参照のコードセクションだけでなくデータセクションも排除できるようにしました。Debug ビルドはシンボル保持とインクリメンタルリンクのため変更を避けています。

#128221 [cDAC] Copy all debuggee project-reference DLLs/PDBs into Helix symbols dir

@max-charlamb・GitHub・area-Diagnostics-coreclr

cDAC(Common Data Access Component)のHelix テスト環境において、debuggeeプロジェクトの参照DLLがシンボル検索パスにコピーされていないため、クロスプラットフォームのWindows dumpでメタデータ読み込みが失敗する問題を修正します。従来は<DebuggeeName>.dllのみをコピーしていましたが、ProjectReferenceから生成されたDLL(例:Trampoline.dll)も対象に含めます。

#128198 Correct keyed-service probing for built-in DI services

@Copilot・GitHub・area-System.ServiceProcess

組み込みDIサービス(IServiceProvider、IServiceScopeFactory、IServiceProviderIsService、IServiceProviderIsKeyedService)のキー付きサービス検査動作を修正しました。これらのサービスはnullキーに対してのみ利用可能と扱われるようになり、キー付き解決(keyed resolution)の実際の動作と一致させました。

#128072 Avoid recursive FileSystemWatcher when not required in PhysicalFilesWatcher

@svick・GitHub・area-Extensions-FileSystem

PhysicalFilesWatcherでFileSystemWatcherのIncludeSubdirectoriesを無条件に有効化していた問題を修正しました。Linuxでは不要な再帰監視がinotify watch descriptorの過剰消費につながるため、実際にサブディレクトリ参照が必要な場合のみ有効化するよう改善します。これにより、systemdから起動されたアプリケーションなど、ルートが/の場合のパフォーマンス低下を防ぎます。

#128068 [Android] Fall back to 'localhost' when *.localhost resolves to only non-loopback addresses

@kotlarmilos・GitHub・area-System.Net

Android(およびiOS/tvOS/MacCatalyst)において、*.localhostサブドメインのDNS解決時にbionic getaddrinfoがループバック以外のアドレス(link-local IPv6やグローバルルーティング可能なIPv6)を返す問題を修正しました。RFC 6761 §6.3に基づき、OSリゾルバーが非ループバックアドレスのみを返す場合に、プレーンなlocalhostへのフォールバック動作を追加実装しました。同期・非同期両方の解決パスで対応しています。

#127929 ci-pipeline-monitor issue filing script

@kg・GitHub・area-skills

CI パイプラインモニタースキルのデータベース内の失敗情報から GitHub Issue やコメントを自動生成するための Python スクリプトを追加します。デフォルトはドライラン mode で動作し、--go フラグを明示的に渡すことで実際の gh コマンドを実行します。ビルド ID ごとにスタンプファイルを生成して重複コメント投稿を防止します。

#127915 JIT: Transform 'SELECT(cond, cns, cns)' to 'cns'

@BoyBaykiller・GitHub・area-CodeGen-coreclrcommunity-contribution

JITコンパイラの条件式最適化を改善し、SELECT(cond, cns, cns)パターン(条件は異なるが真偽両ケースで同じ定数値を返す)を直接その定数値に変換します。これにより、不要な条件分岐と比較演算を削除し、生成されるアセンブリコードを簡潔化します。

例:0.0.Equals(value)のような比較は、条件の結果に関わらず定数を返す場合、その定数に直接置換されます。

#127503 Add configurable VariableNameTransformation to EnvironmentVariables config

@svick・GitHub・area-Extensions-Configuration

環境変数の設定キー変換をカスタマイズできる機能を追加します。デフォルトではアンダースコア2つ(__)をコロン(:)に変換しますが、新たにVariableNameTransformationデリゲートで任意の変換ロジックを指定できるようになります。また、ドット(.)を含むキーを環境変数から設定する場合用にColonAndDotTransformationプリセットが提供されます。

// アンダースコア3つで`.`、2つで`:`に変換
builder.AddEnvironmentVariables("Logging__", 
    EnvironmentVariablesConfigurationSource.ColonAndDotTransformation);

2026年05月19日 (32 PRs) この日のページ →

#128380 Lay out resumption stubs next to async method variants

@jtschuster・GitHub・area-crossgen2-coreclr

ARM32など大規模なコンポジット コンパイルで、async メソッドと resumation stub が離れすぎて reloc のオフセットが収まらなくなる問題を解決します。ReadyToRun (crossgen2) コード レイアウト時に resumation stub を対応する async メソッド直後に配置し、オフセットを小さく保つことで、reloc の失敗を防ぎ、iキャッシュの局所性を向上させます。

#128361 [browser] Skip boot json generation in nested publish

@maraf・GitHub・arch-wasmarea-Build-monoos-browser

WASM Browser SDK MSBuildターゲットにおいて、ネストされた発行(nested publish)時のboot JSON生成をスキップするための修正。ネストされた発行でVFSコンテンツエントリを含まないboot JSONが生成され、その後の外側のビルドでインクリメンタルビルドが誤作動してVFSコンテンツを含まないJSON状態のままになることでDirectoryNotFoundExceptionが発生していた問題を解決。

#128359 Override ProcessOutputLine.ToString() to return Content

@Copilot・GitHub・area-System.Diagnostics.Process

ProcessOutputLine.ToString() が型名を返していた問題を修正し、Content プロパティの内容を返すようにしました。これにより Console.WriteLine(line) などでの出力が期待通りになります。デフォルト初期化されたstruct の場合は string.Empty を返し、null を返さないようにしています。

await foreach (var line in process!.ReadAllLinesAsync())
{
    Console.WriteLine(line); // 型名ではなく実際の出力を表示
}

#128348 [Wasm RyuJit] codegen for callfinally

@AndyAyersMS・GitHub・area-CodeGen-coreclr

WebAssembly RyuJIT コンパイラの finally ブロック呼び出しコード生成を実装しました。これまで未実装だった BBJ_CALLFINALLY ブロックの処理を、finally funclet への間接呼び出しを行う実装に置き換えています。finally が正常系で呼び出される必要がある場合に使用されます。

#128345 [release/10.0] Downgrade dotnet-optimization dependencies to LKG

@hoyosjs・GitHub・Servicing-approvedarea-codeflow

.NET 10.0のリリースブランチにおいて、dotnet-optimizationの依存関係をLKG(Last Known Good)バージョンにダウングレードします。サービシングブランチではoptimizationデータパッケージが生成されないため、意図しない場所へbitが流れていた問題を解決します。ダウングレード対象は.NET 10.0.0で使用されていた安定版です。

#128341 [cDAC]: convert DacDbi GetRcwCachedInterfacePointers to EnumerateRcwCachedInterfacePointers and implement in cDAC

@Copilot・GitHub・area-Diagnostics-cdac

DAC/DBI インターフェースの RCW キャッシュ済みインターフェースポインタ照会 API をコールバック ベースの列挙 API に変換します。GetRcwCachedInterfacePointers(配列を返す)からEnumerateRcwCachedInterfacePointers(コールバック型)に切り替え、cDAC 実装パスを追加します。

#128317 [mono] Fix aot profiler buffer resizing

@BrzVlad・GitHub・area-VM-meta-mono

Mono AOT プロファイラーのバッファリサイズ処理におけるバグを修正。必要なサイズが現在のサイズの2倍を超える場合、1回の倍化では不足するため、必要なサイズに達するまでループでバッファサイズを倍化する処理に変更しました。

#128307 Break apart gtFoldExprConst into a couple functions so its more manageable

@tannergooding・GitHub・area-CodeGen-coreclr

JITコンパイラの定数畳み込み(constant folding)ロジックをリファクタリングし、巨大なgtFoldExprConstメソッドを複数の小さな専門化されたヘルパー関数に分割します。動作は変わらず(32ビットxarchの軽微な修正を除く)、コード可読性の向上とネイティブコンパイラのインライン最適化の改善を目指しています。

#128303 JIT: Canonicalize loop backedges to a single latch block

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JIT ループ正規化処理を拡張し、複数のバックエッジを持つ自然ループに対して単一の「ラッチ」ブロックを作成する機能を追加します。このラッチブロックはループヘッダーへの無条件分岐となり、すべてのバックエッジソースがここを経由するようにリダイレクトされます。これにより、ダウンストリーム最適化が単一の正規バックエッジ形状に依存できるようになります。

#128300 Pre-size intermediate Dictionary in ToFrozenDictionary

@AndrewP-GH・GitHub・area-System.Collectionscommunity-contribution

ToFrozenDictionaryで中間Dictionary<,>を構築する際、ソースコレクションのカウント情報を利用して事前にサイズを設定することで、不要なリサイズと再ハッシュを削減します。これにより、ConcurrentDictionary<,>、SortedDictionary<,>、ImmutableDictionary<,>、ReadOnlyDictionary<,>、配列、List<KVP>などのソースからFrozenDictionaryを構築する際のパフォーマンスが向上します。

#128275 Fix R2R detected layout issues

@davidwrighton・GitHub・area-crossgen2-coreclr

R2R(Ready2Run)生成時のレイアウト問題を2つ修正します。

  1. SupportAlign8のWasm対応: Armチェックをハードコードしていた箇所をSupportsAlign8チェックに変更し、WasmをArmと同じ方法で処理
  2. GCRefMap/ArgIteratorの構築エラー修正: リフレクション呼び出しの戻り値バッファパラメータが16バイトアライメントを正しく尊重していない問題と、Crossgen2のArgIteratorが構造体引数/戻り値のWasmLoweringコード処理を誤りマージしていた問題を解決

#128269 Reduce parallelism for composite crossgen2 for jit64_3 test

@Copilot・GitHub・area-crossgen2-coreclr

win-x86レグでのOOM問題を解決するため、composite mode時のCrossGen2並列度を制御する新しいMSBuildプロパティを追加しました。HugeArray、HugeFieldなどの大規模メソッドがparallel compilationで過度なネイティブメモリを消費していたため、jit64_3テストではcomposite mode時のみparallelismを2に制限することで、ビルド時間への影響を最小限に抑えながら問題を解決しています。

#128244 improve accuracy of SslClientHelloInfo

@wfurt・GitHub・area-System.Net.Security

SslStreamのサーバー側ClientHello処理を改善し、ServerOptionsSelectionCallbackデリゲートがsupported_versions拡張機能を通じて広告されているTLSバージョン(特にTLS 1.3)を正確に受け取れるようにします。これにより、SNI選択時にクライアントがサポートするすべてのプロトコルバージョンが正しく処理されます。

#128241 [cDAC] implement EnumerateInternalFrames and GetCountOfInternalFrames

@Copilot・GitHub・area-Diagnostics-coreclr

デバッガーのスタックウォーク機能をcDAC(Compact DAC)で実装するPRです。レガシーなIPC構造体(DebuggerIPCE_*)を新しいDebugger_*に名前変更・再構成し、Frame::GetStubFrameType()を追加することで、GetCountOfInternalFrames/EnumerateInternalFramesの実装を可能にします。cDAC側にIStackWalkの3つの新メソッド(GetFrames、IsExceptionHandlingHelperInlinedCallFrame、GetDebuggerEvalData)を実装し、テストを伴う形で提供されます。

#128237 Fix R2Rdump for 32bit platforms, and print disassembly for wasm even when we can't load CoreDisTools

@davidwrighton・GitHub・area-R2RDump-coreclr

R2Rdump(Ready2Run形式のダンプツール)を32ビットプラットフォームおよびWebAssembly対応で修正するPRです。32ビット環境でのfixupオフセット識別の不具合を解決し、WebAssembly環境でCoreDisToolsを不要に読み込まないようにします。また、WasmファイルのR2Rシンボル逆アセンブリにおいてシンボリック検索機能を追加します。

#128214 Honor MarshalAs.IidParameterIndex for out object in source-generated COM stubs

@Copilot・GitHub・area-System.Runtime.InteropServices

COM source-generatorが[MarshalAs(UnmanagedType.Interface)] out objectパラメータのIidParameterIndex属性を無視していた問題を修正しました。この変更により、実行時IIDを使用したQueryInterface呼び出しによって、ネイティブ呼び出し側に正しいインターフェースポインタを返すようになります。

[GeneratedComInterface]
[Guid("...")]
partial interface IActivationFactory
{
    void GetActivationFactory(
        in Guid iid,
        [MarshalAs(UnmanagedType.Interface, IidParameterIndex = 0)] out object factory);
}

#128170 Add missing THUMB_BRANCH24 and ARM64_BRANCH26 to Relocation.GetSize

@jtschuster・GitHub・area-ReadyToRun

ARM/ARM64アーキテクチャのR2Rイメージ生成時、Relocation.GetSizeメソッドに2つのリロケーションタイプ(THUMB_BRANCH24とARM64_BRANCH26)の処理が欠落していたため、NotSupportedExceptionが発生していた問題を修正しました。これらのリロケーションタイプはReadValue/WriteValueでは既に対応していましたが、GetSizeに追加することで、PEObjectWriterがリロケーション解決時に正しいサイズを報告できるようになります。

#128149 Match jit behavior when converting float/double to u1/u2

@BrzVlad・GitHub・area-CodeGen-Interpreter-coreclr

CoreCLR インタープリタの float/double から u1(uint8)/u2(uint16)への変換動作を JIT コンパイラの動作と一致させるパッチです。負の値の変換時に、これまでは uint32_t を経由して飽和変換(saturation conversion)を行っていましたが、int32_t を経由する署名付き変換に変更することで、正しい値に変換されるようになります。

例: (ushort)-4567.0f は従来は 0 でしたが、修正後は 60969(-4567 の符号なし16ビット表現)に変換されます。

#128067 Fix NegotiateStream stale read buffer on mid-frame read failure

@rzikm・GitHub・area-System.Net.Security

NegotiateStream.ReadAsync で、フレームボディの読み込み失敗時に内部バッファ状態が不整合のままになり、後続の Read 呼び出しが stale(ゼロ埋めされた)バッファ内容を返す不具合を修正。フレームヘッダ読み込み後、ボディ読み込み前に _readBufferCount が割り当てられていたため、ReadAllAsync で例外が発生した場合、後続の呼び出しがバッファ内の 0 を EOF と区別できずに返していた。

#128049 [clr-ios] Skip XSLT API tests on Apple mobile CoreCLR via ConditionalClass

@kotlarmilos・GitHub・area-System.Xml

Apple mobile + CoreCLR環境でXSLT APIテストが失敗する問題を解決するため、[ConditionalClass]属性を使用してテストをスキップする仕組みに変更しました。基底クラスXsltApiTestCaseBase2の静的コンストラクタが読み取り専用のアプリバンドルデータに書き込みを試みることで発生していた問題に対応しています。

#128001 [cDAC] Implement DacDbi APIs TypeHandleToExpandedTypeInfo and GetObjectExpandedTypeInfo

@Copilot・GitHub・area-Diagnostics-cdac

cDAC(Common Diagnostics Access Component)の DacDbi API を拡張し、型ハンドルまたはオブジェクトアドレスから DebuggerIPCE_ExpandedTypeData を生成する TypeHandleToExpandedTypeInfo および GetObjectExpandedTypeInfo を実装します。また、System.Object メソッドテーブルを認識する IRuntimeTypeSystem.IsObject() コントラクトヘルパーを追加し、ELEMENT_TYPE_OBJECT と ELEMENT_TYPE_CLASS を区別できるようにします。

#127838 Arm64: [PAC-RET] Jit Support

@SwapnilGaikwad・GitHub・area-CodeGen-coreclrcommunity-contribution

Arm64プロセッサにおけるPointer Authentication (PAC)のJIT支援を実装するPRです。PAC(Armv8.3+)はReturn-Oriented Programming (ROP)攻撃を軽減するセキュリティ機能で、リターンアドレスを暗号学的に署名することで制御フローを保護します。本実装ではプロローグでpaciaspを使用してリンクレジスタ(LR)を署名し、エピローグでautiaspを使用して認証します。無効な署名はSIGILLで実行を失敗させます。デフォルトでは無効ですが、DOTNET_JitPacEnabled=1で有効化できます。

#127683 Fix NotifyOfCHFFilter notification by advancing stackwalk iterator if in NATIVE_MARKER_FRAME state

@tommcdon・GitHub・area-ExceptionHandling-coreclr

デバッガ通知の回帰バグを修正したPull Requestです。例外処理のPass 1終了後、StackFrameIteratorの状態が古くなっており、NotifyExceptionPassStartedでFuncEvalFrame/DebuggerU2MCatchHandlerFrameの検出が失敗していました。修正では、マネージフレームから明示的フレームへの遷移時に挿入されるNATIVE_MARKER_FRAMEをスキップして次のフレームに進め、NotifyOfCHFFilter通知が正しく発火するようにしました。

#127578 [android] Enable android-arm CoreCLR with softfp ABI handling

@simonrozsival・GitHub・os-androidarea-Infrastructure

Android ARM(armeabi-v7a)のCoreCALRサポートを再有効化し、softfp ABI呼び出し規約に対応させるプルリクエストです。Android ARMはfloating-point引数と戻り値をコアレジスタ/スタック経由で渡す必要があるため、ARM_SOFTFP定義を追加し、NativeAOT/Crossgen2のAndroid ARM32ビルド時にarmel ABI を適用するようにしました。また、Crossgen2とILCompilerのAndroid target引数を一元化し、--targetos:android --targetarch:armから自動的にsoftfp(armel)ABI に正規化される仕組みを実装しました。

#127573 [release/10.0] Redo GC heap size fix in heavily pinning scenarios

@janvorli・GitHub・Servicing-approvedarea-GC-coreclr

.NET 10で導入されたGCヒープサイズ回帰の修正を release/10.0 ブランチに復元するバックポート。重いピンニングシナリオでのリージョンベースGCのパフォーマンス低下を改善しながら、大きなプラグの再配置時にフロントパディングが無限ループを引き起こす問題を修正しています。

#126552 [RyuJit] Remove the single-IG prolog restriction

@SingleAccretion・GitHub・area-CodeGen-coreclrcommunity-contribution

RyuJITコンパイラから単一IG(Instruction Group)制限を削除し、JITコード生成の柔軟性を向上させるPRです。主な変更は:(1) IG番号の順序外比較をIG リストの走査により改善、(2) 単一IG制限の回避のためだけに使用されていた相対ジャンプ(+/- <instr count>でエンコード)を削除します。

#125729 Pass Vector<T> by reference when InstructionSet_VectorT is available

@snickolls-arm・GitHub・area-CodeGen-coreclrcommunity-contributionarm-sve

SVE(Scalable Vector Extension)命令セットが利用可能な場合、Vector<T>を参照渡しで扱うように変更し、128ビットHFA(Homogeneous Float Aggregate)として扱われることを防ぎます。同時にHFA認識ロジックを改善し、固定サイズ型のHFAタイプ判定を集約化した中央関数で一元管理するようにリファクタリングされています。

#123252 Use dispatch helper for calling interface methods

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

インターフェース メソッド ディスパッチの実装を、キャッシュベースのセルから汎用のディスパッチ ヘルパー呼び出しに移行します。NativeAOT環境において、インターフェース ディスパッチ セルを2ポインタ構造(キャッシュされたMethodTable+ターゲットメソッドアドレス)に統一し、メタデータ(インターフェース型とスロット情報)をアウトオブライン化します。初回のディスパッチでは遅延解決ヘルパー(RhpResolveInterfaceMethodFast)が呼ばれ、セル内に結果をキャッシュします。異なるthisでのディスパッチはグローバルハッシュテーブルにキャッシュされます。

2026年05月18日 (29 PRs)うち Bot 3 件 この日のページ →

#128288 [cDAC] Implement DacDbi GetCollectibleTypeStaticAddress

@Copilot・GitHub・area-Diagnostics-cdac

cDAC RuntimeTypeSystemコントラクトを拡張し、GetFieldDescStaticAddressとGetFieldDescThreadStaticAddressにunboxValueTypesパラメータを追加しました。これにより、値型の静的フィールド/スレッド静的フィールドのアドレス計算時に、ボックス化された値をアンボックスするかどうかを呼び出し側で選択できるようになります。この機能を使用して、非レガシーパスでDacDbiImpl.GetCollectibleTypeStaticAddressを実装します。

#128278 Use bundle extraction path for CoreLib fallback in BindToSystem

@elinor-fung・GitHub・area-VM-coreclr

自己完結型単一ファイルアプリ(IncludeAllContentForSelfExtract=trueで公開)のSystem.Private.CoreLib.dllバインディング処理を最適化しました。システムディレクトリでの検索失敗時、TRUSTED_PLATFORM_ASSEMBLIES(TPA)全体をスキャンする代わりに、バンドル抽出ディレクトリを直接参照するよう変更。これにより、スタートアップ時のメモリ割り当てを削減します。

#128270 JIT: don't make local copy when devirtualizing boxed interface call

@AndyAyersMS・GitHub・area-CodeGen-coreclr

ボックス化されたインターフェース呼び出しをデバーチャル化する際、JITが一時的なスタックローカルコピーを作成していた問題を修正します。UnscopedRefなどを介して内部マネージドポインタを返すメソッドの場合、返却されたbyrefが一時コピーにエイリアスされ、フレーム終了後にダングリングポインタになる安全性上の問題がありました。修正後は常にヒープボックスを保持し、ボックス+MTサイズのアドレスでアンボックス化されたエントリを呼び出すよう変更します。オブジェクトのスタック割り当て最適化によって、非エスケープなヒープボックスは既にスタックに昇格されるため、前の最適化は安全なケースで復元されます。

#128250 JIT: Move invariant nodes and LCL_VARs in LiftLIREdges

@jakobbotsch・GitHub・area-CodeGen-coreclrruntime-async

JIT の async state machine lowering において、不変ノード(invariant nodes)と LCL_VAR が async 呼び出しを跨いでリフトされないよう最適化します。これらのノードを使用箇所の直前に移動することで、spill locals の生成を削減し、LCL_ADDR defs がリフトされないことを保証します(#128152 の前提条件)。

#128248 [wasm][coreclr] Put generated callhelpers into libcoreclr_gen_static library

@radekdoulik・GitHub・arch-wasmarea-Infrastructure-coreclr

WebAssembly/coreclrのビルド構成を変更し、生成されたcallhelper実装ファイル(callhelpers-interp-to-managed.cpp、callhelpers-reverse.cpp、callhelpers-pinvoke.cpp)を新しいlibcoreclr_gen_static静的ライブラリに分離しました。これにより、coreclr全体を再構築することなく、libcoreclr_staticと新しく生成されたcallhelperソースのみでの再リンクが可能になります。

#128238 Use GTF_IND_TGT_NOT_HEAP/GTF_IND_TGT_HEAP for GT_STORE_BLK

@EgorBo・GitHub・area-CodeGen-coreclr

JITコンパイラの書き込みバリア除去最適化をGT_STORE_BLKノードに拡張しました。これまでGT_STOREINDのみだった最適化をSTORE_BLKにも適用し、VN/アサーション解析によってブロック書き込み先がGCヒープ上にないことが証明できた場合、GTF_IND_TGT_NOT_HEAPフラグを設定して高速なCpObj/SIMD InitBlkパスを有効化します。

#128222 Add support for generating pointers to funclets, and calling funclets by index

@davidwrighton・GitHub・arch-wasmarea-CodeGen-coreclr

WebAssembly JITコンパイラでfunclet(例外処理などの独立したコード断片)へのポインタ生成とfuncletのインデックス呼び出しをサポートする機能を追加します。リロケーションアディテンド機構を活用してfuncletを親メソッドのシンボルからのオフセットで識別し、WasmObjectWriterでこのアディテンドを処理することで、funcletに順序付きインデックスを割り当てる対応を実現します。

#128190 [ci-scan] Broaden duplicate detection and enforce correct KBE JSON schema

@kotlarmilos・GitHub・area-Infrastructure

CI失敗スキャン機能において、既知のビルドエラー(KBE: Known Build Error)の重複検出ロジックを拡張し、KBE JSONスキーマの厳密化を実施しています。異なるプラットフォームまたはランタイム変種で同一テストクラスに対して報告された既知ビルドエラー、およびKBEラベルを欠いた既存のエリアチーム追跡者を適切に検出できるようにします。

#128188 Centralize MonoAotIncompatible exclusion for mono fullaot variants

@kotlarmilos・GitHub・area-Infrastructure-mono

Mono の --full-aot モードにおいて、MonoAotIncompatible マークされたテストが minifullaot/llvmfullaot ビルドで DLL を読み込む際にプロセスを中止させる問題を修正。MonoAotIncompatible=true なプロジェクトを自動的に除外する規則を src/tests/Directory.Build.targets に一元化し、複数のプロジェクトファイルの重複コードを排除。

#128135 System.Runtime.Loader.Tests: use TargetsAppleMobile for test-assembly references to unblock trimmed simulator/macCatalyst builds

@Copilot・GitHub・area-AssemblyLoader

System.Runtime.Loader.Tests が Apple mobile simulator/macCatalyst の CoreCLR ビルドで失敗していた問題を解決するため、プロジェクト参照の条件を TargetOS == ios/tvos から TargetsAppleMobile に変更しました。これにより、ILLink がアグレッシブなトリミング中に System.Runtime.Loader.Test.Assembly* を正しく解決できるようになります。

<ProjectReference Condition="'$(TargetsAppleMobile)' == 'true'"
                  Include="System.Runtime.Loader.Test.Assembly\System.Runtime.Loader.Test.Assembly.csproj" />

#128039 perf: avoid per-observation array allocation in ObservableInstrument

@unsafePtr・GitHub・area-System.Diagnostics.Metriccommunity-contribution

ObservableCounter<T>、ObservableGauge<T>、ObservableUpDownCounter<T>における単一値コールバック呼び出し時の配列割り当てを排除するパフォーマンス最適化。ObservableInstrument<T>.Observe(MeterListener)がパターンマッチングを使用して組み込み型の_callbackに直接アクセスし、単一値コールバックを配列ラッパーをスキップしてMeterListener.NotifyMeasurementに直接ディスパッチします。

#127973 Cache continuation used for runtime async callable value task thunks

@jakobbotsch・GitHub・area-VM-coreclr

IValueTaskSource でバックされた ValueTask が runtime async callable thunk を通して呼び出されるときのメモリ割り当てを削減します。従来は ValueTask が中断した場合に毎回割り当てが発生していましたが、キャッシュされた ValueTaskContinuation インスタンスを再利用することで、中断時の割り当てを排除します。

#127932 JIT: Decouple "DoNotEnregister" from liveness

@jakobbotsch・GitHub・area-CodeGen-coreclr

JIT のコンパイラにおいて、ローカル変数の "DoNotEnregister" (DNER) フラグの設定をliveness解析から分離し、LSRA(Linear Scan Register Allocation)と lowering フェーズに移行するリファクタリング。これにより、liveness の複数実行時における sticky な DNER の問題を解決し、特に非同期関数における不要な DNER マーク付けを削減します。

#127236 Implement LINQ FullJoin operators

@eiriktsarpalis・GitHub・area-System.Linq

LINQ に FullJoin オペレータを追加する実装です。Enumerable、Queryable、AsyncEnumerable に対応し、承認済みのAPI形状(単一のオプション IEqualityComparer<TKey>? comparer = null パラメータ)を使用しています。Full outer join セマンティクスを .NET の LINQ 表面積でサポートします。

#125024 Implement EqualityComparer<T>.Create with key selector parameters

@weitzhandler・GitHub・area-System.Collectionscommunity-contribution

EqualityComparer<T>に新しいファクトリメソッドCreate<TKey>オーバーロードを追加し、キーセレクタとオプショナルなキーコンパラーを指定して等値比較器を構築できるようにしました。プロパティ値による比較など一般的なシナリオに対応します。

// 使用例
var comparer = EqualityComparer<Person>.Create(p => p.Name);
var comparer2 = EqualityComparer<Person>.Create(p => p.Age, EqualityComparer<int>.Default);

#122056 Fix ILVerify IndexOutOfRangeException for malformed exception handling clause bounds

@Copilot・GitHub・area-Tools-ILVerification

ILVerifyが不正形式の例外処理(EH)句を処理する際に発生していたIndexOutOfRangeExceptionを修正します。診断ツールは例外をスローするのではなく、意味のある検証エラーを報告すべきという原則に基づいています。EH句の境界値が無効な場合、新しいEHClauseOutOfRange検証エラーを報告するようになりました。

#109863 Add option GCTrimYoungestKeepPercent to specifies the percent of youngest gen to keep during trimming

@ashaurtaev・GitHub・area-GC-coreclrcommunity-contribution

GC トリミング時に最若世代(youngest generation)に保持する割合を制御する新しい設定オプション GCTrimYoungestKeepPercent を追加します。メモリフットプリント最適化のための GC レイテンシーレベルと起動時間のバランスを取ることが目的です。

使用例:

DOTNET_GCLatencyLevel=0
DOTNET_GCTrimYoungestKeepPercent=0xF

2026年05月17日 (1 PRs) この日のページ →

#128242 [Wasm/Ryujit] Fix if stack depth; fix pep call ordering

@AndyAyersMS・GitHub・arch-wasmarea-CodeGen-coreclr

WebAssembly RyuJIT バックエンドにおける制御フロー深度の計算と Portable Entry Point (PEP) 呼び出しの引数評価順序を修正します。if/end ブロック生成時に追加される制御フロー深度をカウントするヘルパーを導入し、PEP 呼び出しでは PEP を最後の引数として評価してから関数インデックスをロードするよう修正しています。

2026年05月16日 (6 PRs) この日のページ →

#128263 Implement DacDbi cDAC APIs and simplify generic type context APIs

@Copilot・GitHub・area-Diagnostics-cdac

DacDbi APIの4つの実装をマネージドcDACに追加します。GetSimpleType、ResolveAssembly、ResolveExactGenericArgsToken、GetGenericArgTokenIndexをRuntimeTypeSystemコントラクト経由で実装し、ジェネリック型コンテキストAPI処理を簡素化します。各実装は既存の#if DEBUGレガシークロスチェックパターンでゲートされています。

#128230 Delete unused WBF_NoBarrier_CheckNotHeapInDebug and CORINFO_HELP_ASSIGN_REF_ENSURE_NONHEAP

@Copilot・GitHub・area-CodeGen-coreclr

未使用の書き込みバリア形式 WBF_NoBarrier_CheckNotHeapInDebug と対応するJITヘルパー CORINFO_HELP_ASSIGN_REF_ENSURE_NONHEAP を削除する変更です。このヘルパーは gcIsWriteBarrierCandidate によって生成されることがなく、すべてのコンシューマーが到達不可能なデッドコードパスであるため、削除しても機能に影響はありません。

#128187 Move the folding of double not/neg to gtFoldExpr

@tannergooding・GitHub・area-CodeGen-coreclr

JIT コンパイラの式の畳み込み処理をリファクタリングし、二重 NOT/NEG 演算の最適化を fgMorphSmpOp から gtFoldExpr に移動しました。これにより不要なノードの早期削除が可能になり、測定可能なスループット改善が得られます。gtFoldExpr を単項/二項ノード向けのヘルパー関数に分割し、最適化ロジックを一元化しています。

#128165 Unify O2K_CHECKED_BOUND_ADD_CNS and O2K_VN

@EgorBo・GitHub・area-CodeGen-coreclr

JITコンパイラの値番号(Value Numbering)管理において、O2K_CHECKED_BOUND_ADD_CNSとO2K_VN_ADD_CNSの2つの演算子を統合しました。O2K_VN_ADD_CNSは「X+CNS」の形式を、Xの値番号とCNS定数に分解して表現するようにし、アサーション伝播時のホットループ処理を効率化しています。

2026年05月15日 (9 PRs)うち Bot 1 件 この日のページ →

#128215 [cDAC] Reparse pending sub-descriptors on Flush

@max-charlamb・GitHub・area-Diagnostics-cdac

cDAC(Compact Diagnostic Access Component)がランタイム起動時に早期にアタッチされた場合、サブモジュール(特にGC)の契約記述子アドレスがまだnullであるため、初期スキャンで見落とされる問題を修正します。Flush() メソッド時にペンディング中のサブ記述子を再解析し、動的に設定されたサブ記述子を取得できるようにします。

#128172 [Wasm RyuJIT] Fix: Use passed in ig when possible for IF_CODE_SIZE in emitDispIns()

@adamperlin・GitHub・arch-wasmarea-CodeGen-coreclr

Wasm RyuJITにおいて、emitDispIns()が呼び出される際にemitCurIGに依存する代わりに、渡されたパラメータのigを優先して使用するように修正しました。コードジェネレーション完了後にemitDispIns()が呼び出されるシナリオで、emitCurIGが設定されていない可能性があるため、より堅牢な実装に改善しています。

#128107 Make IL Scanner report both variants

@eduardo-vp・GitHub・area-NativeAOT-coreclr

IL Scannerが Runtime async メソッド内で async バリアント(サンク)のみをレポートしていた問題を修正。async バリアントが thunk である場合、JIT は元の task 返却バリアントに切り替える可能性があるため、両バリアントをレポートするよう変更し、JIT がコンパイル時に最適なバリアントを選択できるようにします。

#128066 Fix runtime-async on riscv64 with R2R

@am11・GitHub・area-CodeGen-coreclrcommunity-contributionarch-riscvruntime-async

RISC-V64アーキテクチャでReady2Run (R2R)コンパイルを使用する際に発生していたランタイムエラー(SIGSEGV、NRE)を修正します。AUIPC命令の即値フィールドを置換する処理を、既存の値にOR演算を行う方式から置換方式に変更することで、リロケーション処理を正確に行うようにしました。

#125367 [browser] WebAssembly SDK targets more incremental

@maraf・GitHub・arch-wasmarea-Build-monoos-browser

WebAssembly Browser SDK のビルドターゲットにおける MSBuild インクリメンタルビルド対応を改善しました。ConvertDllsToWebcil と GenerateWasmBootJson タスクを複数のより小さなターゲットに分割し、Inputs/Outputs メカニズムを適用することで、入力に変更がないノーオプリビルド時にこれらの高コストな処理をスキップできるようになりました。

2026年05月14日 (26 PRs)うち Bot 1 件 この日のページ →

#128191 Fix integer overflow in string.IndexOf range validation

@prozolic・GitHub・area-System.Runtimecommunity-contribution

string.IndexOf メソッドの範囲検証ロジックを修正し、整数オーバーフローを防止します。従来の count + startIndex > Length という検証式を count > Length - startIndex に変更することで、startIndex + count が int.MaxValue を超える場合でも正しく ArgumentOutOfRangeException をスローするようにしました。同様の修正を IndexOf(Rune, int, int, StringComparison) にも適用しています。

#128171 Handle Generic Context Arg in runtime implementation of signature key computation

@davidwrighton・GitHub・area-VM-coreclr

R2Rコンパイル済みメソッドがジェネリック インスタンス化引数を使用して呼び出される際、署名キー計算がジェネリック コンテキスト引数を考慮していなかったバグを修正します。HasGenericContextArg()チェックを追加し、署名キーに隠し引数を含めることで、マネージコードからR2Rコード経由での呼び出し時の署名不一致を解決します。

#128167 [Wasm] Instantiate error detection

@kg・GitHub・arch-wasmarea-Host

WebAssembly環境のcorerun.jsにおいて、R2R/Webcilモジュール読み込み時のエラー検出を改善します。__stack_pointerが利用不可の場合に明示的なチェックを追加し、インスタンス化失敗時にwasmパスとエラーメッセージをログ出力するようにしました。リリースビルドのcorerun.jsを使用してR2Rモジュールを読み込もうとした際の失敗モードが改善されます。

#128163 Fix createdump SIGSEGV on Heap dumps with interpreter active

@max-charlamb・GitHub・area-CodeGen-Interpreter-coreclr

Linux上でインタープリタが動作している際のヒープダンプ生成時にcreatedumpがSIGSEGVで異常終了する問題を修正します。Thread::m_pInterpThreadContextフィールドをDAC(Debugger Assist Code)対応ポインタ型に変更し、ターゲットプロセスのアドレスをホストアドレスとして誤読する問題を解決します。

#128160 Include cDAC exception details in HResult mismatch asserts

@max-charlamb・GitHub・area-Diagnostics-coreclr

cDAC と legacy DAC の HRESULT 不一致時の DEBUG アサーション出力を改善するPR です。Debug.ValidateHResult で不一致を検出した際に、HRESULTs の値のみでなく、その原因となった例外の詳細情報(型・メッセージ・スタックトレース)を表示できるようにしました。これにより、デバッグ時の問題の根本原因を容易に特定できます。

#128156 Test harness and assorted changes for R2R testing in Wasm

@davidwrighton・GitHub・area-crossgen2-coreclr

このPRはWebAssemblyターゲットでのReadyToRun (R2R) / Crossgen2テスト実行をサポートするため、テストハーネスとツール群を更新しています。主な目的は、Wasmターゲット特有の出力形式(.wasmファイル)の処理、テスト実行フローの改善、およびNode.js実行環境のデフォルト化です。

テスト実行例:

./build.sh clr+libs -rc debug -c release -os browser
./src/tests/build.sh skipmanaged browser
export CORE_ROOT=/path/to/Core_Root
export RunCrossGen2=1
/path/to/test.sh

#128154 [cDAC] Use NativeCodeVersion entry for GetMethodVarInfo offset

@max-charlamb・GitHub・area-Diagnostics-coreclr

tiered compilation環境で、古いtier層のフレームスタック上に存在する場合にDebugInfo_2.GetMethodVarInfoが誤ったIP-to-codeOffsetオフセット計算を行う不具合を修正します。修正前はMethodDesc.NativeCode(最新コンパイルtier)を基準としていたため、変数位置情報が空リストになっていました。修正後はICodeVersionsコントラクト経由で特定NativeCodeVersionを解決し、legacy DAC動作(ExecutionManager::GetNativeCodeVersion(address).GetNativeCode())と一致させます。

#128137 Exclude badendfinally from Mono MiniFullAOT build to avoid missing AOT module crash

@Copilot・GitHub・area-Infrastructure

Mono MiniFullAOT ビルドにおいて、AOT モジュール badendfinally.dll.so が生成されないまま badendfinally テストがスケジュールされ、aot-only モードでのクラッシュが発生していた問題を修正します。既存の AOT 非互換テストパターンを適用して、Mono minifullaot ビルド時にこのプロジェクトがビルドされないようにします。

#128131 [release/8.0] Merge release/8.0-staging -> release/8.0

@steveisok・GitHub・Servicing-approvedarea-codeflow

release/8.0-stagingからrelease/8.0へのマージにより、CoreCLR(DAC/デバッグ、JIT)、暗号化ライブラリ(OpenSSL CRL キャッシング)、テストインフラストラクチャ、および依存関係のサービシング更新をもたらします。主な改善はデバッグ/DAC診断の高速化、OpenSSL CRLのメモリ内MRUキャッシング、テストツール/インフラの刷新です。

#128123 Resolve generic descriptor method signatures in ILC

@Copilot・GitHub・area-Infrastructurelinkable-framework

NativeAOTのILC(Intermediate Language Compiler)が、XML記述子で指定されたジェネリック型のメソッドシグネチャを解決できなかった問題を修正します。例えば System.Void Method(T) のような型パラメータを参照するシグネチャをILLinkと同様に正しく処理できるようになります。

<type fullname="MyGenericClass`1">
  <method signature="System.Void GenericMethod(T)" />
</type>

#128117 Ensure we don't do duplicate checks for various multi-reg paths

@tannergooding・GitHub・area-CodeGen-coreclr

JITコンパイラのGenTreeヘルパー関数におけるマルチレジスタ処理の最適化。重複するマルチレジスタ分類チェックを削除し、GetRegisterDstCount()を直接的に既知のマルチレジ形状(呼び出し、コピー/リロード、HW組み込み、マルチレジスタローカル)を処理するように リファクタリング。ARM64でのスループット向上を期待できます。

#128106 [cDAC] Add DacDbi API GetVarArgSig

@Copilot・GitHub・area-Diagnostics-cdac

cDACシグネチャ契約を拡張し、vararg cookie(可変長引数クッキー)のデコーディングをサポートする新しいDacDbi APIを追加します。GetVarArgArgsBaseとGetVarArgSignatureメソッドにより、varargシグネチャの引数ベースアドレスと生シグネチャポインタ/長さを取得できるようになります。

#128086 X25519DiffieHellman agreement with byte-based public keys

@vcsjones・GitHub・area-System.Security

X25519DiffieHellman に対して、他方の公開鍵をバイト列として受け取る DeriveRawSecretAgreement メソッドを追加します。これにより、X25519DiffieHellman インスタンスを作成する必要がなくなり、一般的な利用シーンでのメモリ割り当てを削減できます。

// 新しいAPI
public byte[] DeriveRawSecretAgreement(byte[] otherPartyPublicKey);
public int DeriveRawSecretAgreement(ReadOnlySpan<byte> otherPartyPublicKey, Span<byte> destination);

#128020 Work around illink incorrectly trimming static virtual implementations

@Copilot・GitHub・area-System.Runtime.InteropServiceslinkable-framework

illink(IL Trimmer)がstatic virtual実装を誤ってトリミングする問題に対応するPRです。System.Private.CoreLibのトリミングルートを更新し、System.Runtime.InteropServicesにトリミング回帰テストを追加して、Marshal.StructureToPtr / Marshal.DestroyStructureで[MarshalAs(UnmanagedType.ByValArray)] DateTime[]を含む構造体を扱う際のトリミング後の検証失敗を防ぎます。

#127782 Add test for non-async generic methods mismatch in ILC scanner/JIT

@eduardo-vp・GitHub・area-NativeAOT-coreclrruntime-async

ILC(Intermediate Language Compiler)が汎用型上のランタイム非同期メソッドをコンパイルする際にクラッシュする問題(#127179)のテストを追加します。非同期汎用メソッドが非同期汎用メソッドを呼び出す場合、ILCスキャナーが生成した情報とJITの期待値がミスマッチする問題を検証するリグレッションテストです。

#127416 JIT: Fix morph FIELD_ADDR null check reordering for stores

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JITのmorph処理において、GT_FIELD_ADDRの暗黙的なnullチェックを親のstore命令に折り畳む際に、store値のside effectsが不正に再順序化される問題を修正しました。store値にside effectがある場合、base objectが明らかにnull-safeでない限り、nullチェックの折り畳みを拒否するようにしました。これにより、例外やグローバル書き込みなどのside effectが正しい順序で実行されるようになります。

#127333 Add Complex<T> generic struct mirroring Complex API surface

@Copilot・GitHub・area-System.Numerics

Complex<T>汎用構造体を新たに実装し、既存の非ジェネリックComplexの完全なAPI表面をミラーリングします。制約はIFloatingPointIeee754<T>, IMinMaxValue<T>です。ComplexとComplex<T>間の双方向変換、パース・フォーマット、数学関数(三角関数、対数、べき乗など)、汎用数値インターフェース実装を含みます。コード重複を避けるため、Complexの長いメソッドはComplex<double>に委譲します。

Complex<float> z = Complex<float>.FromPolarCoordinates(2.0f, MathF.PI / 4);
float mag = z.GetMagnitude();
Complex<float> w = z * 3.0f + new Complex<float>(1.0f, -1.0f);

// 型間変換が双方向で機能
Complex c = Complex.CreateChecked(new Complex<double>(3, 4));
Complex<float> cf = Complex<float>.CreateChecked(new Complex(3, 4));

2026年05月13日 (35 PRs)うち Bot 10 件 この日のページ →

#128119 [cdac] Move DataType from Abstractions to Contracts

@max-charlamb・GitHub・area-Diagnostics-cdac

cDAC(Common Data Access Component)の型メタデータ処理を再構築するもので、DataType enum を Abstractions から Contracts アセンブリに移動し、Target.GetTypeInfo() の API を DataType ベースから文字列ベースに変更します。これにより、型記述子スキーマを Contracts に集約し、Abstractions は抽象 Target API に専念できるようになります。

変更の要点:

  • Target.GetTypeInfo(DataType) → Target.GetTypeInfo(string typeName) に置き換え
  • DataTypeTargetExtensions.GetTypeInfo(this Target, DataType) 拡張メソッドで互換性を維持
  • Target.FieldInfo.Type フィールドを削除、TypeName (文字列) を唯一の識別子に統一
  • ContractDescriptorTarget の型ストレージを Dictionary<string, Target.TypeInfo> に単一化

#128118 Fix NativeAOT dependent handle secondary access with standalone GC

@jbevain・GitHub・community-contributionarea-NativeAOT-coreclr

NativeAOT環境下で、dependent handle(従属ハンドル)のセカンダリオブジェクトへのアクセスを、CoreCLRのグローバルヘルパー関数からIGCHandleManagerインターフェース経由に変更しました。これにより、standalone GC有効時にハンドルマネージャーの抽象化を一貫して使用できるようになり、ハンドルの所有者がstandalone GCの場合でも正確にセカンダリオブジェクトにアクセスできます。

#128115 Fix doubling of rental for PKCS#8 exports in PQC and X25519

@vcsjones・GitHub・area-System.Security

PKCS#8秘密鍵エクスポート時のバッファリサイズロジックの修正。MLKem、MLDsa、SlhDsa、X25519DiffieHellmanクラスで、CryptoPool.Rentがリクエストサイズより大きなバッファを返した場合に、次の再試行で実際に取得したバッファサイズに基づいてリサイズするように修正。これにより、TryExportPkcs8PrivateKeyCoreに毎回同じサイズのバッファが渡される問題を解決します。

#128103 Port more coreclr holders to the LifetimeHolder<Traits> pattern

@AaronRobinsonMSFT・GitHub・area-VM-coreclr

CoreCLR内部のリソース管理パターンを、レガシーなHolder/Wrapper/SpecializedWrapperから統一されたLifetimeHolder<Traits>パターンへ移行するPR。HModuleHolder、ResetPointerHolder<T>、CoTaskMemHolder<T>、StubHolder<T>、ExceptionHolderの5つのホルダーを新パターンに移植し、対応するコールサイトをそれぞれ更新。例外処理マクロ(EX_RETHROW、GET_EXCEPTIONなど)のセマンティクスも新パターンに統一。

#128073 JIT: Eagerly invalidate GC state for registers trashed by linker relaxation sequences

@jakobbotsch・GitHub・area-CodeGen-coreclr

NativeAOTにおけるTLSアクセスの最適化で、リンカーによる命令の再最適化(リラクゼーション)とJIT GC状態管理の不一致を修正します。JITが遅延的にGC状態を更新する仕様が、リンカーが予定より早くレジスタを上書きする場合に不正な動作を引き起こしていたため、特定の命令パターンでGC状態を先制的に更新するよう改めます。linux-x64とlinux-arm64に対応します。

#128059 Fix ConstructorInfo.GetGenericArguments to return empty array

@steveisok・GitHub・area-System.Reflection

ConstructorInfo.GetGenericArguments()の動作を修正しました。CLRではコンストラクタはジェネリックメソッドではないため、このメソッドは常に空配列を返すべきですが、以前はNotSupportedExceptionをスローしていました。抽象基底クラスConstructorInfoにオーバーライドを追加することで、すべてのサブクラス(CoreCLR、Mono、NativeAOT、MetadataLoadContextなど)に統一的に対応しました。

#128042 Delete ICorDebugProcess11

@Copilot・GitHub・area-Diagnostics-coreclr

未使用であった ICorDebugProcess11 インターフェースとその関連型(ICorDebugMemoryRangeEnum、COR_MEMORY_RANGE)を削除します。このインターフェースの唯一のメソッド EnumerateLoaderHeapMemoryRegions は使用されていなかったため、デバッグAPI表面を簡潔にするための整理です。

#128023 [release/10.0] Port dump collection perf improvements

@hoyosjs・GitHub・Servicing-approvedarea-Diagnostics-coreclr

minidump収集パフォーマンス向上のための3つのDAC改善をrelease/10.0にバックポートします。DACインスタンスキャッシュの実装変更(SHashへの置き換え)、デバッガパッチキャッシュの追加、およびオプトイン環境変数DOTNET_EnableFastHeapDumpsによるHEAP2列挙パスの有効化により、大規模.NETアプリケーション(多数のスレッド・深いスタック)でのダンプ収集時間を大幅に短縮します(測定値:SHash導入で約9.5倍高速化、パッチキャッシュで55s→7s削減)。

#128022 [release/8.0] Port dump collection perf improvements

@hoyosjs・GitHub・Servicing-approvedarea-Diagnostics-coreclr

大規模な.NETアプリケーション(多数のスレッド、深いスタック)のミニダンプ収集パフォーマンスを改善する3つのDAC最適化をbackportします。DacInstanceManagerのハッシュテーブル実装をSHashに置き換え、デバッガパッチのキャッシング機能を追加し、環境変数DOTNET_EnableFastHeapDumpsにより高速ヒープダンプ列挙を有効化します。測定結果として、深いスタック(2.5k フレーム)の50スレッド環境でミニダンプ収集が約9.5倍高速化、ヒープダンプが55秒から約7秒に短縮されました。

#128021 Update Native AOT documentation

@eduardo-vp・GitHub・area-Meta

Native AOT関連のドキュメントを更新し、初心者にとって理解しやすくするための改善を実施しました。メタデータの概要章を新規追加し、既存の設計ドキュメント間のクロスリンク強化、デバッグワークフローの説明拡充などが含まれています。

#127962 Add Bundler.ComputeBundleContents to Microsoft.NET.HostModel

@elinor-fung・GitHub・area-Host

Single-File Bundle機能に対して、実際にバンドルを生成せずにバンドルに含まれるファイルと除外されるファイルを事前計算するための新しい公開API Bundler.ComputeBundleContents() を追加しました。これにより、SDKはビルド段階でバンドル メンバーシップを事前に判定でき、ビルド増分性をサポートできるようになります。

public sealed class BundleContents
{
    public FileSpec Host { get; }
    public IReadOnlyList<FileSpec> IncludedFiles { get; }
    public IReadOnlyList<FileSpec> ExcludedFiles { get; }
}

public class Bundler
{
    public BundleContents ComputeBundleContents(IReadOnlyList<FileSpec> fileSpecs);
    public string GenerateBundle(BundleContents bundleContents);
}

#127843 Fix a series of possible race conditions in thread static variable initialization

@davidwrighton・GitHub・area-VM-coreclr

スレッドローカルスタティック変数初期化時の競合状態を修正するPRです。TLSインデックスメタデータとTLSIndex→MethodTableマップの更新時に、VolatileStoreを使用して発行/可視性保証を強化し、複数スレッドからの並行アクセス時に部分的に発行された状態が観測されないようにします。これはmacOS arm64でのGetThreadLocalStaticBaseクラッシュの問題に対応しています。

#127778 [cDAC] Implement SetDebugState for cDAC

@barosiak・GitHub・area-Diagnostics-cdac

cDAC(Compact Data Access Component)デバッガ機能にSetDebugStateを実装します。デバッガ制御スレッド状態をThreadStateNoConcurrencyから新しいVolatile<DebuggerControlledThreadState>フィールドに分離し、読み取り-修正-書き込みレースを回避しながらThread契約を通じて公開します。

#127757 [clr-interp] Report async-suspension locals to the debugger via GetAsyncLocals

@kotlarmilos・GitHub・area-CodeGen-Interpreter-coreclr

インタープリタで実行される非同期メソッドがawaitで中断された際に、デバッガが局所変数と引数の値を取得できるようにします。従来、JIT経路でのみ対応していた非同期デバッグ情報の報告をインタープリタ経路にも実装し、ICorDebugAsyncFrame::GetArgumentがインタープリタフレームでCORDBG_E_IL_VAR_NOT_AVAILABLEを返す問題を解決します。

#127754 [clr-interp] Skip RSLock leak assert for DbgTransportTarget on Unix

@kotlarmilos・GitHub・area-Diagnostics-coreclr

Unix環境(デスクトップインタプリタ)で静的なDbgTransportTargetインスタンスが破棄される際、mscordbi.dylibに対してDbgDllMain(DLL_PROCESS_DETACH)が呼び出されないため、埋め込まれたRSLockが初期化されたままとなり、デバッグビルドで破棄アサーションが失敗していた問題を修正します。新しいcLockAllowLeak属性を導入し、シャットダウンパスが保証されない静的ライフタイムロックのアサーションをバイパスする仕様に変更します。

#127572 Fix additional issue to support >1024 CPUs

@janvorli・GitHub・area-GC-coreclr

1024を超えるCPUを搭載したUnixシステムにおいて、スレッドアフィニティ設定時の未対応ケースを修正します。前回のPRで見落とされていた箇所を補完し、GCToOSInterface::SetThreadAffinity()で動的割り当てされたCPUセットを使用するように更新します。

#126782 Propagate actual error info when loading a TPA assembly fails with FileNotFoundException

@elinor-fung・GitHub・area-AssemblyLoader

TPA(Trusted Platform Assembly)アセンブリの読み込み失敗時に、実際のエラー情報(ファイルパス、エラーコード、原因)をFileNotFoundException.FusionLogプロパティに格納するよう改善しました。これまでは「ファイルが見つかりません」という汎用メッセージのみで、具体的な失敗原因が不明でした。

改善例:

// 変更後の例
// FusionLog に以下のような詳細情報が追加される:
// "Failed to open file 'C:\path\to\TpaLibLocked.dll'. 
//  The process cannot access the file because it is being used by another process. (0x80070020)"

#126520 [cDAC] Add interpreter support for stack walking and diagnostics

@max-charlamb・GitHub・area-Diagnostics-cdac

cDAC(契約ベースのデータアクセスコンポーネント)にインタープリタ実行サポートを追加し、診断ツールがインタープリタフレームを含むスタックの正確なウォーク、インタープリタプリコードの解決、解釈メソッドのメソッド情報取得、およびレガシーSOS DAC インターフェイス経由でのインタープリタコード公開を可能にします。

#125478 [Android] Fix DNS localhost subdomain resolution with IPv6 on Android

@simonrozsival・GitHub・area-System.Netos-android

AndroidでIPv6を使用したlocalhostサブドメインの名前解決が失敗する問題を修正しました。Androidのデフォルト/etc/hostsが::1をip6-localhostにマップしているため、RFC 6761フォールバック時に"localhost"のIPv6解決に失敗していました。修正により、IPv6解決失敗時に"ip6-localhost"への再試行を追加し、Androidで正常に動作するようになりました。

2026年05月12日 (30 PRs)うち Bot 5 件 この日のページ →

#128069 Fix runtime initialization on linux with cpu hotplug enabled

@BrzVlad・GitHub・area-VM-coreclr

Linux上でCPUホットプラグが有効な場合、ランタイム初期化時にsched_getaffinity用のcpu_set_tメモリ割り当てが失敗する問題を修正しました。現在のCPU数ではなく、システムで許容される最大CPU数に基づいてアフィニティマスクを適切にサイズすることで対応しています。

minipalにminipal_get_cpu_max_possible_count()ヘルパー関数を追加し、/sys/devices/system/cpu/possibleから最大可能CPU数を取得します。

#128052 Make sccache cache task non-fatal

@agocke・GitHub・area-Infrastructure-coreclr

Azure Pipelines の Cache@2 タスクがディスク容量不足でキャッシュアップロード時に失敗する問題を対応します。sccache キャッシュはパフォーマンス最適化のため、失敗時にビルド全体が失敗しないように continueOnError: true を設定して、エラーを警告に変更します。

#128050 Enable sccache for linux-musl-x64 coreclr builds

@agocke・GitHub・area-Infrastructure-coreclr

linux-musl-x64 coreclr buildにおいてsccacheコンパイラキャッシングを有効化するCI設定変更。linux-x64での実績(約9分/leg短縮、ヒット率97.59%)と同等の高速化を目指す。sccacheはmusl/glibc両対応の静的リンク済みバイナリであり、キャッシュキーにosSubgroupを含めることでmusl/glibc間のキャッシュ分離を実現。

#128037 Arm64: Fix loads and stores for stack allocated vectors and masks

@snickolls-arm・GitHub・area-CodeGen-coreclrcommunity-contribution

ARM64でスタックに割り当てられたベクトルとマスクのロード/ストア命令生成時に、アドレッシングがスタックポインタベースの場合に失敗していた問題を修正しました。フレームポインタベースのアドレッシングのみを想定していたアサーションを削除し、コードジェネレーションで適切なレジスタを選択するように改善しました。

#127981 Special case runtime async in ThreadPool.UnsafeQueueUserWorkItem<TState>

@jakobbotsch・GitHub・area-System.Threading

ThreadPool.UnsafeQueueUserWorkItem<TState>に対してruntime asyncの特殊化ケースを追加し、IValueTaskSource.OnCompletedに渡された継続をスレッドプールに転送する際にワークアイテムの追加割り当てを避けるための最適化を実装しました。これによりASP.NET platform-jsonプラットフォームにおいてasync1とruntime asyncの間のRPSギャップを削減します。

#127978 Trim DBI frame data struct

@rcj1・GitHub・area-Diagnostics-coreclr

CoreCLR デバッグスタックウォーク経路から未使用の CHAIN_ENTER_MANAGED チェーン機構と関連フィールドを削除するクリーンアップです。IPC スタックウォークフレームデータから chain ペイロードと quicklyUnwound フィールドを除去し、シムスタックウォークロジックを簡素化しました。

#127969 Fix System.Thread namespace to System.Threading.Thread in Memory-model.md

@Copilot・GitHub・area-System.Threading

docs/design/specs/Memory-model.md内の不正確な名前空間参照を修正するドキュメント修正です。System.Threadの誤記を正しいSystem.Threading.Threadに修正しました。

具体的には以下の3つのAPI参照を修正:

  • System.Thread.VolatileRead → System.Threading.Thread.VolatileRead
  • System.Thread.VolatileWrite → System.Threading.Thread.VolatileWrite
  • System.Thread.MemoryBarrier → System.Threading.Thread.MemoryBarrier

#127885 Add Webcil support to R2RDump

@davidwrighton・GitHub・arch-wasmarea-ReadyToRun

R2RDump ツールに Webcil (WebAssembly-wrapped .NET assemblies) ファイルの読み込みと解析機能を追加します。同時に WebAssembly バイトコード完全ディスアセンブラ (WasmDisassembler) を実装し、メタデータ抽象化を改善して PE ファイルに依存しないセクション読み込みに対応しました。

#127753 [clr-interp] Fix debugger MethodEnter counter and INTOP_DEBUG_METHOD_ENTER assert

@kotlarmilos・GitHub・area-CodeGen-Interpreter-coreclr

CLRインタープリタのデバッガ統合における2つのアサーション失敗を修正しました。DispatchMethodEnterでのコントローラーカウント処理とインタープリタのINTOP_DEBUG_METHOD_ENTER命令の検証を改善し、スレッドアフィニティなMethodEnterコントローラーやデバッガブレークポイント設定時のテスト失敗を解決します。

#127662 [runtime-async] Fix timestamp instrumentation

@rcj1・GitHub・area-Diagnostics-coreclr

runtime-async非同期デバッガーのタイムスタンプ計測を修正し、新たに作成されたcontinuation チェーンが、現在実行中のcontinuationのタイムスタンプを継承せず、中断時に新しいタイムスタンプを取得するようにしました。これにより、async チェーン内のすべてのタイムスタンプが同じになる問題を解決しています。

#127438 [wasm][coreclr] Enable priority1 runtime tests in outerloop

@radekdoulik・GitHub・arch-wasmarea-Infrastructure-coreclr

WebAssemblyのbrowser_wasmプラットフォームにおいて、CoreCLR outerloop CI での Priority1 ランタイムテスト実行を有効化します。マルチスレッド機能を持たないブラウザ環境やインタープリタの制限により失敗するテストを条件付きスキップまたは除外して、テストを安定化させます。

現在の成果:

  • Pri0: 3,998件(3,638合格)
  • Pri1: 14,085件(13,679合格、406スキップ)

#127256 Fixes some theoretical races and retentions in AsyncOperation and ManualResetValueTaskSource

@VSadov・GitHub・area-System.Threading

AsyncOperationとManualResetValueTaskSourceCore<TResult>の完了シグナリングメカニズムを改善し、理論的なレース条件を排除して保持されるオブジェクト参照を削減します。完了検出をセンチネル値ベースに統一し、キャプチャしたコンテキストと状態をより早期にクリアすることで、メモリリークやオブジェクト参照の長期保持を防止します。

#127134 [cDAC] implement GetRuntimeNameByAddress

@rcj1・GitHub・area-Diagnostics-cdac

このPRはcDAC(Component Data Access Contract)を介してIXCLRDataProcess::GetRuntimeNameByAddressを実装し、スタブの種類分類(StubKind)と名前解決機能を追加します。スタブ(CallCountingStub、VSD_DispatchStubなど)にアノテーションを付与し、Precodeスタブの解決にも対応します。

#126904 Enable compilation of async thunks in composite mode

@jtschuster・GitHub・area-crossgen2-coreclr

Composite BuildモードでのReadyToRun(R2R)コンパイル時に、非同期サンク(async thunks)とレジューメーション スタブのコンパイルを有効化します。問題は、Composite Imageの型を参照するMutableModuleトークンを発行していたが、MutableModuleトークンがCoreLib以外を参照することが明示的にブロックされていたこと。解決策として、ExternalReferenceTokenManagerを使用して必要なトークンをMutableModuleに追加し、ILStubとしてサンク(thunk)をコンパイルします。ジェネリック メソッドの署名発出時の問題も修正しており、インスタンス化情報がストリップされた場合に所有型を強制的にエンコードするようになりました。

#126351 Fix resolving of default interface methods in crossgen2

@BrzVlad・GitHub・area-ReadyToRun

crossgen2での静的仮想インターフェイスメソッド呼び出し時に、制約付き型での実装解決に失敗した場合、デフォルトインターフェイスメソッド(DIM)の実装をインターフェイス上で検索するフォールバック処理を追加しました。これにより、Perf_DateTimeCultureInfo.ToStringテストで約25倍の高速化が実現されています。

2026年05月11日 (14 PRs)うち Bot 1 件 この日のページ →

#128048 Limit sccache cache size to 3.5 GB to reduce transfer overhead

@agocke・GitHub・area-Infrastructure

CoreCLR パイプラインの sccache ローカルキャッシュサイズを3.5GBに制限し、ローリングビルド時のキャッシュ復元・保存のオーバーヘッドを削減します。デフォルトの10GB制限では、古いエントリが蓄積して6~7GBまで増加し、キャッシュの転送に約3分のオーバーヘッドが発生していました。LRU削除により、作業セットサイズ(~3GB)に近い状態を維持します。

#127950 Fold more branches via O1K_VN <relop> O2K_VN comparisons

@EgorBo・GitHub・area-CodeGen-coreclr

CoreCLR JIT コンパイラの大域的アサーション伝播と範囲解析を拡張し、両方のオペランドが任意の値番号(VN)である符号付き比較(VN <relop> VN)に対応します。これにより、リレーショナルファクトをチェーン化することで追加的なブランチ折畳みが可能になります。

例えば if (x > 10 && x < 100) の後に if (y > x) がある場合、JIT は y > 11 という推論を行い、その後の return y > 0; を常に真として最適化できます。

#127931 Move the return var out of liveLocalsIntervals

@BrzVlad・GitHub・area-CodeGen-Interpreter-coreclr

非同期呼び出し時の継続状態キャプチャにおいて、戻り値変数がライブローカル変数として継続オブジェクトに保存されていた問題を修正。これにより未初期化データがコピーされ、GCの不整合クラッシュを引き起こしていた。戻り値メタデータを専用に追跡し、再開パスで明示的に復元することで解決。

#127911 Fix ThinSList size and unify EMPTY_BASES definitions

@Copilot・GitHub・area-PAL-coreclr

SListがMSVCにおいて空ベースクラス最適化を受けていないために2ポインタサイズの容量を無駄に消費していた問題を修正。EMPTY_BASES_DECLマクロをminipalに一元化し、CoreCLRとNativeAOT両者で共通利用できるようにしました。これによりSListのメモリフットプリント(特にヘッドのみのリスト)が削減されます。

#127787 [mono] Handle nint/nuint in Crc32 and ArmBase intrinsic dispatch

@kotlarmilos・GitHub・area-Codegen-JIT-mono

Mono AOT コンパイル時に nint/nuint 型のオーバーロードを持つ Crc32 と ArmBase 組み込み関数のディスパッチが失敗する問題を修正します。simd-intrinsics.c の型チェックロジックを改善し、MONO_TYPE_I/U に対応させることで、tvos-arm64 での System.Private.CoreLib.dll AOT プリコンパイルをブロック解除します。

#127636 [cDAC] RuntimeSignatureDecoder and centralized Signature contract (2/5)

@max-charlamb・GitHub・area-Diagnostics-cdac

cDAC(CoreCLR Diagnostic Data Access Contract)の署名デコーディング統一化の第2段階。RuntimeSignatureDecoderを導入し、System.Reflection.Metadata の SignatureDecoder に合わせた API を提供しつつ、CoreCLR 固有の内部署名要素型(ELEMENT_TYPE_INTERNAL / ELEMENT_TYPE_CMOD_INTERNAL)に対応。Signature契約と StackWalk契約(GC参照スキャン)で統一的に署名をデコードするようにリファクタリング。

#127538 Arm64 SVE2: CreateWhileGreaterThan* and CreateWhileReadAfterWrite*

@dhartglassMSFT・GitHub・area-System.Runtime.Intrinsics

Arm64 SVE2命令セットに対応した新しいハードウェア組み込み関数を追加します。CreateWhileGreaterThan*(ベクトルの末尾から始まるマスクビット)とCreateWhileReadAfterWrite*(ポインタ値に基づくマスク生成)の2つのイントリンシクファミリーを実装します。これらは既存のCreateWhileLess*イントリンシクをベースにしており、Linux-arm64でjitstressテストに合格しています。

#127483 [WASM] Add READYTORUN_FIXUP_InjectStringThunks and R2R thunk infrastructure

@davidwrighton・GitHub・area-crossgen2-coreclr

WebAssembly上のReadyToRun (R2R) イメージにおいて、文字列キーによるプリジェネレーテッドコード thunk の検出を可能にする end-to-end インフラストラクチャを追加します。新しいR2R fixup READYTORUN_FIXUP_InjectStringThunks (0x39) により、R2R コンパイル済みコードと WASM インタープリタ間の相互運用性を実現します。

2026年05月10日 (5 PRs) この日のページ →

#128004 Fix flaky AsyncContinuation cDAC dump test on osx-arm64 by using Task.Yield

@max-charlamb・GitHub・area-Diagnostics-coreclr

osx-arm64プラットフォームの高速マシン上で、非同期継続のcDAC(Compact Data Access Component)ダンプテストが不安定に失敗する問題を修正します。Task.Delay(1)をawait時に使用していたため、タイマーが継続チェック前に発火してしまい、AsyncDispatcherInfo型がロードされないまま進行していました。Task.Yield()に変更することで、マシン速度に関わらず確実に非同期サスペンションを保証します。

#127999 Fix CS9361 stackalloc unsafe context in X25519DiffieHellmanCng

@Copilot・GitHub・area-System.Security

新しいRoslyn 5.7.0で導入されたコンパイラエラーCS9361に対応するため、X25519DiffieHellmanCng.DeriveRawSecretAgreementCoreメソッドのstackalloc式を修正しました。アセンブリ全体に[SkipLocalsInit]が設定されている環境では、初期化されていないstackallocはunsafeコンテキストが必須となります。メソッド全体をunsafeにするのではなく、stackallocの割り当てだけを最小限のunsafeブロックでラップし、scoped修飾子で参照安全性を保持します。

scoped Span<byte> publicKeyBuffer;
unsafe
{
    publicKeyBuffer = stackalloc byte[PublicKeySizeInBytes * 2];
}

#127615 JIT: Fix GenTree::IsPow2 functions

@BoyBaykiller・GitHub・area-CodeGen-coreclrcommunity-contribution

JITコンパイラのGenTree::IsPow2関連関数における符号拡張の問題を修正しました。IsIntegralConstUnsignedPow2が符号拡張された値を渡していたため、実際には符号なし整数として機能していませんでした(例:1 << 31がpow2として認識されない)。新たにUnsignedIntegralValueメソッドを追加してゼロ拡張リテラルを提供し、複数の関数で使用することで修正しました。

2026年05月09日 (9 PRs) この日のページ →

#127979 Fix EncodeUnsignedInteger for test DSA signer

@vcsjones・GitHub・area-System.Securitytest-bug

X509 CRLビルダーのDSA署名テストにおいて、手書きのASN.1エンコーディングを廃止し、フレームワークの標準APIを使用するよう改善したPRです。EncodeUnsignedIntegerのバグ(先頭ゼロと高ビットが設定されたバイトがある場合のエンコーディング不正)を修正し、代わりにAsnWriterとDSASignatureFormat.Rfc3279DerSequenceを活用することで、Android環境でのテスト失敗率(~0.46%)を排除します。

#127974 [release/10.0] Optimize Directory.GetFiles by passing safe patterns to NtQueryDirectoryFile

@jeffhandley・GitHub・Servicing-approvedarea-System.IO

Directory.GetFilesなどのディレクトリ列挙API(Windows版)を最適化し、ワイルドカードパターンをNtQueryDirectoryFileに直接渡すことで、マネージド側でのフィルタリング処理を削減します。大規模ディレクトリで選別的なパターンマッチを行う場合、例えば140,000ファイルから"A14881*.jpg"に該当する4ファイルを検索する際、従来は全ファイル列挙が必要でしたが、この変更により4~10エントリのみの処理に削減されます。

#127972 Cleanup VisitOperandUses and GenTreeVisitor to check common kinds rather than be a big switch

@tannergooding・GitHub・area-CodeGen-coreclr

JITコンパイラのVisitOperandUsesとGenTreeVisitorをリファクタリングし、大規模なswitch文をオペランドの種類(リーフ/単項/二項/特殊)の高速チェックに置き換えました。これによりGT_LZCNTなど以前処理されていなかったノードの処理漏れが解決され、新しいノード種が導入される際の堅牢性が向上します。

#127924 Implement X25519DiffieHellmanCng

@vcsjones・GitHub・area-System.Security

Windows環境でCNG(Cryptography Next Generation)キープロバイダと相互運用するためのX25519DiffieHellmanCng実装を追加します。Curve25519/CNG blob処理の共有ロジックをX25519WindowsHelpersとして抽出し、コード重複を削減しながらCNGベースの楕円曲線暗号操作を実現します。

#127886 perf: reuse counter snapshot buffer in CounterGroup.OnTimer

@unsafePtr・GitHub・area-System.Diagnostics.Tracingcommunity-contribution

CounterGroup.OnTimerメソッドでの毎回のポーリング時に新規割り当てされていたDiagnosticCounter[]スナップショットバッファの再利用を実装しました。カウンターセットはEventSource構築時に固定されることが多いため、インスタンス毎のバッファを再利用し、必要に応じて動的に拡張し、破棄されたカウンターのスロットをクリアします。

#127684 JIT: remove MorphAddrContext

@EgorBo・GitHub・area-CodeGen-coreclr

JIT morphing処理のMorphAddrContextスレッドスルーハックを削除し、未morphification状態のアドレスツリーに対するfgMarkAddrModeForFieldAddrプリウォークで置き換えました。新たにGTF_FLD_TGT_NONFAULTINGフラグを導入し、null-check省略判定を明示的に処理することでコード生成の意図を一層明確にします。

#127319 Support typeof(T).Assembly.GetType(string) in ILLink dataflow analysis

@MichalStrehovsky・GitHub・linkable-frameworkarea-Tools-ILLink

ILLink trimmerおよびNativeAOT compiler、Roslyn analyzerにtypeof(T).Assembly.GetType(string)パターンの理解を追加しました。このパターンを解析することで、対象型を解決でき、偽の警告を回避できます。特にライブラリテストで一般的なパターンです。

新たにAssemblyValueを導入し、Type.AssemblyとAssembly.GetType(...)を内部関数として扱い、型の具体的な解決が可能になります。

2026年05月08日 (15 PRs)うち Bot 1 件 この日のページ →

#127968 [cDAC] fix bug in DacDbi GetTypeHandle

@rcj1・GitHub・area-Diagnostics-cdac

cDAC DBI実装のGetTypeHandleメソッドのバグを修正します。TypeDef/TypeRefの検索がロードされた型に解決されない場合、従来はnull/ゼロのハンドルで成功を返していましたが、今後はCORDBG_E_CLASS_NOT_LOADEDエラーを返すようネイティブDAC動作に合わせました。

#127961 [ci-failure-scan] Tighten KBE filing rules and PR-search coverage

@kotlarmilos・GitHub・area-Infrastructure

CI失敗検知ワークフローのプロンプトを改善し、既知ビルドエラー(KBE)の誤検出や不正なJSON形式を削減することを目的とします。6段階の事前確認フロー、厳密なKBE本体チェック、そしてシグネチャ検証ルールを導入し、過去の実行で見られた以下の問題に対処します:

  • 汎用的なErrorMessageがテストの[PASS]/[SKIP]行と誤マッチする
  • 不正なJSON形式や複数スケルトン定義
  • JSON ブロックなしで Known Build Error ラベル付けされたIssue
  • 不適切なPR検索スコープによる誤ったミューティング
  • 異なるアーキテクチャ/シグネチャに対する間違ったKBEリンク

#127959 JIT: fix value-probing schema index collision with handle histogram

@EgorBo・GitHub・area-CodeGen-coreclr

JIT PGO (Profile-Guided Optimization) インストルメンテーションで、ハンドルヒストグラム検査と値検査が同じ BasicBlock::bbHistogramSchemaIndex フィールドに書き込みを行い、スキーマインデックスの競合が生じていた問題を修正しました。仮想呼び出しと SpanHelpers 特殊な組み込み(Memmove、SequenceEqual など)が同じ基本ブロックに存在する場合、ハンドルヒストグラム計測が誤ったスキーマエントリを読み込み、DEBUG ビルドではアサーション失敗、リテールビルドでは不正な IR(nullptr 子ノードを持つ)が生成されていました。

#127947 Revert "[clr-ios] Propagate XSLT ActiveIssue from base to derived test classes"

@kotlarmilos・GitHub・area-Infrastructure-coreclros-ios

PR #127788で導入されたXSLT APIテストスイートのiOS/CoreCLR向け[ActiveIssue]アノテーションの分散配置を元に戻す変更です。複数の派生テストクラスに分散していた個別のアノテーションを削除し、共有基底クラスXsltApiTestCaseBase2に一元化します。これにより、テストコードの保守性を向上させます。

#127946 Migrate Copilot PAT pool to shared workflow import

@jeffhandley・GitHub・area-skills

GitHub Agentic Workflows(agentic-workflows)における Copilot PAT(Personal Access Token)の認証管理を、ワークフロー別のインライン実装から共有ワークフローインポート(pat_pool.md)へ移行しました。gh-aw v0.71.5で修正されたバグ(engine.env式で参照されるジョブがneeds:に組み込まれずCOPILOT_PAT_0が常に選択される問題)に対応し、PAT プール健全性監視ワークフロー(validate-pat-pool.yml)も追加しました。

#127943 Making IPC events platform neutral

@rcj1・GitHub・area-Diagnostics-coreclr

CoreCLR debugger IPC event構造体をプラットフォーム中立的にするためのリファクタリングです。ポインタ型フィールド(VMPTR、LsPtr)を64ビットに拡張し、多くのIPC event フィールドを Portable<> ラッパーでエンディアン独立性を確保します。同時に、未使用のレガシーIPC event型およびデバッガインターフェースメソッド(ログスイッチ更新、GCハンドル情報、SQLファイバー接続通知など)を削除します。

#127933 JIT: Fix SELECT to relop changing type and check cond evaluates to 0 or 1

@BoyBaykiller・GitHub・area-CodeGen-coreclrcommunity-contribution

JIT コンパイラの SELECT から relop への変換時に、型変更と条件式の評価値(0または1)のチェックに関する問題を修正しました。条件式が整数型の場合、戻り値の型(長整数など)に合わせるため CAST を挿入し、条件式が比較演算の結果でない場合は最適化を適用しないようになります。

#127482 Add hw intrinsics pipeline for linux_arm64

@dhartglassMSFT・GitHub・area-System.Runtime.Intrinsics

Linux ARM64環境でのハードウェアイントリンシック機能のテストパイプラインを追加します。既存のOSX ARM64パイプラインはSVE(Scalable Vector Extension)をカバーしていないため、新たにLinux ARM64専用のパイプラインを導入。このパイプラインはARM64 JITソースファイルの変更時のみトリガーされ、プレミアムなマシンプール資源の効率的な利用を実現します。

#127460 Update devcontainer Dockerfile

@Copilot・GitHub・area-Meta

devcontainerのDockerfileを更新し、ハードコードされたapt-get installリストの代わりに、ビルド時にリポジトリのeng/common/native/install-dependencies.shスクリプトをダウンロード・実行して必須パッケージをインストールするよう変更しました。これにより、新しいcodespaceでのランタイムビルドが可能になります。

#126951 Update and create documentation in build.cmd and build.sh for CoreCLR test builds

@Copilot・GitHub・area-Infrastructure-coreclr

CoreCLRテストビルドスクリプト(build.cmdとbuild.sh)のヘルプテキストと使用方法ドキュメントを更新しました。OS対象指定オプション、WASM アーキテクチャ、CoreCLR選択オプションなどの記述が不足していた箇所を補完し、Unixスクリプトのパス例のエスケープ表記を修正しました。

Bot PRs (1 PRs)

2026年05月07日 (28 PRs)うち Bot 4 件 この日のページ →

#127925 Fix DispatchProxy TypeLoadException for generic type arguments

@radekdoulik・GitHub・area-System.Reflection

DispatchProxyが汎用型引数を持つインターフェース(例:IFoo<TInternal>)をプロキシする際、内部型の汎用引数に対するIgnoresAccessChecksToAttributeが不足していたため、TypeLoadExceptionが発生する問題を修正しました。EnsureTypeIsVisibleメソッドを改善して、汎用型引数を再帰的にチェックするようにしました。

#127910 JIT: Fix untracked uses of lvLiveInOutOfHndlr

@jakobbotsch・GitHub・area-CodeGen-coreclr

JITコンパイラにおける lvLiveInOutOfHndlr プロパティの不正な使用を修正します。このプロパティに依存する箇所で lvTracked チェックを追加し、未追跡(untracked)のローカル変数について正しく保守的に処理するようにします。例外ハンドラのセマンティクスと正確性に関わる修正です。

#127887 [cDAC] Update allowlist in LegacyFallbackHelper

@rcj1・GitHub・area-Diagnostics-cdac

cDAC(Compact Debugger Access Component)のレガシーフォールバック機能において、CDAC_NO_FALLBACK=1が設定されている際にレガシーDAC(Debugger Access Component)へのフォールバックを許可するAPIのallowlistから3つのメソッドを削除しました。これにより、no-fallback実行時の制限がより厳密になります。

#127882 Enable sccache for linux-x64 coreclr PR builds

@agocke・GitHub・area-Infrastructure-coreclr

Linux x64 CoreCLR ネイティブビルドのPRパイプラインに対して、sccacheをコンパイラキャッシュとして導入します。Azure Pipelines Cacheタスクを使用してsccacheのストレージディレクトリをビルド間で永続化し、ビルド後に統計情報を出力することで、PR CI時のビルド時間を短縮できます。

#127876 Fix iOS arm64 CoreCLR crash from shared MethodDesc::CalliCookie slot

@kotlarmilos・GitHub・area-CodeGen-Interpreter-coreclr

PR #127016で導入されたcalli署名キャッシュ機構により、iOS arm64でのCoreClrクラッシュが発生していました。MethodDescの共有キャッシュスロットに対して、インタープリタ-ネイティブ呼び出しパスとIL Stubの新しいコード両方が書き込みを行うことが原因です。修正ではCInterpreterJitInfo::GetCookieForInterpreterCalliSigのキャッシュ機構を削除し、毎回GetCookieForCalliSigで計算するようにPR #127016以前の動作に戻しました。

#127871 Fix cDAC x-plat dump tests: pre-zip payloads and exclude osx legs

@max-charlamb・GitHub・area-Diagnostics-coreclr

cDAC x-plat dump テストの Helix 送信時に発生する 2 つの問題を修正しています:

  1. Helix SDK の MemoryStream の 2 GB 上限により、大きなペイロードの ZIP 圧縮でアップロード失敗
  2. macOS(osx_arm64/osx_x64)ペイロードの大きさにより、Helix ホストのディスク圧迫

修正として、ZipDirectory でダンプディレクトリを事前に ZIP ファイルとして作成し、<PayloadDirectory> の代わりに <PayloadArchive> で既存 ZIP をアップロードする方式に変更。同時に x-plat テストから macOS をスキップします。

#127864 Add test: MaxResponseContentBufferSize enforced against decompressed content (Brotli)

@Copilot・GitHub・area-System.Net.Http

HttpClient.MaxResponseContentBufferSizeが自動Brotli解凍時に解凍後のレスポンスサイズに対して正しく適用されることを検証する機能テストを追加しました。既存のLoopbackサーバーインフラを活用し、高圧縮率のBrotliコンテンツでバッファサイズ制限が実装される動作を確認します。

#127845 Remove unsafe code from System.Linq.MaxMin

@EgorBo・GitHub・area-System.Linqreduce-unsafe

System.Linq.MaxMinのunsafeコードを安全なコードに置き換えるPRです。LoadUnsafeと参照操作をspan基準のVector*.Create(ReadOnlySpan<T>)に変更し、Vector256/512をVector128に圧縮することでスカラーループの効率を向上させます。インライナー予算対策として複数の[AggressiveInlining]アトリビュートを追加しています。

#127810 JIT: Remove redundant null checks for non-null PHIs

@EgorBo・GitHub・area-CodeGen-coreclr

JIT(Just-In-Time)コンパイラの非null アサーション伝播を改善し、PHI(PHI関数)値に到達するエッジアサーションを検査することで、??=演算子による統合後の冗長なnullチェックを削除します。

class Program
{
    Inner? _inner;

    [MethodImpl(MethodImplOptions.NoInlining)]
    public int Invoke(int n) => (_inner ??= new Inner()).Do(n);
}

上記のようなコードで、不要なnullチェック命令(cmp byte ptr [rax], al)が削除されます。

#127795 Inline remaining usages of OpenProcess on Unix

@am11・GitHub・area-Diagnostics-coreclrcommunity-contribution

UnixプラットフォームにおけるOpenProcess関連APIの使用箇所を削除し、これらのAPIをPAL(Platform Abstraction Layer)から廃止するリファクタリングです。デバッガのリモートデータ取得処理において、OpenProcess/OpenProcessMemoryの呼び出しをインライン化し、PAL抽象化を廃止することで、プラットフォーム固有の実装を削除しています。

#127788 [clr-ios] Propagate XSLT ActiveIssue from base to derived test classes

@kotlarmilos・GitHub・area-Infrastructure-coreclros-ios

xUnitの[ActiveIssue]属性は基底クラスから派生クラスに継承されない仕様により、#127464で基底クラスXsltApiTestCaseBase2に設定された[ActiveIssue(IsAppleMobile, IsCoreCLR)]が機能せず、469個のXSLTテストが依然として実行されてTypeInitializationExceptionを発生させていました。このPRは、[ActiveIssue]属性を具体的な派生テストクラスに直接設定することで、AppleMobileプラットフォーム上でのテストスキップを正しく機能させます。

#127751 [Wasm RyuJIT] Codegen for reverse pinvoke/unmanagedcallersonly

@kg・GitHub・arch-wasmarea-CodeGen-coreclr

WebAssembly RyuJIT コードジェネレータで、reverse P/Invoke および UnmanagedCallersOnly 属性によるアンマネージドエントリポイントのサポートを追加しました。これにより、WASM shadow スタックポインタが明示的な引数として渡されない場合のプロローグ生成に対応し、以下のようなコードのコンパイルが可能になります:

[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvCdecl) })]
static int uco () {
    return 42;
}

#127559 [browser][coreCLR] Enable download retry by default and improve retry sequencing

@pavelsavara・GitHub・arch-wasmarea-Hostos-browser

WebAssembly向けcoreCLRローダーにおいて、ダウンロード再試行をデフォルトで有効化し、再試行シーケンスを改善しました。すべての初回ダウンロードがキューに登録されるまで再試行を遅延させることで、起動時の再試行ストームがダウンロードスロットを枯渇させるのを防ぎます。

#127450 JIT: Restore EH-region check in if-conversion flow validation

@Copilot・GitHub・area-CodeGen-coreclr

JITのIf-conversion最適化フェーズにおいて、EH(例外処理)領域の境界チェックが誤って削除されていた問題を修正します。Fuzzlyn生成のテストケースで、ThenブロックがTry領域の開始地点である場合に BBF_DONT_REMOVE アサーション失敗が発生していました。PR #125347 で IfConvertCheckFlow が簡略化された際に BasicBlock::sameEHRegion チェックが不適切に削除されたため、これを復元します。

#127328 [browser][coreclr] WASM-specific GC OS layer; no mmap/decommit

@pavelsavara・GitHub・arch-wasmarea-GC-coreclr

WASM環境でのメモリ管理に対応するため、GCのOS抽象化レイヤー(GCToOSInterface)をUNIX実装から分離し、WASM専用実装を導入しました。WASMでは仮想メモリ機能(mmap/decommit)が実質的に利用できないため、posix_memalign/freeベースの実装に切り替え、新たにnever_decommit_pフラグを導入してdecommit不可の意図をコード上で明確化しています。

#127183 Fix WebSocket close single-consumer violation

@cittaz・GitHub・area-System.Netcommunity-contribution

WebSocketのクローズハンドシェイク中に、HTTP/2上で並行するReceiveAsyncとCloseAsyncの呼び出しによる単一コンシューマー違反を修正しました。RFC 6455 7.1.1の"クライアントがサーバーのTCPクローズを待つ"ステップを_receiveMutexの背後で保護することで、同じストリームからの並行読み取りを防止し、Http2Stream.TryReadFromBufferのDebug.Assert(!_hasWaiter)失敗を解決します。

#127050 Fix for 126457

@dhartglassMSFT・GitHub・area-CodeGen-coreclr

bool型のインライン関数が末尾呼び出し(tail call)を含み、戻り値が末尾呼び出しとは別のブロックにある場合、インライナーが挿入する正規化キャスト(int→ubyte→int)を末尾呼び出し検証で適切に処理するよう修正しました。正規化キャストは末尾呼び出しの場合、呼び出し元関数がインライン化されなかった場合にはmorphの後の段階で挿入されるため、安全に無視できます。

#125491 Implement UnknownSizeFrame for locals with unknown size

@snickolls-arm・GitHub・area-CodeGen-coreclrcommunity-contributionarm-sve

未知サイズのローカル変数(TYP_SIMDとTYP_MASK型)を処理するためのUnknownSizeFrameを実装しました。ARM64アーキテクチャでは、x19レジスタをこのフレーム内のローカル変数のアドレッシング用に予約し、SVE メモリ転送命令を更新してベクトル長の倍数(またはマスクの場合はVL/8)に対応させています。

2026年05月06日 (18 PRs) この日のページ →

#127878 [cDAC] Switch runtime-diagnostics SOS test filter to -method for wildcard support

@max-charlamb・GitHub・area-Diagnostics-cdac

dotnet/diagnostics PR #5821によるSOS テストクラスの分割に伴い、既存のclassFilter: SOSがマッチしなくなった問題を修正します。xunit v2の-classフィルタはワイルドカード非対応のため、代わりに正規表現対応の-methodフィルタを使用し、methodFilter: SOS*に切り替えることで、SOSプレフィックス付きの全クラスのメソッドにマッチさせます。

#127836 Set per-target compile PDB for cDAC descriptor object libraries

@lewing・GitHub・area-NativeAOT-coreclr

cDAC記述子オブジェクトライブラリがMSVC でコンパイルする際、デフォルトの vc140.pdb ではなく、ターゲット固有の決定的なPDBを生成するように修正しました。これにより、静的ライブラリ(例: Runtime.ServerGC.lib)にアーカイブされたオブジェクトファイルが後続のNativeAOT発行時にリンクエラー LNK4099 を引き起こすことを防ぎます。

#127826 Add scalar FixedTimeEquals overload

@vcsjones・GitHub・area-System.Security

CryptographicOperations.FixedTimeEqualsに新しいスカラーオーバーロードを追加しました。バッファを単一バイト値と比較する際に、比較用スパンを生成する必要がなくなり、特にWindows X25519の共有秘密ゼロチェックのような定時間比較処理が簡潔になります。

// 新しいオーバーロード
public static bool FixedTimeEquals(ReadOnlySpan<byte> source, byte value)

#127824 Replace mobile-scan with platform-agnostic CI outer-loop failure scanner

@kotlarmilos・GitHub・area-Infrastructure

モバイル環境専用のCI失敗スキャンワークフロー(mobile-scan.md)をプラットフォーム非依存の汎用CI外部ループ失敗スキャナー(ci-failure-scan.md)に置き換えます。複数の外部ループパイプラインをカバーし、失敗分類(ビルド破損 vs テスト失敗 vs インフラ)と対応アクション(追跡Issue、Known Build Error、テストスキップPR、製品修正PR)を拡張します。

#127823 Add StringBuilder.MoveChunks(StringBuilder) API

@Copilot・GitHub・area-System.Runtime

StringBuilder.MoveChunks(StringBuilder source) という新しい公開APIを追加します。このメソッドは、ソースのStringBuilderのチャンク チェーンを新しいStringBuilderインスタンスにO(1)で転送し、ソースをドレイン(空)にします。これにより、Roslyn等のコンシューマーがコピーなしで不変ビューを保持しながら、元のStringBuilderを解放できます。

namespace System.Text;

public partial class StringBuilder
{
    public static StringBuilder MoveChunks(StringBuilder source);
}

#127812 [iOS] In-Proc Crash Reporter

@mdh1418・GitHub・area-Diagnostics-coreclros-ios

Android向けに追加されたCoreClrインプロセスJSON形式クラッシュレポーター機能をiOS、tvOS、MacCatalystに拡張します。Apple固有のシステムメタデータ(OSバージョン、システムモデル、システム製造業者)抽出とucontext_tからのレジスタ抽出(x86_64/arm64対応)が追加されます。

#127789 [mobile] Disable RoundTrip_AllWindowLogs on iOS / tvOS / MacCatalyst / Android

@kotlarmilos・GitHub・area-System.IO.Compression

System.IO.Compression テストスイートの RoundTrip_AllWindowLogs テスト(Deflate/ZLib/GZip variants)が、Apple モバイル(iOS/tvOS/MacCatalyst)および Android プラットフォームで常に OperationStatus.DestinationTooSmall を返す問題に対応するもの。モバイル CI での問題をブロック解除するため、該当プラットフォーム上でこのテストを一時的にスキップします。

#127679 Fix scoped Utf8JsonReader to carry original position

@prozolic・GitHub・area-System.Text.Jsoncommunity-contribution

JsonSerializer.Deserializeで既存のUtf8JsonReaderを使用する際、JsonExceptionが報告する行番号とバイト位置情報が不正確になる問題を修正します。スコープ付きリーダー作成時に元のリーダーの位置情報(_lineNumberと_bytePositionInLine)をキャプチャし、トークンタイプごとに値トークンの直前を指すようにリワインドして、JsonReaderState経由でスコープ付きリーダーに渡すことで、正確な位置情報の追跡を実現します。

#127659 Intrinsify string.FastAllocateString

@EgorBo・GitHub・area-CodeGen-coreclr

String.FastAllocateStringをJIT intrinsicとしてマークし、RyuJITで最適化を行うPRです。結果を非nullとして追跡し、ARR_LENGTH(FastAllocateString(len))をlenに折り畳み、グローバルアサーションstring.Length(result) == lenArgを出力します。これにより、文字列連結後のインデックスアクセスなどで不要な境界チェックが削除されます。

int Foo()
{
    string a = "aaa";
    string b = "bbb";
    string c = a + b;
    return c[3]; // このPRでこの境界チェックが削除される
}

#127462 Add generic Random NextInteger/NextBinaryFloat APIs

@stephentoub・GitHub・area-System.Runtime

System.Randomに汎用の数値生成API (NextInteger<T>()、NextBinaryFloat<T>()) を追加します。IBinaryInteger<T>とIBinaryFloatingPointIeee754<T>を実装する任意の型に対応し、一般的な型には高速パス、その他は棄却サンプリングで対応します。

// 使用例
Random random = new();
int value = random.NextInteger<int>();
int ranged = random.NextInteger<int>(0, 100);
double floatValue = random.NextBinaryFloat<double>();

#127454 Fix TensorPrimitives.IndexOfMax

@lilinus・GitHub・area-System.Numericscommunity-contribution

TensorPrimitives.IndexOfMax および関連メソッドのインデックス計算バグを修正するPRです。特に小さい要素型(byte、ushortなど)において、正しいインデックスが要素型の最大値を超える場合に不正なインデックスが返されていた問題を解決します。新しい IIndexOfMinMaxOperator インターフェースを導入し、要素サイズ(1/2/4/8バイト)に応じた専用のベクトル化実装を提供することで、水平集約による正確なインデックス検索を実現しています。

#126549 Optimize ImmutableSortedSet<T>.SetEquals to avoid unnecessary allocations

@aw0lid・GitHub・area-System.Collectionscommunity-contribution

ImmutableSortedSet<T>.SetEqualsメソッドを最適化し、不要な中間SortedSet<T>の生成を排除してメモリアロケーションとGCプレッシャーを削減しました。パターンマッチングにより互換性のあるソート済みセット間で直接比較を実施し、デュアル列挙子による線形スキャン(O(n))で従来のO(log n)*.Contains()ルックアップを置き換えています。

#125895 Add cDAC ObjectiveCMarshal contract and IsTrackedReferenceWithFinalizer API

@Copilot・GitHub・area-Diagnostics-coreclr

Objective-C相互運用性の診断に対応する新しいObjectiveCMarshal cDACコントラクトと、RuntimeTypeSystemコントラクトへのIsTrackedReferenceWithFinalizer APIを追加しました。これにより、追跡参照オブジェクトのタグ付きメモリポインタを取得し、追跡参照とファイナライザーを持つ型を識別できます。

// ObjectiveCMarshal コントラクト API
TargetPointer GetTaggedMemory(TargetPointer address, out TargetNUInt size);

// RuntimeTypeSystem コントラクト API
bool IsTrackedReferenceWithFinalizer(TypeHandle handle);

2026年05月05日 (28 PRs)うち Bot 3 件 この日のページ →

#127790 [mobile] Skip NonRandomizedToRandomizedUpgrade on aggressive trimming

@kotlarmilos・GitHub・area-System.Collections

ConcurrentDictionary_Generic_Tests<TKey,TValue>.NonRandomizedToRandomizedUpgrade_FunctionsCorrectlyテストが、aggressive trimming設定(NativeAoT、Apple mobile)環境で内部型ConcurrentDictionary<,>+Tablesへのリフレクションが失敗し、TypeLoadExceptionが発生する問題を修正します。テストをPlatformDetection.IsBuiltWithAggressiveTrimmingでゲートすることで、該当環境でのスキップを実装します。

#127752 Add a Fuzzlyn triage skill

@jakobbotsch・GitHub・area-skills

Fuzzlyn週末実行時の障害を自動的にトリアージするGitHub Copilot Skill「fuzzlyn-triage」を追加します。このスキルは障害アーティファクトのダウンロード、SuperPMIを用いた再現可能なコンテキストの抽出、jitdumpの生成、および詳細な分析結果と再現用ファイル(repro.mc、jitdump.txt、issue.md)をzipで出力することで、JIT障害の初期トリアージを自動化します。

#127744 Enable EventSource in System.Threading.Tasks.Tests

@MichalStrehovsky・GitHub・area-System.Threading.Tasks

System.Threading.Tasks.Tests を NativeAOT でビルド・実行する際に、AsyncProfilerTests が期待する非同期イベント(EventSource イベント)が正しく発行されないため、テスト失敗が多数発生していた問題に対応します。プロジェクトファイルで EventSourceSupport を true に設定し、NativeAOT ビルド時に EventPipe サポートを有効化することで、ランタイムの非同期イベント追跡機能を動作させるようにします。

#127741 Fix stale lastThrownObjectHandle in DAC GetThreadData during active exception dispatch

@hoyosjs・GitHub・area-Diagnostics-coreclr

#127300でExInfom_hThrowableが削除されて以降、アクティブな例外ディスパッチ中にThreadm_LastThrownObjectHandleが更新されなくなり、DACのGetThreadDataが古いハンドルを返していました。この修正により、デバッガがアクティブなディスパッチ中の例外を正しく報告できるようになります。

#127300の変更により、例外ディスパッチ中のm_LastThrownObjectHandleが古い状態になり、デバッガコマンド(!PrintException、!Threads、!clrstack -a)が失敗していました。本修正は、ExInfo トラッカーに格納されているアクティブな例外を優先し、フォールバックとしてm_LastThrownObjectHandleを使用するように変更しています。

#127686 Reorder static fields in LoggingEventSource to prevent reentrant bug in FilterSpec parsing

@hoyosjs・GitHub・area-Extensions-Logging

LoggingEventSourceの静的フィールド初期化順序の問題を修正しました。OnEventCommandが型初期化中に再入呼び出しされる際、ParseFilterSpecがnullセパレータ配列を参照してFilterSpecを誤解析する問題を解決しています。静的フィールドs_semicolonとs_colonの初期化をInstanceより前に移動することで、再入呼び出し時に確実に初期化済みの状態になるようにしました。

#127626 [release/8.0-staging] Add an in-memory cache for CRLs on Linux

@bartonjs・GitHub・Servicing-approvedarea-System.Security

Linux上でのCRL(証明書失効リスト)処理時のメモリ問題を軽減するため、OpenSSL CRL処理に境界付きのインメモリMRU(Most Recently Used)キャッシュを導入するバックポート。.NET 11 Preview 3で導入された機能をrelease/8.0-stagingブランチに適用します。

CRLを繰り返し検証するプロセスで、OpenSSL+glibcの小サイズアロケーション動作により予約メモリが蓄積されていた問題を、GC協調的なプルーニング機能を持つインメモリキャッシュで軽減します。

#127625 [release/9.0-staging] Add an in-memory cache for CRLs on Linux

@bartonjs・GitHub・Servicing-approvedarea-System.Security

Linux上でのCRL処理による過度なメモリ使用量問題を解決するため、CRL用のメモリ内MRU(Most Recently Used)キャッシュを実装しました。本変更により、リビジョン確認を頻繁に行うプロセスでは同じCRLを繰り返しロードせず、glibc メモリアリーナの断片化による見かけ上のメモリリークを軽減します。.NET 11 Preview 3で導入された本機能をrelease/9.0-stagingにバックポートしたものです。

#127604 Delete CreateProcessW impl from PAL

@am11・GitHub・area-Diagnostics-coreclrcommunity-contribution

PAL(Platform Abstraction Layer)からCreateProcessW実装を削除するクリーンアップです。CreateProcessWはWindows固有のプロセス生成APIであり、.NET Coreでは既に使用されていないため、PAL実装とそれに関連するテストコードを削除しました。この変更により、Windows専用のプロセス管理ロジックが排除されます。

#127566 ProcessTests: redirect stdio and kill entire process tree for shell-script-based tests.

@tmds・GitHub・area-System.Diagnostics.Processcommunity-contribution

シェルスクリプト基盤のテスト(LongProcessNamesAreSupportedおよびProcessNameMatchesScriptName)で、孫プロセス(sleep)を含むプロセスツリー全体を適切に終了するよう改善しました。従来はシェルのみを終了しており、睡眠プロセスが残ったままになり、テスト親プロセスの標準出力/標準エラーパイプが開いたままになる問題を修正しています。

#127551 [browser][CoreCLR] Implement invokeLibraryInitializers for JS initializer hooks

@pavelsavara・GitHub・arch-wasmarea-Hostos-browser

CoreCLR WASM ランタイムの JS ローダーに実装されていなかった invokeLibraryInitializers API を実装しました。この API は Blazor の JS initializer hooks (beforeStart/afterStarted) を実行するために必要であり、実装がないと CoreCLR WASM 上で Blazor アプリが起動時にクラッシュしていました。

#127523 Route async resumption stub fixups through precode fixup handling

@Copilot・GitHub・area-crossgen2-coreclr

ReadyToRun(R2R)コンパイル時の非同期再開スタブ(async resumption stub)fixupの処理を修正するPRです。これまで直接コンパイル済みメソッドノードに追加されていたfixupを、既存のprecode fixupパイプラインを通すように変更しました。これにより、fixupの重複排除と失敗したコンパイルパスでの不適切なコミットを防ぎます。

private void AddResumptionStubFixup(MethodWithGCInfo compiledStubNode)
{
    AddPrecodeFixup(_compilation.SymbolNodeFactory.ResumptionStubEntryPoint(compiledStubNode));
}

#127303 Fix CounterGroup timer to use Stopwatch instead of DateTime.UtcNow

@unsafePtr・GitHub・area-System.Diagnostics.Tracingcommunity-contribution

CounterGroupのタイマー実装をDateTime.UtcNowからStopwatchに変更しました。DateTime.UtcNowはNTP同期により時刻がジャンプする可能性があり、EventCounter購読者に報告される経過時間が不正確になるため、単調性を持つStopwatchを使用することで問題を解決します。この変更はEventCounter、PollingCounter、IncrementingPollingCounter、IncrementingEventCounterなど、CounterGroupを間接的に使用するすべてのカウンター型に影響します。

#127296 [cDAC] Implement cDAC TraverseVirtCallStubHeap

@Copilot・GitHub・area-Diagnostics-cdac

cDAC(Common Data Access Component)のTraverseVirtCallStubHeap SOS API を実装し、ネイティブDAC と同じ動作を実現します。VirtualCallStubManager のローダーヒープ(Indcell / CacheEntry)をトラバースする機能を追加し、既存のTraverseLoaderHeapCoreローダーヒープトラバーサル構造を再利用しています。

#127178 Disable server GC and background GC for CoreCLR WebAssembly, iOS, and tvOS builds

@Copilot・GitHub・arch-wasmarea-GC-coreclr

WebAssembly、iOS、tvOSのCoreClrビルドから、これらのプラットフォームでは使用できない/不要なGCモード(サーバーGCとバックグラウンドGC)を削除することで、バイナリサイズを最適化します。corerun.wasmの計測結果では、生バイナリで7.2%(325,686バイト)、Brotli圧縮後で**6.2%(82,556バイト)**のサイズ削減を実現しています。

#127005 Fix illink TypeMap proxy retention. Fixes #127004.

@rolfbjarne・GitHub・linkable-frameworkarea-Tools-ILLink

ILLinkのTypeMap処理におけるトリミングバグを修正しました。TypeMapHandler.MarkTypeMapAttributeがAnnotations.MarkInstantiatedを直接呼び出していたため、完全な処理パイプライン(ProcessTypeおよびProcessInstantiated)がスキップされ、TypeMapおよびTypeMapAssociationエントリが誤ってトリミングされていました。修正によりMarkRequirementsForInstantiatedTypesを呼び出すことで、全処理パイプラインが実行され、型のインスタンス化順序に関わらず外部のTypeMapおよびプロキシTypeMapAssociationエントリが適切に保持されるようになります。

#126916 [Android] In-Proc Crash Reporter

@mdh1418・GitHub・area-Diagnostics-coreclros-android

Android CoreCLRにおいて、ネイティブクラッシュ、中止、混合管理/ネイティブ障害の診断を改善するため、opt-inのin-proc crash reporterを実装しました。JSON形式のクラッシュレポートを生成し、createdumpの出力と互換性のあるスキーマを採用しています。レポートはDOTNET_DbgMiniDumpNameで指定した場所に*.crashreport.jsonファイルとして出力されます。

有効化には以下の環境変数が必須です:

DOTNET_EnableCrashReport=1
DOTNET_DbgMiniDumpName=/data/data/<package>/files/dotnet_crash_%p

#125967 Fix memory leak of offset_to_bb_hash

@dovydenkovas・GitHub・area-VM-meta-monocommunity-contribution

Mono JITコンパイラのヘルパー関数内で、基本ブロック情報用に作成されたハッシュテーブル(offset_to_bb_hash)がメモリ解放されていなかったメモリリークを修正しました。冗長モード(cfg->verbose_level >= 2)でのディスアセンブリコード出力時に、ネイティブオフセットと基本ブロック番号のマッピング用ハッシュテーブルにg_hash_table_destroyを追加して、確保したメモリを適切に解放します。

#125554 [RyuJit] Decouple igNum from strict layout order

@SingleAccretion・GitHub・area-CodeGen-coreclrcommunity-contribution

RyuJIT コンパイラの instruction group (IG) 生成を strict な layout order の制約から解放する変更です。現在は igNum の順序が linked list の順序(最終的なレイアウト順序)と厳密に一致していますが、本変更により epilog と funclet prolog を表すIGについて、レイアウト順序外での生成を可能にします。これは "before/after [in layout order]" という抽象化API を導入し、実際の順序判定は linked list に委譲することで実現されています。

最終的な目標として、単一IG prolog の制約を完全に削除することを目指しています。

2026年05月04日 (14 PRs) この日のページ →

#127677 Hide Environment.CallEntryPoint in unhandled exception message

@jkotas・GitHub・area-ExceptionHandling-coreclr

未処理例外のスタックトレースに表示されるSystem.Environment.CallEntryPointヘルパーフレームを非表示にするための修正です。前回のIssue #126222で意図された変更が実際には反映されていなかったため、CoreCLRの例外スタックトレース取得ロジックを更新して、CallEntryPointメソッドのフレームをスキップするようにしました。

#127633 Fix ImmutableHashSet.SetEquals correctness for mismatched comparers

@aw0lid・GitHub・area-System.Collectionscommunity-contribution

ImmutableHashSet.SetEqualsの正確性の問題を修正します。異なる比較子を持つ2つのセットを比較する際、Countチェックが比較子の検証ブロック外に配置されていたため、誤ってfalseを返していました。修正により、比較子が異なる場合は最適化パスをバイパスし、適切なセット比較にフォールバックします。

// 修正前は false を返していた(ただし正しくは true)
var main = ImmutableHashSet.Create(StringComparer.OrdinalIgnoreCase, "a");
var other = ImmutableHashSet.Create("a", "A");
Console.WriteLine(main.SetEquals(other)); // true が返るべき

#127568 Improve clarity in mobile scanner workflow issues and PRs

@kotlarmilos・GitHub・area-Infrastructure

Mobile Platform Failure Scannerワークフローの改善により、モバイルプラットフォーム障害の処理方法をより明確で予測可能にしました。従来は混在したPR、Issue、重複コメントが生成されていましたが、今後は各障害に対して「テスト属性修正用のドラフトPR」または「製品バグ・ネイティブクラッシュ・インフラ問題用のTracking Issue」のいずれかに統一されます。

#127238 [Diagnostics]: High-performance EventSource runtime async profiler.

@lateralusX・GitHub・area-Diagnostics-coreclr

高パフォーマンスな非同期プロファイラーを実装するPRです。Runtime Async (AsyncV2) の非同期メソッド実行を低オーバーヘッドで追跡する新しい AsyncProfilerBufferedEventSource を導入し、スレッド単位のバッファード事象送出と集中型フラッシュ調整を活用します。従来のTPLイベントプロファイリングと比較して約4~40倍のパフォーマンス向上を実現し、ETLファイルサイズを約10倍削減します。

2026年05月03日 (3 PRs) この日のページ →

#127656 Revert "Simplify TrimmerSingleWarn intermediate assembly update using MSBuild item Update"

@sbomer・GitHub・linkable-frameworkarea-Tools-ILLink

PR #125630で導入されたMSBuild item Updateを使用した簡略化を revert。MSBuildの Update がターゲット内で正常に動作しない問題を修正し、依存関係フローの問題を解決します。ResolvedFileToPublish と IntermediateAssembly の交差を計算して、TrimmerSingleWarn=false メタデータを確実に適用します。

#127562 [wasm][coreclr] Do not use SetCleanupNeededForFinalizedThread

@radekdoulik・GitHub・arch-wasmarea-VM-coreclr

WebAssembly環境ではファイナライザーが専用スレッドではなくメインスレッドでインライン実行されるため、Threadオブジェクトのファイナライズ時にSetCleanupNeededForFinalizedThreadのIsFinalizerThread()アサーションが誤発火していました。本PRでは、WASM環境での不要な呼び出しをガード化し、同時にWebAssemblyでSystem.Threading.Threadテストを有効化します。

2026年05月02日 (6 PRs) この日のページ →

#127673 Remove DacDbi GetAppDomainObject API from native and cDAC

@barosiak・GitHub・area-Diagnostics-coreclr

デバッガインターフェース層(DAC/DBI)から未使用のGetAppDomainObject APIを削除するクリーンアップPRです。GetRawExposedObjectHandleForDebugger()が常にNULLを返していたため、このAPIは実質的にno-opでした。ネイティブCOM契約(IDL + 抽象インターフェース実装)とマネージドcDAC投影層の両方から削除されます。

#127660 Don't report a interp->native transition when it is done from a pinvoke method

@BrzVlad・GitHub・area-CodeGen-Interpreter-coreclr

インタープリタでP/Invoke呼び出し時に管理↔非管理遷移イベントが二重報告される問題を修正します。#126509によるP/Invoke処理の変更後、transient ILがILStubではなくP/Invokeメソッド自体に属するようになったため、遷移イベントが2回報告されていました。P/Invokeメソッドから遷移を行う場合のプロファイラ通知を抑制することで、regressed profiler testを修正します。

#127644 Fix NativeAOT hex config parser to handle 0x/0X prefix

@Copilot・GitHub・area-NativeAOT-coreclr

NativeAOT の環境変数パーサ(RhConfig::Environment::TryGetIntegerValue)が 16 進値の 0x/0X プレフィックスに対応していなかったため、DOTNET_GCHeapHardLimit=0xC0000000 のような設定値がパースに失敗していた問題を修正します。CoreCLR の strtoul 相当の動作に統一し、Collect_Aggressive_LargePages テストが NativeAOT で失敗する問題を解決します。

uint32_t startIndex = 0;
if (!decimal && cchResult >= 2 && buffer[0] == '0' && (buffer[1] == 'x' || buffer[1] == 'X'))
{
    startIndex = 2;
    if (startIndex == cchResult)
        return false; // プレフィックスのみでパース失敗
}
for (uint32_t i = startIndex; i < cchResult; i++)

#127640 Fix NativeAOT GC roots after universal transition

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

NativeAOT GC stack walkでユニバーサルトランジション(universal transition)フレームからスタートした場合、スクラッチレジスタが不正にGCルートとして報告される問題を修正しました。フレームのアンワインド後、ActiveStackFrameをクリアすることで、管理者フレームのスクラッチレジスタがpost-call GC情報から報告されるのを防ぎます。これにより、古いスタンプ状態(コードポインタなど)がGCオブジェクトとして誤認識される問題を解決します。

#127590 JIT: make funclet order correspond to EH clause order

@AndyAyersMS・GitHub・area-CodeGen-coreclr

WebAssemblyでのEH(例外処理)サポート向けに、JITがfunclet(例外処理コード)の順序をEHクローズの順序に対応させる変更。これにより、Wasmホストがオフセットデータに依存せずにfuncletをEHクローズと関連付けることが可能になります。フィルタ付きのEHクローズの場合、フィルタfuncletは必ずcatch funcletの前に配置されます。

2026年05月01日 (23 PRs) この日のページ →

#127653 Fix SIGBUS crash on ARMv7: use Unsafe.ReadUnaligned in Frozen.Hashing

@Copilot・GitHub・area-System.Collections

ARMv7(Android Unity IL2CPPなど)でSystem.Collections.Frozen.Hashingのchar*からuint*へのキャスト時に発生するアンアライン32ビット読み取りによるSIGBUSクラッシュを修正します。ToFrozenSet<string>(StringComparer.Ordinal)を長さ≥4の文字列で呼び出す際の問題を解決します。

修正内容:

  • char*からuint*への直接デリファレンスをUnsafe.ReadUnaligned<uint>()に置き換え、アンアライン読み取りを安全に処理
  • 同じパターンが存在していたGetHashCodeOrdinalIgnoreCaseAsciiにも適用

#127643 Always add ManagedDataDescriptorProvider to compilationRoots

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

NativeAOT ILCompiler でコンパイルエラー(unresolved external symbol DotNetManagedContractDescriptor)を解決するため、ManagedDataDescriptorProvider を compilationRoots に常に追加するように変更しました。これまでは --debug オプション有効時のみの追加でしたが、デバッグ情報の有無に関わらず無条件に追加するようにしました。

#127638 Fix !m_RedirectContextInUse assert in RestoreContextSimulated on win-x86

@Copilot・GitHub・area-VM-coreclr

Windows x86環境において、RestoreContextSimulated内でHandleThreadAbort()が呼び出される際にm_RedirectContextInUseがまだtrueのままであるという問題を修正しました。この状態でGC redirectが発火するとMarkRedirectContextInUse()がアサーション失敗を引き起こしていました。修正により、x86 SEHパスとRtlRestoreContextパスが共通の中止チェックコードパスを共有するようになり、再入可能性ウィンドウが排除されます。

#127632 Remove an unnecessary switch from GenTree:TryGetUse

@tannergooding・GitHub・area-CodeGen-coreclr

JITコンパイラのGenTree::TryGetUseメソッドから不要な大規模なswitchステートメントを削除するリファクタリング。既存のオペレータ分類ヘルパー(OperIsLeaf、OperIsSpecialなど)を活用して、コードの簡潔性を向上させます。ARM64のGT_SELECT_{INC,INV,NEG}ノードを真の条件付き/特殊ノードに再分類しています。

#127631 Delete FEATURE_AUTO_TRACE

@Copilot・GitHub・area-Tracing-coreclr

FEATURE_AUTO_TRACE機能を完全に削除するPRです。AutoTraceはEventPipeを経由したDiagnostic Serverの自動ストレステスト用インフラストラクチャであり、環境変数DOTNET_AutoTrace_N_TracersとDOTNET_AutoTrace_Commandで制御されていました。デフォルトでは有効化されていませんでした。

#127620 Fix GetUserString DEBUG validation to use length-bounded string construction

@max-charlamb・GitHub・area-Diagnostics-cdac

cDAC(Compact Data Access Component)のGetUserString DEBUG検証ロジックにおけるアサーション失敗を修正しました。検証ブロックが null 終端に依存した文字列構築を行っていたため、バッファ内の意図的に非 null 終端なデータを誤って読み込んでいました。長さ指定の文字列構築 new string(char*, 0, length) に変更することで、バッファの内容に関わらず安全に検証できるようにします。

#127614 Change commit message topic to 'container image digests'

@richlander・GitHub・area-Infrastructure-libraries

Renovateが生成するコミットメッセージのトピックを「container image dependencies」から「container image digests」に変更し、Docker イメージのピン留め更新に関するPRタイトルをより正確にします。デフォルトのRenovate用語である「dependencies」は曖昧であり、「digests」の方がレビュワーと マージ担当者にとってより明確です。

#127560 [clr-ios] Advance past owning InterpreterFrame at StackFrameIterator::Init call sites

@kotlarmilos・GitHub・area-CodeGen-Interpreter-coreclr

インタプリタ内で一時停止したスレッドをスタックウォークする際、StackFrameIterator::Initがインタプリタコードを指すIPを含むCONTEXTで初期化できるよう改善します。従来はこの場合にアサーション失敗が発生していましたが、呼び出し側で所有するInterpreterFrameをスキップするよう要件を明確化し、その検証をアサーションで強制することで解決します。

#127487 JIT: avoid store forward stall for struct params in GS frames

@AndyAyersMS・GitHub・area-CodeGen-coreclr

GS(Guard Stack)フレームにおいて、マルチレジスタ構造体パラメータのコピー時に、スピル時の狭い幅の書き込みとコピー時の広い幅の書き込みのミスマッチによるストア・フォワード・スタッシュを回避します。SIMD命令を使用した広幅コピーを避け、整数レジスタサイズのコピーを強制することで最適化します。

#127395 [cDAC] Stack walk GC reference scanning and bug fixes (1/5)

@max-charlamb・GitHub・area-Diagnostics-coreclr

cDAC(Compact Data Access Contract)スタックウォーク機能の第1段階として、GC参照スキャニングとスタックウォーカーの修正を実装します。これにより、遷移フレーム経由のGCルート列挙、GCRefMap/署名ベースのスキャニング、例外フレーム状態追跡が可能になります。本PRは5部構成の予定の第1部です。

#127300 Remove ExInfo::m_hThrowable - use direct pointer for exception objects

@max-charlamb・GitHub・area-Diagnostics-coreclr

ExInfo構造体の冗長なGCハンドルベースのm_hThrowableフィールドを削除し、既存のm_exception OBJECTREFフィールドへの直接ポインタの使用に統一します。これにより例外スロー時の割り当て/解放のオーバーヘッド(~5個のインターロック操作)とポインタ間接参照を削減し、NativeAOTのアプローチに合わせます。

#126972 [NativeAOT] Add cDAC data descriptor infrastructure

@max-charlamb・GitHub・area-NativeAOT-coreclr

NativeAOT向けのcDAC(Common Data Access Contract)データディスクリプタインフラストラクチャを追加し、診断ツール(cDAC reader、SOS)がNativeAOTランタイム状態をCoreClRと同じコントラクトベースのメカニズムで検査できるようにします。スレッド情報、MethodTable、メモリアロケーション、GCデータなどのランタイム構造体オフセットと、ILCコンパイル時に生成されるマネージド型レイアウト副記述子により、デバッグツールの相互運用性を実現します。

#126911 Move built-in array marshalling to managed and make olevariant.cpp Windows-only

@jkoritzinsky・GitHub・area-Interop-coreclr

配列マーシャリング(LPArray、固定配列、SAFEARRAYコンテンツ処理)ロジックをネイティブコード(olevariant.h/cpp)から管理コード(StubHelpers.cs)に移行するPRです。これによりolevariant.cpp全体をWindows専用化でき、WASMでのマーシャリングロジック削除時の対応が容易になります。併せて、従来のSAFEARRAY向けに設計されたVTHACK_*定数を削除しています。

#125795 Include requesting assembly chain in assembly load failure exceptions

@Copilot・GitHub・area-AssemblyLoading

アセンブリロード失敗時の例外診断を改善し、依存関係の欠落や無効性の際に、ロード失敗をトリガーした要求元アセンブリのチェーンを追跡・表示するようにしました。これにより複雑な依存関係のシナリオでも開発者はロード失敗の原因を特定しやすくなります。

例:

System.IO.FileNotFoundException: Could not load file or assembly 'LibC, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
Requested by: LibB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
 --> LibA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
 --> helloworld, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
目次