2026年09月のダイジェスト

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

← アーカイブ一覧へ戻る

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

808
PR 数(Total)
587
PR 数(Community)
58
PR 数(AI Agent)
163
PR 数(Bot)
96
ラベルタイプ数
30
更新日数

日別 Pull Request 数

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

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

ラベル別 Pull Request 数の上位10 上位10件の合計813件を100%とした内訳です。各スライスの番号は凡例の番号に対応します。ラベルごとの件数は凡例を参照してください。 1. Servicing-approved — 211 PRs (26.0%) 2. area-CodeGen-coreclr — 175 PRs (21.5%) 3. arch-wasm — 87 PRs (10.7%) 4. area-codeflow — 60 PRs (7.4%) 5. community-contribution — 53 PRs (6.5%) 6. area-Infrastructure — 52 PRs (6.4%) 7. area-VM-coreclr — 52 PRs (6.4%) 8. area-NativeAOT-coreclr — 50 PRs (6.2%) 9. area-ReadyToRun — 42 PRs (5.2%) 10. area-System.Security — 31 PRs (3.8%)
  1. Servicing-approved211 PRs26.0%
  2. area-CodeGen-coreclr175 PRs21.5%
  3. arch-wasm87 PRs10.7%
  4. area-codeflow60 PRs7.4%
  5. community-contribution53 PRs6.5%
  6. area-Infrastructure52 PRs6.4%
  7. area-VM-coreclr52 PRs6.4%
  8. area-NativeAOT-coreclr50 PRs6.2%
  9. area-ReadyToRun42 PRs5.2%
  10. area-System.Security31 PRs3.8%
上位10件で全1250件中813件(65.0%)を占めます。ラベルは1つの Pull Request に複数付くため、比率は PR 数ではなくラベル付与の延べ数に対するものです。

各 Pull Request の概要

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

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

#134924 Fix NotSupportedException in DnsSocket.ReceiveAsync peek overload on macOS

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

macOS上のDnsResolverがmDNSResponderソケットの読み込み準備状態を確認する際に呼び出すDnsSocket.ReceiveAsync(buffer, peek: true)メソッドでNotSupportedExceptionが発生していた問題を修正します。原因はUnsafeAccessorType属性が値型(enum)のSocketFlagsに対応していないためでした。修正により、非同期DNS問い合わせがmacOSで正常に動作するようになります。

#134918 [wasm] Simplify template version bumps

@akoeplinger・GitHub・arch-wasmarea-Build-mono

WebAssemblyテンプレートの.NET版バージョンバンプを簡素化するPRです。template.jsonの生成をNetCoreAppCurrentVersionから自動導出するよう変更し、複数箇所のハードコード版バージョン更新を不要にします。テンプレートソースディレクトリの構造をフラット化し、launchSettings.jsonの追跡を可能にします。

#134914 Fix Tensor correctness and accelerate contiguous operations

@tannergooding・GitHub・area-System.Numerics.Tensorsneeds-breaking-change-doc-created

System.Numerics.Tensorsの正確性と性能の大規模な改善です。Tensorの形状、ストレージ、ブロードキャスト、重複、リサイズ、列挙の正確性を修正し、密集レイアウトおよび連続後続スライスの要素ごと操作をTensorPrimitivesにディスパッチして高速化します。空の形状は自動計算されたゼロストライドを使用してオーバーフロー防止を強化し、ベクトル化されたTan操作のFMA依存性を補正しました。

#134882 Handle in-memory module paths in cDAC loader

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

cDACのモジュールパス処理をネイティブランタイムのPEAssembly::GetPath()の動作に合わせました。reflection-emitおよびprobe-extensionモジュールに対して空のパスを返すようにし、ヒープダンプに存在しない共有空文字列バッファへの無効な参照を回避します。これにより、macOS arm64 SingleFile環境でのcDAC clrstack -iの失敗を修正します。

#134877 Replace remaining fixed buffers with InlineArray

@EgorBo・GitHub・area-Metareduce-unsafe

このPRは、#125574のフォローアップとして、ライブラリ内の残存する固定バッファ(fixed buffer)をInlineArrayに置き換えるものです。ハッシング、エンコーディング、ネットワーク、セキュリティ、プロセス間通信に関連する複数のInterop定義を更新し、ポインタベースのバッファアクセスをSpanおよびInlineArray インデックスベースのアクセスに置き換えています。

#134857 Use safe code for UTF-8 StartsWith(OrdinalIgnoreCase)

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

MemoryExtensions.StartsWithOrdinalIgnoreCaseUtf8 の実装を、アンセーフコードと手動最適化(ベクトル化、ループ展開)から、安全なspanベースのコードに書き換えました。UTF-8浮動小数点パースにおいてNumberFormatInfo.PositiveSign/NegativeSignのマッチングに使用される主要な機能です。前のバージョンのバグ(境界超過、プリフィックス長の検証不備、ASCII/非ASCIIの不一貫性)を修正し、非ASCIIルーンのケーシングをRune.ToUpperInvariantからRune.ToUpperOrdinalに変更して、UTF-16のOrdinalIgnoreCase動作と統一しました。

#134807 [release/11.0] Prevent infinite recursion in ILLink generic dataflow

@jtschuster・GitHub・Servicing-approvedlinkable-frameworkarea-Tools-ILLink

ILLink のジェネリック型引数データフロー解析において、RequiresPublicMethods<Self> のような自己参照型署名が無限再帰を引き起こす問題を修正します。反射可視メンバーの署名データフロー解析進行中を追跡する「訪問済み」セットを導入し、同じメンバーへの再帰的進入時には署名解析のみをスキップしつつ、通常のマーキング・依存関係記録・アノテーション処理は継続します。

#134779 [wasm] Report arguments of VM-to-managed calls while running the prestub

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

WebAssembly上での VM-to-managed 呼び出しにおいて、prestub 実行時に呼び出し引数が適切にレポートされていない問題を修正します。prestub 実行中に GC が発生すると参照引数が解放され、呼び出し先で不正なポインタを受け取る可能性がありました。修正により、R2R コンパイル済みメソッドへの呼び出しでも prestub が毎回実行されるのを防ぎ、引数を PrestubMethodFrame 経由で正しく保護します。

#134771 [wasm][CoreCLR] Run Wasm HardwareIntrinsics tests, gated on IsSupported

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

WebAssembly HardwareIntrinsics テストが CI で実行されていなかった問題を修正します。従来の EnableWasmHWIntrinsicsTests オプトイン方式を廃止し、他プラットフォームと同じモデルに統一:各 PackedSimd テストは PackedSimd.IsSupported が false の場合は早期リターンします。これにより、通常の browser lanes および ReadyToRun で自動的にテストが実行されるようになります。

#134769 [wasm] Report untracked GC slots for aborted Wasm R2R frames

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

Wasm R2R コードの例外ディスパッチ中に発生する GC ホール(GC 参照の報告漏れ)を修正します。例外が funclet からスローされた場合、親フレームの untracked スロットが報告されず、GC がそこで保持されているオブジェクトを誤って解放することがあり、SanityCheck() アサーションが失敗していました。

修正は GcInfoEncoding に HAS_INTERRUPTIBLE_RANGES トレイトを追加し、Wasm32 では false に設定。これにより EnumerateLiveSlots は interruptible range 処理をスキップし、aborted frames でも untracked スロットを報告するようになります。

#134697 Fix crossgen2 OverflowException emitting inlining info for runtime-async inliners

@lewing・GitHub・area-ReadyToRun

crossgen2で--opt-cross-module有効時に、ランタイム非同期インライナーのクロスモジュール情報を出力する際に発生していたOverflowExceptionとアサーション失敗を修正。根本原因はAsyncMethodVariantのCheck_IL_Bodyフィックスアップが正しく追跡されず、無効なオフセット値(int.MinValue)のキャストが例外を引き起こしていたこと。また、IL本体チェックに実装フラグ(miAsync・miSynchronized)を追加し、フラグのみ変わった陳旧なインライン展開を防止。

#134616 Build macOS Arm64 artifacts for M4 performance runs

@DrewScoggins・GitHub・area-Infrastructure

macOS Arm64上でのパフォーマンステスト実行(osx.26.arm64.m4.perf)向けに、CoreCLR パフォーマンスビルドのArm64アーティファクトを追加します。既存のクロスビルドおよびアーティファクトアップロードパスを再利用し、opt-inプラットフォームとしてosx_arm64をパフォーマンスビルドテンプレートに追加しています。

#134585 Disable implicit AIA fetching for Schannel credentials

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

Schannel認証情報の暗黙的なAIA(Authority Information Access)フェッチを無効化し、QUIC ハンドシェイク中の不要な遅延を削減するための変更です。キャッシュのみモード(cache-only)をSchannel認証情報フラグに追加し、MsQuic設定で適用することで、証明書チェーン取得時のネットワークアクセスを防ぎます。

関連Issue: #133645

#134582 Add ASP.NET end-to-end benchmarking skill and clarify microbenchmark scope

@adamsitnik・GitHub・tenet-performancearea-skills

ASP.NET Core エンドツーエンドベンチマーク実施スキルを追加し、既存の BenchmarkDotNet ガイダンスを microbenchmark に名称変更・狭義化しました。マイクロベンチマークは単一操作の計測に対し、ASP.NET ベンチマークは並行リクエスト/レスポンス処理下でのスループット、レイテンシ、CPU 使用率への影響を測定します。ローカル SDK オーバーレイ測定と外部 Crank 実行の両ワークフローをカバーし、PlatformBenchmarks と BasicMinimalApi の両実装での回帰防止を徹底します。

#134570 Preserve peer certificate chain in TlsSession

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

TLS セッションにおいて、ピア提供の中間証明書チェーンを PAL チェーン破棄前にキャプチャし、リユーザブル TlsContext での証明書の永続化を防ぎます。プラットフォーム PAL 間での一貫性確保のため、GetRemoteCertificates() からはリーフ証明書を除外し、プリコンフィグされたチェーンポリシーエントリを保存します。

#134527 [browser] Fix Debug-only startup failures: stack-first assert, incoming Module API, preRun function form

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

WebAssembly Browser での Debug ビルド限定の起動失敗を3つ修正するプルリクエストです。(1) -O0 emscripten の stack-first レイアウトでの Mono MT のスタック境界アサーション、(2) Emscripten の INCOMING_MODULE_JS_API 宣言の欠落による Module.wasmMemory エラー、(3) preRun がコールバック関数として渡された時の反復不可エラー。

#134466 JIT: Fix several range check correctness bugs

@EgorBo・GitHub・area-CodeGen-coreclr

JITコンパイラの範囲チェック(range check)と境界チェック(bounds check)における複数の正確性バグを修正します。論理右シフトの範囲計算、浮動小数点型キャストを通じた範囲伝播、オーバーフロー検出、およびARM64のインデックス拡張生成に関する4つの修正を含みます。

#134373 Prevent recursive ILLink generic dataflow

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

ILLink のジェネリック引数のデータフロー分析において、RequiresPublicMethods<Self> のような自己参照型シグネチャが無限再帰を引き起こす問題を修正します。反射可視メンバーのシグネチャ分析を「訪問済み」セットで追跡し、同一メンバーへの再帰的エントリをスキップすることで、無限ループを防止します。通常のマーキング、依存関係の記録、アノテーション処理は継続されます。

#134078 Implement ReadyToRunGenericHelperNode for WASM

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

WASMコンパイルでReadyToRunジェネリックヘルパースタブを生成できるよう、WASM固有の実装を追加しました。ディクショナリーおよび型コンテキスト検索、静的ベース・スレッド静的・デリゲート・ハンドルヘルパーをサポートし、無効なディクショナリーエントリはThrowUnavailableTypeにルーティングします。

#133987 Fix case-sensitive extraction on Windows

@iremyux・GitHub・area-System.Formats.Tar

TAR抽出時のパス検証で序数比較(Ordinal)を使用するように修正し、Windows上でのケース依存のパス抽出に関する問題を解決します。これまでプラットフォーム依存の比較が使用されていましたが、大文字小文字の異なるディレクトリが正しく処理されていませんでした。

#133195 Use also extended policy for looking up auth context

@wfurt・GitHub・area-System.Net

Windows HttpListener の認証セッション再利用ロジックを更新し、Extended Protection ポリシーをキャッシュされた NegotiateAuthentication コンテキストに組み込みました。カスタムデリゲートが実行される際に期待されたレベルをチェックするために、認証コンテキストに拡張属性を追加します。これにより、ハンドシェイク中にポリシーが変更される場合の不正なコンテキスト再利用を防止します。

#132752 Arm64-SVE: Support accessing unknown-sized Tier-0 locals from Tier-1 (OSR)

@snickolls-arm・GitHub・arch-arm64area-CodeGen-coreclrcommunity-contributionarm-sve

Arm64 SVE対応において、OSR(On-Stack Replacement)使用時にTier-0から割り当てられた未知サイズのローカル変数(Vector<T>など)へのアクセスをTier-1で正しく実行するための修正です。EEからのVector<T>のサイズ取得によりUnknownSizeFrameのサイズを計算し、VL(Vector Length)から各ベクトル/マスク変数の正確な仮想アドレスを導出してスタックオフセットを更新します。OSRはJIT専用機能のため、VLの読み取りが安全に可能という前提に基づいています。

#132245 Inline GC handle write barrier

@Copilot・GitHub・tenet-performancearea-GC-coreclr

GCハンドルの書き込みバリア(write-barrier)ワーカーをインライン化し、呼び出し元に直接統合することで、GC/EEインターフェースを変更せずにパフォーマンスを改善します。マイクロベンチマークではハンドル割り当て/解放操作が約15%高速化されました。

#130407 Tar tests deduplicate

@alinpahontu2912・GitHub・area-System.Formats.Tar

System.Formats.Tar テストスイートの重複排除リファクタリング。同期・非同期のテスト変数を分離した個別ファイルをマージし、単一のテスト定義内で bool async パラメータまたはループを使用して両方のコードパスをカバーするように統合しました。これにより、冗長な *Async* テストファイルを削除し、テストの保守性と実行効率を改善します。

2026年09月29日 (32 PRs) この日のページ →

#134868 Use CryptoKit for recovering public key from private EC keys on macOS

@vcsjones・GitHub・area-System.Securityos-mac-os-xtenet-performance

macOSで秘密鍵スカラー値のみから公開鍵を導出する際にCryptoKitを使用するよう統一しました。従来のPKCS#8ラウンドトリップ方式を廃止し、iOS/tvOSと同じCryptoKit実装に統合することで、CPU時間とメモリ使用量を大幅に削減します。P256で約590倍、P384で約336倍、P521で約160倍の高速化を実現しました。

#134861 Remove allocation assertion from Runtime_134605 regression test

@jakobbotsch・GitHub・area-CodeGen-coreclr

Runtime_134605 リグレッションテストから割り当てアサーション(allocation assertion)を削除します。このテストは不正なコード生成を検証するものであり、条件付きエスケープ分析(conditional escape analysis)の実際の動作検証は不要です。さらに、インタープリターなど条件付きエスケープ分析が期待されない設定が複数存在することから、このアサーションは削除されました。

#134835 Reduce CoreCLR C++ exception cleanup overhead

@davidwrighton・GitHub・area-VM-coreclr

CoreCLRのC++例外処理のオーバーヘッドを削減するため、非スロー関数にnoexcept契約を追加し、WASMコンパイラフラグ-fassume-nothrow-exception-dtorを導入しました。これにより、std::terminate呼び出しのためだけに存在する例外リージョンをコンパイラが削除できます。主な対象はメタデータ列挙/解放、例外処理、GCモード復元、スレッドロック、フレーム展開、PALリソース解放、実行可能ファイル割り当て解放、ホルダートレイトです。

#134827 [cDAC][wasm] Map portable entry points to interpreter code and R2R virtual IPs

@lewing・GitHub・arch-wasmarea-Diagnostics-cdac

FEATURE_PORTABLE_ENTRYPOINTS対象(WebAssembly)において、メソッドのエントリポイント スロットが保持するPortableEntryPointアドレスを診断ツール向けに正しく変換する機能を追加しました。これまでcDACが生のアドレスを返していたため、SOS値やrejit/DBI経由のパスで、インタープリタ型およびR2R型メソッドのアドレスがExecutionManagerを通じて解決できない問題を修正します。

#134826 [wasm] Generate thunks for unmanaged calli signatures and allow thiscall

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

WebAssembly CoreCLR環境でアンマネージドcalli署名のthunk生成を追加し、thiscall呼び出し規約のサポートを実装しました。これにより、ブラウザ向けのCallconv テスト(CdeclMemberFunction、StdCallMemberFunction、PlatformDefaultMemberFunction、ThisCall)が機能するようになり、以前disableされていた4つのテストが再度有効化されます。

#134823 Fix NativeAOT nullable isinst branch elimination

@agocke・GitHub・area-NativeAOT-coreclr

NativeAOTコンパイラのisinst Nullable<T>命令に関する不正なブランチ削除を修正します。Nullable<T>のMethodTableが構築されていない場合でも、成功ブランチを到達不可能と誤って判定されるのを防ぎます。IL生成と依存スキャンの一貫性を保ちながら、ジェネリックnullable型テストのブランチをNativeAOT環境で正常に処理できるようにします。

#134783 Speed up RuntimeType.GetHashCode

@EgorBo・GitHub・area-System.Runtime

RuntimeType.GetHashCodeのパフォーマンスを向上させるため、CoreCLRでType型ハンドルベースのハッシュ計算を導入しました。COM型(CLSID)のID保持要件に対応し、Monoランタイムの既存の同一性ハッシング実装は維持されています。

#134758 JIT: don't fall through from a Wasm callfinally across a try_table end

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

WebAssemblyにおいて、genCallFinallyがtry_table終了境界を越えたfall-throughを不正に許可していた問題を修正。try_table間隔の終了時にcallfinally継続へのブランチが省略されると、コードジェネレーションが検証用のunreachableを発行し、実行時にRuntimeError: unreachableでトラップしていた。特に非同期メソッド内の大規模finalize関数を含むユーザーtry/catch/finallyパターンで発生していた。

#134756 [cDAC][wasm] Map portable entry points to interpreter code and R2R virtual IPs

@lewing・GitHub・arch-wasmarea-Diagnostics-cdac

WebAssembly上のFEATURE_PORTABLE_ENTRYPOINTSをサポートするため、cDACがポータブルエントリーポイントをインタープリター実行またはR2R仮想IPに正しくマップする機能を追加しました。これまでネイティブコード側でマップしていた処理をcDAC側に実装し、SOS値やDBI診断パスが正しいアドレスを報告するようにします。

#134754 [wasm][R2R] Map state machine MoveNext method ids to virtual IPs

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

Wasm ReadyToRun環境でのAsync状態機械のProfiler呼び出しスタックフレーム解決を修正します。PortableEntryPointのコードをWasm関数テーブルインデックスから診断用仮想IPへマッピングする共有ヘルパーGetDiagnosticCodeStartFromEntryPointを導入し、EventPipeとRuntimeMethodHandle_GetNativeCode間で再利用することで、非同期プロファイラーがWasm ReadyToRun上の状態機械フレーム名を正しく取得できるようにします。

#134735 Remove internal DisableDynamicEngine switch from feature switch docs

@ZainnQureshii・GitHub・linkable-frameworkarea-Extensions-DependencyInjectioncommunity-contribution

ドキュメント内の誤った内容を削除するPRです。Microsoft.Extensions.DependencyInjection.DisableDynamicEngineフィーチャースイッチに対応するDisableDependencyInjectionDynamicEngine MSBuildプロパティがドキュメントに記載されていますが、このプロパティは実装上存在せず、設定しても効果がありません。内部的なスイッチとしてのドキュメント記載は削除されるべきであるという前回のレビュー指摘が反映されていなかったため、該当する行を削除します。

#134718 JIT: Remove GTF_DEBUG_NODE_MORPHED tracking

@EgorBo・GitHub・area-CodeGen-coreclr

JITコンパイラのGTF_DEBUG_NODE_MORPHEDフラグとそれに関連するデバッグ追跡機構を削除するクリーンアップです。このフラグはデバッグ時のみの診断補助でしたが、実際には保守負担となっていたため、フラグ、関連メソッド(SetMorphed/WasMorphed/ClearMorphed)、ノード単位のmorph計数、追跡ウォーカー、デバッグダンプ処理を削除しながら、実際のmorphing機構とアサーション伝播は保持します。

#134690 Disable unused ReadyToRun metadata on WebAssembly

@davidwrighton・GitHub・area-VM-coreclr

WebAssemblyビルドでは実際に消費されないReadyToRun(R2R)メタデータの生成と読み込みを廃止する変更です。インライン追跡機能をプロファイリング、ReJIT、コードバージョニング機能に依存させ、WebAssemblyビルドでは無効化。Browser/WASIイメージからインライン情報とデバッグ情報をデフォルトでストリップします。

#134676 [wasm][R2R] Fix generic context / async continuation order in Wasm interpreter thunks

@lewing・GitHub・arch-wasmarea-ReadyToRun

Wasm インタープリタースタンブにおいて、共有ジェネリック非同期メソッドの呼び出し時に、ジェネリックコンテキストと非同期継続の引数スロットが入れ替わっていた問題を修正しました。RaiseSignatureがコンテキストを隠し先制化引数として正しく扱うよう改善し、3つのスタンブ(WasmR2RToInterpreterThunkNode、WasmInterpreterToR2RThunkNode、WasmImportThunk)の引数レイアウトを共通化して、整合性を確保しました。

#134675 Run SOS tests on Helix across cDAC platforms

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

SOS(Son of Strike)テストをHelix上で実行するCI/CDパイプラインを再構築するもので、廃止予定のローカルエージェントSOS テストジョブをdotnet/diagnosticsのSOS.Tests Helixハーネスに置き換えます。cDAC(Compact DAC)ダンプテストと同じ8プラットフォームでSOS カバレッジを実行し、レガシーDACとcDACの両方に対応します。各プラットフォームで既存のCdacBuildArtifactsを再利用し、プライベートランタイムとプライベート統合cDACバイナリをSOSの横にコピーします。

#134666 [JIT] [wasm]: Compare TYP_REF references directly with null using i32.eqz

@adamperlin・GitHub・area-CodeGen-coreclr

WebAssembly JITコンパイラの null チェック最適化。オブジェクト参照(TYP_REF)でオフセットがない場合、i32.eqz を使用してゼロとの直接比較で null チェックを実行するよう改善しました。byref/int型参照やオフセット/インデックス付きアドレスに対しては従来の i32.le_u による範囲比較を維持しています。

#134637 Minor tweaks to CoreCLR type-loader WebAssembly code generation

@jkoritzinsky・GitHub・area-VM-coreclr

WebAssembly対象のCoreCLR型ローダーのネイティブコード生成を最適化します。ClassLoader::CreateTypeHandleForTypeDefThrowingとそのCalleeで識別された冗長なネイティブ処理と例外処理スカッフォルディングを削減し、既存の不変式をオプティマイザーにより明確にします。型検証とクリーンアップは保持されます。

#134507 Dispatch Mono [JSExport] by handle

@pavelsavara・GitHub・arch-wasmarea-System.Runtime.InteropServices.JavaScriptos-browser

Mono と CoreCLR の [JSExport] ディスパッチを統一し、両者が integer ハンドルベースの managed table を経由して export をルーティングするようにしました。従来 Mono は MonoMethod* ポインタを JS 側の閉包に保持していましたが、CoreCLR のアプローチに統一することで、重複排除とシグネチャ変更の診断を改善しています。[JSImport] スタブから Unsafe.SkipInit は削除されず、AllowUnsafeBlocks の要件は変わらないため互換性が保たれています。

#134398 Prevent CI scan duplicates after inconclusive lookups

@kotlarmilos・GitHub・area-skills

CI失敗スキャンにおける重複Issue検出の精度向上を目的とした変更です。Knowledge Base Entry(KBE)作成指示の更新により、完全なルックアップ結果と作成者メタデータを保持し、結論に至らないIssue/PR検索後は新規Issueの作成を停止するようにしました。また、閉鎖された重複Issueが再度発生した場合、重複リンクをたどって元のKBEを参照するよう改善されています。

#134355 [wasm][coreclr] Dispatch R2R-compiled UnmanagedCallersOnly callbacks to their native entrypoint

@pavelsavara・GitHub・arch-wasmarea-CodeGen-Interpreter-coreclr

WebAssembly上のpartial ReadyToRun環境において、[UnmanagedCallersOnly]属性でマークされた外部公開コールバックが、インタープリタパスを迂回して直接R2Rネイティブエントリポイントにディスパッチされるように修正しました。従来はnull interpreter bodyやinterp-to-R2Rパスのエラーが発生していたものを、原子操作によるキャッシュを用いた直接ディスパッチと、フォールバックパスの組み合わせで解決します。

#134313 Pool TLS 1.3 session tickets per host instead of keeping one

@wfurt・GitHub・area-System.Net.Securityos-linux

Linux上のOpenSSL TLS 1.3クライアントセッションキャッシュを改善するPRです。従来は1ホストあたり1つのセッションチケットのみを保持していましたが、TLS 1.3では同一チケットを複数回使用できないという制約があるため、複数チケット(最大8個)をプールして保持するように変更しました。これにより並行接続時のセッション再開成功率が向上し、キャッシュ同期の問題とロック順序の問題も解決されます。

#134048 JIT: Defer physical promotion readbacks across basic blocks

@jakobbotsch・GitHub・area-CodeGen-coreclr

物理プロモーションの最適化により、構造体パラメータなどの昇格されたローカル変数から、基本ブロック間でのフィールド読み戻しを遅延させます。RPO(逆ポスト順序)での処理追跡と、プロファイルガイド最適化(PGO)を活用した配置により、不要な読み戻し挿入を削減し、メモリオーバーヘッドを軽減します。

#133986 Add GC support for external memory handles

@jkoritzinsky・GitHub・area-Diagnostics-coreclr

GCが管理するヒープ外やスタック外に存在する管理対象参照を追跡するため、AppDomain管理の外部メモリハンドル機能を追加しました。この機能により、デバッガーのfunc-eval(関数評価)結果とDAC/cDAC経由での参照追跡が可能になります。主な実装は、GCスキャン、DAC列挙、ポインタ解析、およびbyref-like型のfunc-eval結果の保護を含みます。

#133958 [aw] Add trusted KBE search eval support

@vitek-karas・GitHub・area-skills

CI評価スキャナー向けに、信頼できるKBE(Knowledge Base Engine)問題検索評価サポートを追加します。リポジトリスコープのKBE問題検索ラッパー、候補読み取りグレーダー、フォーカステストを実装し、CI/CD評価ワークフローに統合しています。これは#133684の前提条件となります。

#133622 Use metadata APIs in AssemblyChecker

@jkoritzinsky・GitHub・area-ReadyToRun

AssemblyCheckerツールのデバッグアセンブリ検出ロジックを、MetadataLoadContextからSystem.Reflection.MetadataのAPIを使用した直接的なメタデータ検査に変更しました。これにより、アセンブリの依存関係を解決する必要がなくなり、System.Reflection.MetadataLoadContextパッケージ依存を削除できます。

#133571 Fix combined ActiveIssue restrictions in runtime test wrappers

@Copilot・GitHub・area-Infrastructure

xUnit テストラッパージェネレーターの ActiveIssue 属性フィルタリングロジックを修正し、複数制約(プラットフォーム、ターゲットフレームワーク、ランタイム)が論理積(AND)で評価されるようにしました。従来は制約のいずれかがマッチすると無条件にテストをスキップしていましたが、すべての制約をマッチさせることで正確な条件付きスキップを実現します。また calli_excep.il に Windows 専用制約を追加し、Linux での kernel32 依存性による DllNotFoundException を解決しています。

#133265 [wasi] Enable CoreCLR WASI composite ReadyToRun publishing

@lewing・GitHub・arch-wasmarea-ReadyToRunos-wasi

WASIプラットフォーム上でCoreClrのComposite ReadyToRun (R2R)出版を有効にする機能です。Crossgen2を用いて、アプリケーションとフレームワークをコンポジットR2Rイメージに編集し、WASIホストに埋め込むパイプラインを実装します。WebCILの自己インストール機能を活用し、wasm-toolsとBinaryenを使用してリンク後の統合とグローバル最適化を行います。

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

#134782 JIT: initialize tracked-local counts before liveness

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

JITコンパイラのフローグラフ最適化前に、トラッキング対象のローカル変数数とビットセットサイズを初期化するように修正しました。これにより、早期フローグラフ最適化でlive-outセットにアクセスする際の不変性を保証します。ブロック圧縮時にプリ・ライブネス不変性のアサーションを追加し、インライニング後の圧縮を実行する回帰テストを追加しました。

#134774 Ensure type loader templates for interface dispatch cells

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

NativeAOTのインターフェース ディスパッチにおいて、型ローダーテンプレートの計算時に正規化されたジェネリック型の情報が失われるバグを修正します。IEnumerable<Foo<T__Canon>>がIEnumerable<__Canon>に正規化される際、ネストされたジェネリック型Foo<T__Canon>のテンプレートが必要であることが見落とされていました。インターフェース分散との相互作用により顕在化したレグレッションです。

#134767 [Apple][Android][CoreCLR] Don't pass the program path as managed args[0]; quarantine newly running runtime tests

@lewing・GitHub・area-Infrastructure-coreclros-androidos-iosos-tvosos-maccatalyst

Apple(iOS、maccatalyst、tvOS)およびAndroid上のCoreClr環境で、管理引数の処理が不正であったため、すべてのランタイムテストがスキップされていた問題を修正します。Apple/Androidホストが実行可能ファイルパスをargv[0]に含めて渡していましたが、corerunおよびdotnetホストと同じく引数のみを渡すように変更。同時にモバイルテストアプリでのF#テストの失敗を解決するため、FSharp.Coreをバンドルし、インタープリタおよびReadyToRun検出の構成を修正しました。

#134765 [wasm][R2R] Re-enable open virtual delegate runtime tests

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

WebAssemblyのReadyToRun (R2R)環境において、開いた仮想デリゲート(open virtual delegate)を使用するJIT回帰テストを再度有効化するPRです。PR #134699で修正されたポータブルエントリポイント検証の問題により、インターフェースメソッドに対する開いた仮想デリゲートのディスパッチが正常に動作するようになりました。

#134760 [browser][trimmed] Fix DI generic constraint tests conflicting with trimmability validation

@lewing・GitHub・area-Extensions-DependencyInjection

PublishTrimmedが有効な場合、DependencyInjection(DI)のtrimmability検証機能がデフォルトで有効になり、テストケースが意図的に使用していたオープンジェネリック登録がバリデーションエラーで拒否される問題を修正します。DIテストプロジェクトで検証機能をオプトアウトし、明示的に検証が必要なテストのみRemoteExecutorで有効化することで、トリミング互換性を保証しながらテストカバレッジを維持します。

#134759 [browser][CoreCLR] Root UnloadableAssembly so trimmed builds keep it for AssemblyGetForwardedTypesLoadFailure

@lewing・GitHub・arch-wasmarea-System.Reflectionlinkable-framework

ブラウザの積極的なトリミング(aggressive trimming)ビルドにおいて、AssemblyGetForwardedTypesLoadFailureテストが失敗する問題を修正します。ILLinkがtype forwarderの参照先であるUnloadableAssemblyを削除していたため、GetForwardedTypes()が予期されたBadImageFormatExceptionではなくファイル不在エラーで失敗していました。ILLink.Descriptors.xmlでUnloadableAssemblyをroot化することで、ReferenceAssemblyAttributeとともに保持されるようにしました。

#134738 Avoid Type.GetTypeCode in ConcurrentDictionaryTypeProps.IsWriteAtomicPrivate

@EgorBo・GitHub・area-System.Collections

Type.GetTypeCode(typeof(T))の呼び出しがILC(Intermediate Language Compiler)のスキャナーで折りたたまれていなかったため、値型の型情報に関連する不要なメタデータやコードがNativeAOTバイナリに含まれていました。この変更により、ConcurrentDictionaryTypeProps<T>.IsWriteAtomicPrivateの実装を見直し、NativeAOTバイナリサイズを約70 KB削減(Linux環境で180 KBのサイズギャップのうち約70 KBを改善)しています。

#134688 Disable HPKE ECDH NIST curves on Android

@vcsjones・GitHub・area-System.Security

AndroidプラットフォームでHPKE(Hybrid Public Key Encryption)の楕円曲線ディフィ・ヘルマン(ECDH)NIST曲線実装を無効化します。AndroidのECDiffieHellman実装が秘密鍵dから公開鍵Qを回復できないために、テストが失敗していた問題に対処しています。X25519DiffieHellmanは引き続き有効です。

#134635 Simplify single-threaded CoreCLR locks in Release builds

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

単一スレッド環境(WASM)における CoreCLR ロック操作の最適化。Release ビルドで Crst と DeadlockAwareLock を特殊化し、不要なマルチスレッド対応コード(GC モード遷移、スレッド間デッドロック追跡など)を削除。FEATURE_MULTITHREADING が定義されていない単一スレッド Release ビルドではロック操作をインライン no-op に簡略化し、メモリフットプリントと実行時オーバーヘッドを大幅に削減。マルチスレッド構成と Debug ビルドは既存実装を保持。

#134312 [wasm] Make CoreCLR WebCIL images self-installing (wrapper version 2)

@lewing・GitHub・arch-wasmarea-ReadyToRun

WebAssembly向けのCoreClR WebCILイメージを自己インストール可能に変更し、WASI R2R有効化を簡素化します。パッシブセグメント方式から、ホスト提供の基本グローバルを使用するアクティブセグメント方式へ移行し、WebCILラッパーバージョン2を導入します。インスタンス化時にエンジンが自動的にペイロードと関数テーブルをインストールするため、ホスト側の手動インストール処理は不要になります。

#133457 Prevent dual-mode accept tests from hanging

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

macOSにおいて、デュアルモードソケットの受け入れテストがアドレスファミリー不一致時に無限待機する問題を修正しました。PortBlockerに明示的なシャドウアドレス対応を追加し、失敗予定の接続をTryConnectでバウンド化し、有効な同一ファミリーの接続を事前キューイングすることで、ソケット破棄に依存せず正常に完了するよう改善しています。

#133222 Use hidden arguments for NativeAOT thunks

@jkotas・GitHub・area-NativeAOT-coreclr

NativeAOTのthunk処理において、TLS(Thread Local Storage)ベースのコンテキスト受け渡しを、RyuJITがサポートするSecretStubArgument(隠しパラメータ)に置き換える変更です。これにより、アーキテクチャ固有のアセンブリコード量を削減できます。委譲インターフェース呼び出しやPInvoke thunkで隠しコンテキストパラメータが渡されるようになります。

#131952 Reduce weak ref blocking with java interop

@BrzVlad・GitHub・area-GC-coreclr

Android Java相互運用性におけるブリッジオブジェクト処理中の弱参照ブロッキングを削減します。オブジェクトヘッダーの未使用ビットをBIT_SBLK_BRIDGE_PENDINGとして再利用し、Java側処理待ちのブリッジオブジェクトのみマーク。弱参照解決時に、ブリッジ処理全体の完了を待つのではなく、対象オブジェクトが現在処理中かどうかをチェックして条件付きでのみブロックします。

2026年09月27日 (5 PRs) この日のページ →

#134752 [wasm][coreclr] Re-enable VT callconv tests on browser

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

WebAssembly(browser-wasm)のCoreClrにおいて、TypeLoadExceptionの原因となっていた#127426の問題が解決されたため、それまで追加されていたブラウザ環境向けのテスト除外属性を削除し、5つのVT呼び出し規約テストを再度有効化します。変更は除外属性の削除のみで、テストコード本体は#127438前の状態に完全に復元されます。

#134750 Fix NRE in dynamic multi-dim array indexing under trimming

@lewing・GitHub・area-Infrastructure-libraries

トリミング時に動的多次元配列インデックス操作で NullReferenceException が発生する問題を修正しました。C#ランタイムバインダーが動的配列インデックスを処理する際、リフレクションで Expression.ArrayIndex(Expression, Expression[]) メソッドを検索しますが、トリマーが未使用と判定して削除してしまい、検索結果が null になることが原因です。[DynamicDependency] 属性を追加してこのメソッドをトリミング時に保持させることで対応しました。

#134699 [interpreter] Resolve open virtual delegates invoked through the shuffle thunk (wasm, Apple mobile)

@lewing・GitHub・arch-wasmos-maccatalystarea-CodeGen-Interpreter-coreclr

interpreter を使用するプラットフォーム(browser-wasm、macOS/iOS/tvOS)で、オープン仮想デリゲートをコンパイル済みコードから呼び出した際に発生するクラッシュを修正します。問題は IL shuffle thunk が CID_VirtualOpenDelegateDispatch を calli 経由で呼び出す際、隠し引数(arm64 の x11、wasm の portable entry point)が正しく渡されていないことが原因でした。

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

#134689 [wasm][coreclr] Strip R2R debug info by default for browser-wasm publish

@lewing・GitHub・area-ReadyToRun

browser-wasm向けCoreClR ReadyToRun(R2R)発行時に、crossgen2に--strip-debug-infoフラグを既定で渡し、R2Rデバッグ情報(ネイティブ-IL オフセットマップと変数ロケーション)を削除することで配布イメージサイズを削減します。PublishReadyToRunStripDebugInfo=falseで無効化できます。また、crossgen2引数の変更が古いR2Rイメージを無効化するよう改善されました。

#134686 [wasm][RyuJIT] Restore __stack_pointer in reverse P/Invoke epilogs

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

WebAssembly逆P/Invoke(UnmanagedCallersOnly)メソッドのエピログで、__stack_pointerグローバル変数を正しく復元するための修正です。R2Rコードがインライン化されたP/Invokeを実行する際、__stack_pointerがスタレな状態のまま復帰していたため、ネイティブABIが破損していました。エピログで__stack_pointerを呼び出し元の値に復元することで問題を解決します。

#134682 Support private scalar-only imports on iOS

@vcsjones・GitHub・area-System.Security

iOS/tvOS/MacCatalyst上でEC秘密鍵(スカラー値dのみ)のインポートサポートを実装しました。CryptoKitの利用可能化により、プライベートスカラーのみからの公開鍵導出が可能になりました。これにより、HPKEの統合テストがAppleモバイルプラットフォームで機能するようになります。

#134658 JIT: handle redefined enumerators in conditional escape analysis

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JIT条件付きエスケープ分析(Conditional Escape Analysis)でエニューメータローカル変数が複数の定義を持つ場合の処理を修正。RPOウォークで後続の定義が保護されたユースに到達する可能性がある場合、早期のクローン候補を棄却しながら、支配された順序の再定義は保持する改善。Issue #134605を解決。

#134644 JIT: Type implicit byref args as TYP_I_IMPL

@EgorBo・GitHub・area-CodeGen-coreclr

JITコンパイラが暗黙的なbyref引数の型付けをTYP_BYREFからTYP_I_IMPLに変更し、GCヒープに存在しないため不要なGCレポートと書き込みバリアを削減します。ただし、async メソッドの場合はTYP_BYREFを保持します(再開時にストレージが変わるため)。また、戻り値バッファをnull非許容として扱い、書き込みバリア選択時にfgAddrCouldBeHeapを使用します。

#134606 [wasm][coreclr][R2R] Publish existing method bodies before interpreter fallback

@lewing・GitHub・arch-wasmtenet-performancearea-ReadyToRun

ブラウザ向けWasm環境でのReadyToRun(R2R)固定化プロセスを改善し、ExternalMethodFixupWorkerが非仮想メソッドインポートセルをパッチする前に、標準的なShouldCallPrestub()/DoPrestub()パターンでターゲットメソッドを準備するようにしました。これにより、既存のプリコンパイル済みR2Rボディをインタープリタースタブではなく直接呼び出し、クローズド汎用MethodSpecインポートが最適化された完全特殊化ボディを利用できるようになります。

#134360 Fix concurrent publication of interface GUID cache entries

@Copilot・GitHub・area-VM-coreclr

CoreCLRのインターフェースGUID キャッシュ公開時に、ペイロード初期化とメモリ順序付けが不適切であり、ComWrappers登録後に読み取りスレッドが未初期化のIIDをQueryInterfaceに渡す可能性がありました。本修正はVolatileStore/VolatileLoadを使用して、GUIDと生成分類の両方が消費前に可視化されることを保証します。

#134354 Add interface-selecting ComWrappers overloads

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

COM相互運用性を簡素化するため、ComWrappersに特定のCOM インターフェースを取得する便利なオーバーロードを追加します。手動でQueryInterfaceやラッパー作成・参照クリーンアップを行う必要がなくなります。

Guid ベースおよびジェネリックオーバーロード(AOT対応メタデータ検索付き)により、呼び出し元所有のインターフェース参照を返します。

nint ifoo = wrappers.GetOrCreateComInterfaceForObject<IFoo>(
    foo, CreateComInterfaceFlags.None);
// 使用後は ifoo を Release する

#134281 Fix type-event cache lifetime race during tracing

@steveisok・GitHub・area-VM-coreclr

CoreCLRのイベントトレーシング機能における型キャッシュのライフタイム管理に関連する競合状態を修正しました。GetHashCrst()クリティカルセクション内でキャッシュアクセスを保持し、ロック解放後のポインタ参照を防ぎます。トレーシング無効化やコレクション可能なモジュールのアンロード中に、ロギングスレッドがキャッシュオブジェクトを使用している場合のUse-After-Freeを回避します。

#133917 [cDAC][wasm] Resolve ReadyToRun virtual IP ranges

@lewing・GitHub・arch-wasmarea-Diagnostics-cdac

cDAC(CoreCLR Diagnostic Access Component)の WebAssembly ReadyToRun 仮想IP解決をランタイムの既存モデルと一致させるための修正。主な変更は、ExecutionManager::s_pVirtualIPRangeList をデータディスクリプタ経由で公開し、サイクル検出と65,536ノード予算付きの境界安全なリスト走査により仮想IPを解決。WASM funclet フラグをマスクして正確な関数アイデンティティを保証し、仮想コードベースと読み込み済みイメージベースを分離。WASM形式の実際の descriptor(hot/cold メタデータとdelay-load thunkメタデータが不在)に対応。

Bot PRs (1 PRs)

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

#134672 Allow whitespace after leading numeric signs and parentheses

@tannergooding・GitHub・area-System.Numerics

NumberStyles.AllowLeadingWhiteが設定されているときに、先頭の符号または開き括弧の直後のホワイトスペースを許可する機能を実装しました。これにより、末尾のホワイトスペース処理と一貫性を持たせています。整数パースは高速パスを維持しながら、符号後のホワイトスペースには共有パーサーを使用し、16進浮動小数点パース処理も調整しています。

// 例:AllowLeadingWhiteが設定されている場合
int.Parse("  +  123", NumberStyles.AllowLeadingWhite); // 許可
int.Parse("  (  123", NumberStyles.AllowLeadingWhite); // 許可

#134667 Use shared networking timeout in WebSocket tests

@MihaZupan・GitHub・area-System.Net

WebSocketテストのタイムアウト設定を改善するPRです。複数のテストが独立した短いタイムアウト期限(5秒)を使用していたため、遅いCI環境でテストが失敗していました。共有されているネットワーク用タイムアウト定数TestHelper.PassingTestTimeout(60秒)に統一することで、CI環境での信頼性を向上させます。

#134648 [perf] Cache validated W3C tracestate per-thread

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

ValidateTraceStateメソッドが毎回W3C tracestateを再解析していた問題を解決します。単一の受信リクエストから複数の送信呼び出しが発生する場合、同じ値に対して何度も同じ解析処理が繰り返されていました。本変更では、スレッドローカルなキャッシュを追加し、前回の呼び出し時の入出力ペアを保持することで、値が変わっていない場合の再解析をスキップします。

#134647 [perf] Add fast path for unescaped W3C baggage

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

W3C baggage値のデコード処理において、パーセント符号化を必要としない一般的なASCII値に対する高速パスを追加しました。EncodeBaggageValue()をミラーする形で実装し、エスケープされていない値はValueStringBuilderを使用せず直接返すことで、メモリ割り当てを回避しながもパフォーマンスを向上させています。

#134634 JIT: Preserve SIMD operand order before morph

@tannergooding・GitHub・area-CodeGen-coreclr

SIMDのConcatUpperUpperと可変インデックスシャッフル生成時にオペランドの順序を入れ替える処理で、GTF_REVERSE_OPSフラグがmorph中のソース評価順序を保持していない問題を修正します。gtPrepareOperandsForReorderingを使用してオペランドを一時変数とGT_COMMAで順序付けし、評価順序の変更が観測可能な場合のみ実行します。既存のSIMD命令形式を維持し、HWイントリンシクがreverse フラグなしでmorphに到達することをアサートで確認します。

#134624 JIT: Make multiple try entries in an SCC an implLimitation in fgwasm

@adamperlin・GitHub・area-CodeGen-coreclr

WebAssembly JIT コンパイル時に、単一の Strongly Connected Component (SCC) 内に複数の try エントリ ヘッダが存在する場合の処理を変更します。従来は NYI (Not Yet Implemented) アサーションで失敗していましたが、実際のコードで発生するため、実装制限として処理するよう修正しました。Microsoft.Diagnostics.NETCore.Client の CrossGen2 コンパイル失敗を解決します。

#134615 [cDAC] Clear cached contract state on flush

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

cDAC(Common Data Access Component)の契約インスタンスがターゲットの状態変化後に古いポインタを保持する問題を解決します。新たに導入される CachedValue<T> により、遅延初期化された契約状態をキャッシュしながら、Target.Flush 時に確実にリセットします。これにより、実行再開後やターゲットスナップショット変更時にも値が正しく再読み込みされます。

#134613 Fix scheduled WASM extra-platforms job selection

@radekdoulik・GitHub・arch-wasmarea-Infrastructure

スケジュール実行される runtime-extra-platforms パイプラインにおいて、WASM関連ジョブの選択ロジックが誤動作していた問題を修正。ネストされたテンプレート展開時に環境変数 variables.isRollingBuild が利用不可のため、WASM固有のブランチが誤って選択されていた。明示的なテンプレートパラメータ isExtraPlatformsBuild と isWasmOnlyBuild を使用することで、正しいジョブ選択を実現。

#134560 JIT: Track AVX state from register-producing widths

@tannergooding・GitHub・area-CodeGen-coreclr

JIT コンパイラの AVX 状態追跡を改善し、レジスタ生成幅に基づいて正確に AVX 上位状態を追跡するようにしました。これにより不要な vzeroupper 命令を削除しつつ、以前見落とされていたワイドロード、コピー、整数除算の中間値を考慮します。

主な変更:

  • アロケータ挿入のスピル/リロードおよび実際のローカルレジスタコピーを考慮
  • unsafe-widening/extraction コピーを定義されたソース幅または必要な結果幅に縮小し、整数ベクトル除算で XMM ゼロイングを使用
  • 既存の call/prolog/epilog クリアリング ポリシーを保持

#134530 Avoid repeated SIMD mask proof traversal in value numbering

@tannergooding・GitHub・area-CodeGen-coreclr

JIT値番号付けにおけるSIMDマスク証明の指数時間探索を最適化しました。短い鎖状の参照グラフで同じマスク値番号が複数の経路から参照される場合、証明プロセスが部分グラフを何度も再探索していた問題を修正します。クエリごとのマスク証明キャッシング、64段階の再帰カットオフ、定数チェックの前処理によって対応。また、操作数のVNペアが一致する場合は組み込み関数の評価結果を再利用します。

#134497 [wasm][R2R] Root interpreter thunks for closed static delegate targets

@pavelsavara・GitHub・arch-wasmarea-ReadyToRun

WebAssemblyのR2R(Ready-to-Run)コンパイルにおいて、クローズド静的デリゲートターゲットへのインタープリタサンク(thunk)ルーティングを修正します。デリゲート呼び出しサイトのインスタンスシグネチャと、バインドされたオブジェクトを明示的な第1パラメータとして受け取る静的ターゲットのシグネチャが異なるため、対応するインタープリタサンクが見つからずに実行時エラーが発生していた問題を解決します。

#134490 JIT: Improve Wasm PEP calls

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

WebAssemblyのPEP(Platform Exception Propagation)呼び出し生成を最適化します。マネージドPEP呼び出しターゲットのWasm local を最終PEP引数と間接呼び出しターゲットの両方に再利用することで、shadow stack への不要なアクセスを削除し、コード生成パスを統一しました。System.UInt32.GetHashCodeの例では、メソッドサイズが116バイトから105バイトに削減されています。

#134426 Use MoveToImmutable for ImmutableArray<T>.Builder in ILCompiler.Compiler

@prozolic・GitHub・linkable-frameworkcommunity-contributionarea-Tools-ILLink

ILCompiler.CompilerにおけるImmutableArray<T>.Builderの使用パターンを最適化するPRです。ToImmutable/ToImmutableArrayからMoveToImmutableへの切り替えと、ビルダーに初期容量を指定することで、バッキング配列の再割り当てとImmutableArray<T>作成時の余分なコピーを削減します。また、ReflectionMethodBodyScannerのLINQ Skip(1)をCollectionsMarshal.AsSpanとSliceで置き換えます。

#134228 [Tests] Add deterministic InProc Crash Reporter tests

@mdh1418・GitHub・area-Diagnostics-coreclrarea-Infrastructure

CoreCLRのインプロセスクラッシュレポーターに対する決定論的なコンポーネントテストスイートを追加します。マネージドハーネスとネイティブドライバ(PAL/レポーター機能をリンク)を組み合わせ、シグナルパス報告とオンデマンド報告の両形式を検証します。Unix、Android、Apple Mobileプラットフォーム向けのテスト(RichSigsegv、Abort、StackOverflow、ConsoleOnly、OnDemand)で、JSON出力、テキスト出力、並行リクエスト処理、失敗復旧を網羅的にテストします。

#134108 [wasm][R2R] Fix closed static delegate struct returns

@lewing・GitHub・arch-wasmarea-ReadyToRun

WebAssembly ReadyToRun環境において、クローズドスタティックデリゲートが構造体を返す際の問題を修正します。問題の根本原因は、デリゲート呼び出しの引数レイアウト(キャプチャされたターゲットと戻り値バッファ)がWasm ABIの期待する順序と異なり、ポインタ引数としてi32に低下するため型検証は通るものの、引数が暗黙的に入れ替わり、オブジェクト参照を含む構造体が不正な値を返していました。修正では、パラメータを交換する専用のWasm適配器(WasmClosedStaticRetBufThunkNode)をCrossgen2が生成し、ランタイムがキャッシュして使用することで、正しい呼び出し規約を確保します。

#133934 Simplify floating-point integer classification

@tannergooding・GitHub・area-System.Numerics

浮動小数点数の整数分類(IsEvenInteger、IsOddInteger)をスカラー・SIMD・JIT実装全体で簡素化し、切り詰め残差比較に置き換えました。非有限入力はNaN残差を生成して偽を返すようになります。またSingle.RootNとDouble.RootNの奇数根における負数のパリティ処理を修正し、ベクトル対数の特殊値マスク処理を更新しました。

#133304 Implicit byref arguments are never on the GC heap

@EgorBo・GitHub・area-CodeGen-coreclr

インプリシット byref 引数(暗黙的に参照渡しされるスタラクト)が確実に GC ヒープ上に存在しないことを保証する変更です。これにより、呼ばれた側がこれらのスタラクトへの書き込みに際してライトバリア(write barrier)の発行をスキップでき、生成されるコード量と実行コストが削減されます。

例えば、16バイトの S16 スタラクトに対する書き込みは、ライトバリア呼び出しなしの直接メモリ書き込みになり、コードサイズが32バイトから19バイトへ削減されます。

struct S16 { public object A; public object B; }

[MethodImpl(MethodImplOptions.NoInlining)]
static void Store(S16 s, object o) { s.A = o; Sink(ref s); }

#132721 Interpreter block-count PGO for WebAssembly CoreCLR

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

WebAssemly上のCoreClRインタープリタに対して、ブロックカウントPGO(Profile-Guided Optimization)インストルメンテーションを追加し、EventPipe経由でプロファイルデータを収集できるようにする変更です。シングルスレッドのブラウザ/WASI環境向けで、dotnet-pgoがR2Rプリコンパイル用の.mibcファイルを生成できるようになります。マルチスレッドWASMではこの機能はコンパイルアウトされます。

2026年09月24日 (31 PRs)うち Bot 1 件 この日のページ →

#134588 Allow variable page sizes in codesign output in Microsoft.NET.HostModel.Tests

@akoeplinger・GitHub・area-Host

macOS 26.7 arm64環境でcodesignが16 KiBのページサイズを報告する場合に対応するため、コード署名出力パーサーを改善しました。従来は4 KiBのページサイズのみを受け入れていましたが、変数的なページサイズを許容するように変更されています。ページサイズ値はCodesignOutputInfoに保持されず、その後の比較処理でも使用されないため、パーサーは当該フィールドの存在確認のみを行うようにリファクタされました。

#134566 Add method-list MIBC writer to dotnet-pgo

@lewing・GitHub・area-ReadyToRun

dotnet-pgo create-mibc-from-method-list コマンドを追加し、JSONから決定論的なプロファイルルートセットを構成できるようにしました。Ecma規格に基づく型システムコンテキストを使用して、アセンブリ修飾型名の解決と妥当性検証を行います。ReadyToRun最適化の調査やMIBC手動作成の手間を削減するための探索的ツールです。

#134554 Use streaming serialization for JSONL entries

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

JSONL(JSON Lines)シリーズ化APIが個別要素をシリアライズする際にストリーミングシリアライゼーションを使用していなかった問題を修正します。本変更により、Utf8JsonWriterを再利用し、バックプレッシャーを適切に処理しながらストリーミングシリアライゼーションを実装します。.NET 11へのバックポートが予定されています。

#134553 Forward custom modifiers in TypeDelegator

@caraioniurie47・GitHub・area-System.Reflectioncommunity-contribution

TypeDelegatorがカスタム修飾子(custom modifiers)を転送していない問題を修正します。GetRequiredCustomModifiersとGetOptionalCustomModifiersメソッドをオーバーライドして、ラップされた型の修飾子情報を正しく転送するようにしました。これにより、volatileなどの型修飾子がデリゲータを通じて失われることがなくなります。

#134541 Match old layouts and feature selection for named mutexes for cross-TFM compatibility

@jkoritzinsky・GitHub・area-System.Threading

異なるTFM(Target Framework Moniker)間での名前付きミューテックスの互換性を確保するため、共有メモリレイアウトとバックエンド選択を修正します。スレッドIDを64ビットに拡張し、Linux ARM/ARM64でのファイルロックベースのミューテックス使用、および従来のPALフォーマットとのレイアウト整合性確保が主な変更です。

#134535 X25519: Handle zero peer keys on downlevel Windows platforms

@vcsjones・GitHub・area-System.Security

X25519 Diffie-Hellman鍵合意において、ゼロ値のピア公開鍵に対する処理をダウンレベルWindowsプラットフォームで改善しました。ゼロ公開鍵はゼロの共有シークレットを生成するため暗号学的に無効です。Windows側で鍵インポート時の検証を有効化せず、代わりに導出時に例外をスローすることで、他プラットフォームとの一貫性を保証しています。

#134522 Preserve scalar negation types when folding FMA operands

@tannergooding・GitHub・area-CodeGen-coreclr

ARM64とxarchでFMA(Fused Multiply-Add)命令へのスカラー負値演算の折り畳み時に、型の不一致による誤った最適化を修正します。ベクトル型の再解釈により、整数負値演算や異なる浮動小数点幅が露出する場合、これらを正しく保持する必要があります。スカラーとFMA要素の型が一致する場合のみ負値の折り畳みを実行するようにします。

#134511 JIT: Do not reuse local addresses across suspension points in async methods

@jakobbotsch・GitHub・area-CodeGen-coreclr

非同期メソッドでローカル変数がサスペンションポイント後に新しいフレームに移動する際、JITが古いローカルアドレスを誤って再利用する問題を修正します。値ナンバリング(VN)に「フレームバージョン」引数を導入し、各GT_LCL_ADDRに一意な識別子を付与。同時にVNF_ByrefExposedLocalLoadを追加してフレームバージョンを無視した番号付けを行い、リグレッション回避を実現しています。

#134506 Honor stack_limit in NativeAOT PromoteCarefully

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

NativeAOTがスタック限界(stack_limit)を尊重するよう修正しました。これまでスレッドのスタック境界内のすべてのインテリアポインタをスキップしていましたが、QEMUやmuslでスタックサイズが過度に報告される環境下では、ヒープ参照がGCに報告されず、オブジェクト移動時にダングリングポインタが発生していました。CoreCLRと同様に、アドレスがstack_limit以上であることを要求するよう修正します。

#134498 [browser] Add withDownloadResourceProgress to DotnetHostBuilder

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

WebAssembly版ランタイムのDotnetHostBuilder公開APIにwithDownloadResourceProgressメソッドを追加します。これにより、アプリケーションがリソース読み込み進捗を監視できるようになります。既存の内部メカニズム(withModuleConfig経由)を公開APIとして公式に公開するもので、動作は変わりません。CoreCLRとMono両ローダーに追加されます。

#134460 Fix TypeLoadException in .NET 11 Preview 7 with DotNext threading

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

.NET 11 Preview 7でDotNext.Threadingの読み込み時に発生していたTypeLoadExceptionを修正します。抽象的な共変Task → Task<T>オーバーライドの型ロード失敗が原因でした。

ランタイムが合成する返却値削除thunk(return-dropping thunk)が誤ってmdAbstract属性を報告していたため、派生クラスがこれを実装するMethodImplを生成せず、型検証時に失敗していました。修正により、MethodDesc::GetAttrs()がreturn-dropping thunkのmdAbstract属性をマスクするようになります。

#134414 Make Basic auth credential-refresh test orchestration deterministic

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

Basic認証のクレデンシャルリフレッシュテスト RefreshesPreAuthCredentialsOnChange の実装を確定的にする変更です。従来の実装ではサーバー応答を待つ前にクライアントリクエストを観察していたため、クライアント障害がコネクション操作のタイムアウトに隠れる可能性がありました。本変更により、各クライアントリクエストをサーバーの認証ラウンドと同時に観察し、各応答の前にGOAWAYを送信してコネクション再利用を防ぎ、テストの信頼性を向上させます。

#134386 JIT: don't speculate ordering-side-effect upper bounds in FoldNeverNegativeRangeTest

@EgorBo・GitHub・area-CodeGen-coreclr

JIT コンパイラの FoldNeverNegativeRangeTest 最適化において、順序付き副作用(ordering side effect)を持つ上限値の投機的な最適化を禁止する修正です。これにより、配列インデックスのような安全性が必要な文脈で、副作用のある式の評価順序が不正に変更されるバグを防ぎます。

#134375 JIT: handle relational operators in range overflow analysis

@Copilot・GitHub・area-CodeGen-coreclr

JIT コンパイラの範囲オーバーフロー解析を拡張し、関係演算子(比較演算子)を正しく処理することで、冗長な境界チェックを削除します。GetClosestCosineIndex 関数で2つの冗長な境界チェックが残されていた問題を修正し、比較式の両オペランドに対して再帰的なオーバーフロー検査を行いながら、比較式自体はオーバーフローしないものとして扱うようになります。

#134173 Fix bugs in preinitialization

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

NativeAOT preinitialization機能のバグ修正とテスト拡張です。IL走査/モデリングロジックを改善し、ボックス化された値型、型付きストア、スパンの割り当て、byref含有型などの追加的なILパターンに対応しました。テストケースを大幅に追加し、既存のバグが浮き彫りになった回帰テストをカバーしています。

#134111 Fix concurrent Unix named mutex creation

@jkoritzinsky・GitHub・area-System.Threading

Linuxの共有コンパイル時に、新規作成されたnamed mutexが初期所有状態にあると、並行処理で間欠的に失敗する問題を修正します。修正内容は、プロセスロック保有中に非ブロッキング初期mutex取得と所有権記録を実行し、その後ロックを解放してからブロッキング待機を行うようにします。

#134075 JIT: Use integral ranges to narrow comparisons with memory operands

@jakobbotsch・GitHub・area-CodeGen-coreclr

x86/x64 JIT コンパイラの比較操作(comparison)の最適化を改善する変更です。オペランドの整数範囲(IntegralRange)を利用して、メモリオペランドとの比較をより狭いサイズで実行できるようにしながら、型変換や明示的なキャストを避けています。比較サイズ計算ロジック(GetCompareSize())をローリング、コード生成、x86レジスタ割り当て全体で共有し、フラグ再利用チェックに直接比較サイズを渡すようにしました。

#134057 [NativeAOT] Fast interface dispatch helper for riscv64

@maximmenshikov・GitHub・community-contributionarea-NativeAOT-coreclrarch-riscv

NativeAOT での RISC-V 64 向けインターフェース呼び出しの高速化を実装しています。これまで RISC-V 64 は汎用の遅いパスを使用していましたが、ARM64 と同様に単形セル(monomorphic cell)の インライン チェックとグローバル ディスパッチ キャッシュのプローブを組み合わせた最適化ヘルパーをポートしました。

#134042 Support asynchronous runtime test entry points

@jakobbotsch・GitHub・area-Infrastructure-coreclr

このPRは、CoreCLRの非同期テストインフラを一新し、ランタイムテストのエントリポイントがTask/ValueTaskを非同期で正しく処理できるようにします。従来のブロッキング方式(.Wait()、.Result、.GetAwaiter().GetResult())を廃止し、エンドツーエンドでasync/awaitパターンに統一します。XUnitラッパー生成器とXHarnessランナーを更新して、非同期テストをファーストクラスとして扱い、適切にawaitできるようにしました。

#133892 JIT: handle local field stores in object stack allocation

@AndyAyersMS・GitHub・area-CodeGen-coreclr

Object Stack Allocation機能においてローカルフィールドストア(GT_STORE_LCL_FLD)の処理時にアンセスタノードの再型付けが行われておらず、CheckedビルドでのJITアサート失敗とReleaseビルドでのMinOptsフェイルオーバーを引き起こしていた問題を修正します。スカラーストアと構造体レイアウトの再型付けを実装し、Nullable構造体のカバレッジを追加します。

#133867 JIT: reject variable-count XOR rotation recognition

@Copilot・GitHub・area-CodeGen-coreclr

JIT コンパイラが変数カウントの XOR パターンを不正に回転操作として認識する誤コンパイルを修正します。シフトカウントがオペランド幅の倍数の場合、両方のシフト結果が x となり、XOR は 0 を返すべきですが、回転は x を返すため、この矛盾を解決します。

// countが0または32のとき0を返す必要があります
static int ShiftXor(int x, int count) =>
    (x << (count & 31)) ^ (x >>> ((32 - count) & 31));

#133776 JIT: Preserve SIMD operand evaluation and ordering

@tannergooding・GitHub・area-CodeGen-coreclr

JITコンパイラにおけるSIMD操作の折畳み最適化時に、オペランドの評価順序と可観測効果(observable effects)を保持するようにします。特にMin/Max操作での定数NaN処理、シフト演算のエミュレーション、GetElement/WithElement、スカラー乗算、値優先ストア操作などを対象としています。GTF_OBS_EFFECTフラグを導入してオペランドの通常読み取りと区別し、バイナリ評価順序をビルダーに保持させることで、インポーター spill に依存しない設計に改善しています。

#132534 Use explicit secret arguments in IL stubs

@jkoritzinsky・GitHub・area-CodeGen-coreclrlinkable-framework

IL stubにおいて、「秘密」なstub contextを従来のStubHelpers.GetStubContext()メソッド呼び出しではなく、SecretStubArgument required modifierで注釈された明示的なnative intパラメータで表現するように変更します。これにより、VM、JIT、インタプリタ、SuperPMI、ABI仕様全体で秘密stub引数を統一的に識別・バインドする仕組みに刷新されます。

Bot PRs (1 PRs)

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

#134529 Prevent separator buffer overruns in string.Join

@tannergooding・GitHub・area-System.Runtimereduce-unsafe

String.Join の並行入力変更時のバッファオーバーランを修正します。従来は値のキャパシティのみをチェックしており、値が残りスペースを消費した後のセパレータ書き込みが結果バッファをオーバーランする可能性がありました。値とセパレータの両方の書き込みを割り当てられた文字列の長さで制限されたスパンを使用することで対策し、既存の防御的コピー再試行メカニズムを保持します。

#134521 Preserve element types when folding SIMD Dot broadcasts

@tannergooding・GitHub・area-CodeGen-coreclr

SIMD Dot ブロードキャスト折り畳み最適化において、ベクトル要素型の互換性を検証していなかったバグを修正しました。従来は Vector.Create(ToScalar(Dot(...))) が要素型チェックを省略していたため、短レーン型の結果を整数ブロードキャストとして再利用する際に、入力値が8の場合に誤って 0x00080008 (524296) を返していました。

修正内容:

  • 折り畳み実行前に、ベクトルサイズに加えて互換性のあるSIMD基本型を検証
  • 符号付き/符号なし同一幅ブロードキャストは互換性を保持し、非互換型はスカラー抽出とブロードキャストを保持

#134520 Preserve vector results when folding AVX-512 mask complements

@tannergooding・GitHub・area-CodeGen-coreclr

AVX-512マスク補数の畳み込み処理において、ConvertMaskToVectorによるベクトル結果変換を保持するようJITコンパイラを修正しました。比較モード反転および二重NOT処理のパスが、親が期待するベクトル型ではなく内部的なTYP_MASKを返していたため、チェック済みビルドでのアサーション失敗と無効なリリース時コード生成が発生していました。

#134518 JIT: Include auxiliary types in hardware intrinsic value numbering

@tannergooding・GitHub・area-CodeGen-coreclr

JITのハードウェア組み込み関数の値番号付けが、セマンティクスを変更する補助的な型情報を見落としていた問題を修正しました。例えば、AVX2ギャザー操作でintとlongインデックスを使用する場合、異なるセマンティクスであるにもかかわらず同じ値番号が割り当てられ、JITが異なる結果の比較を誤って最適化していました。補助型をSIMD基本型定数の上位バイトにパックし、値番号のデコードと診断出力を更新することで修正します。

#134471 Preserve default Ninja behavior when MSBuild property is unset

@Copilot・GitHub・area-Host

Ninja MSBuildプロパティが未設定の場合、ネイティブビルドスクリプトのデフォルトジェネレータ選択を保持するように修正しました。従来は未設定値が明示的に無効化として扱われ、Makefilesにフォールバックしていましたが、これにより前回のビルドでNinja(CLRのデフォルト)を使用した場合にCMakeCacheの不一致でビルドエラーが発生していました。

#134461 [release/8.0-staging] Make TestKeyRing.CreateECDsa resilient to transient macOS OSStatus -50 failures

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

macOS上でのシステムセキュリティフレームワークの断続的な失敗(OSStatus error -50)によるSystem.Security.Cryptography.Cose.Tests の不安定性を修正するバックポート。EC鍵インポート時の一時的な失敗に対してリトライロジックを追加します。テスト専用の信頼性向上であり、製品コードには影響しません。

#134443 [release/11.0-rc2] Managed HPKE

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

.NET 11向けのPost-Quantum Cryptography(PQC)移行計画の一部として、実験的なマネージHPKE(Hybrid Public Key Encryption)APIを追加します。完全なAPI表面を提供しますが、機能面では段階的な実装となり、Windows上でのWin32相互運用などは今後のサービシングで追加予定です。すべてのAPI型は[Experimental]属性でマークされています。

#134442 [release/11.0] Managed HPKE

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

.NET 11向けの新しい実験的なHPKE(Hybrid Public Key Encryption)APIを追加するPull Requestです。PQC(Post-Quantum Cryptography)への移行に対応するため、マネージド実装によるHPKE機能全体を提供します。既知のCopilotレビューの指摘(派生ノンス バッファのクリア、APIプロポーザルへのリンク、診断メッセージの修正)があります。

#134422 Remove unused client certificate from TLS host resumption test

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

TLSホスト再開テスト(DifferentHost_NoResume)から未使用のクライアント証明書を削除するテストのみの変更です。Windows上で冷たい証明書-認証情報キャッシュの場合、未使用の証明書によって匿名認証情報が新たに生成され、ホスト変更アサーションに到達できない問題を解決します。製品の動作に変更はありません。

#134419 Read GET request bodies in the HTTP/1.1 loopback helper

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

HTTP/1.1 LoopbackサーバーがGETリクエストのボディを読み込まずにレスポンス送信・接続を閉じていた問題を修正。クライアント側がリクエストボディの送信中にサーバーが接続を閉じることで、Windows 10053エラーが発生していました。LoopbackServer.Connection.ReadRequestDataAsyncを修正し、GETリクエストに対してもContent-LengthおよびChunked Encodingのフレーミングを尊重するようにしました。

#134396 [browser] Normalize dequeued jiterpreter method pointers

@lewing・GitHub・area-Codegen-Interpreter-mono

Jiterpreterが2GB以上のメモリに割り当てられたメタデータポインタを正しく処理できない問題を修正します。WebAssembyのi32値が符号付きJavaScript数値として返されるため、キューからデキューされたポインタを正規化してから、interp-entryおよびJIT-callマップでルックアップを実行するようにしました。これにより、高メモリアドレス領域のトランポリン生成がスキップされる問題が解決されます。

#134335 [release/9.0-staging] Fix Linux FileSystemWatcher silent stop after unpaired IN_MOVED_FROM

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

Linux上のFileSystemWatcherがディレクトリの移動イベント(IN_MOVED_FROM)の処理で意図せず停止する不具合を修正しました。マージ操作等により対応するwatch情報がない状態で移動イベントが発生した場合、イベント処理がサイレントに停止していた問題を、制御フロー修正(return false → break)で解決します。

#134329 [release/10.0] Unify native API availability probes

@akoeplinger・GitHub・Servicing-approvedarea-Infrastructure

Xcode 27との互換性のため、ネイティブAPI可用性プローブの統一を行うバックポート。デプロイメント対象に関わらず、CMake設定順序に依存せずにAPI可用性が正しく検出されるよう、-Werror=unguarded-availabilityの適用を共有ネイティブコンパイラ設定に統一し、pipe2プローブを標準化しました。

#134328 [release/11.0] Unify native API availability probes

@akoeplinger・GitHub・Servicing-approvedarea-Infrastructure

Xcode 27との互換性を確保するため、ネイティブAPI可用性プローブを統一し、デプロイメントターゲットに対応したコンパイラ設定を実装しました。特にpipe2の検出がmacOSデプロイメントターゲットを正確に尊重するよう修正され、CMake設定順序に依存しない共有プローブ結果を実現しています。

#134141 Use dnssd for DnsResolver on OSX

@rzikm・GitHub・area-System.Net

macOS上のDNS解決をDNS-SD(Bonjour/mDNSResponder)経由で実装し、明示的サーバー指定の場合はマネージドリゾルバーを継続使用します。DNS-SDレコード解析機能、ソケットハンドリング、PALロジックを追加し、macOS向けの機能テストと単体テストカバレッジを拡充します。

#134137 Make sure the interpreter code is published before the native code for a method

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

インタプリタコード公開の順序を修正し、prestub設定中のレース条件を防ぎます。prestubのprecodeがパッチされる前にインタプリタコードをMethodDescに公開することで、競合状態でインタプリタコードが毒化される問題を解決します。JITが無効な新しいインタプリタライブラリパイプラインで発生していた問題に対応しています。

#134105 Enable r2r of non-deterministic intrinsics

@BrzVlad・GitHub・area-ReadyToRun

非決定的な組み込み関数(MultiplyAddEstimate、MinNative/MaxNativeなど)のReadyToRun(R2R)コンパイルを有効化します。これらの関数は利用可能なISA(命令セット)によって異なる計算結果を返す可能性があるため、R2Rで実行時のISA依存関係を追跡し、コンパイル時のISAと一致しない場合は実行時に再JITコンパイルされます。これにより、プラットフォームごとの最適化を活用しながら同一プロセス内での結果一貫性を保証します。

#134072 [cDAC] Expose interpreter JIT manager code heaps

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

CoreCLR Data Accessor Contract (cDAC) を通じて Interpreter JIT Manager のコードヒープを公開するための変更です。インタプリタで生成されたコードは従来 ExecutionManager 経由で発見できず、ダンプコレクターがメタデータを省略する問題を解決します。オプショナルな InterpreterJitManagerAddress グローバルを追加し、JitManagerKind ベースの API で EE マネージャーとインタプリタマネージャーの独立した列挙が可能になります。cDAC reader のアドバイザリーバージョンを 2 に引き上げ、後方互換性を維持しています。

#134046 [release/8.0] Remove mobile queues from runtime-extra-platforms CI test runs

@rzikm・GitHub・Servicing-approvedos-androidarea-Infrastructure

.NET 8のrelease/8.0ブランチにおいて、runtime-extra-platforms CI パイプラインからサポートされていないモバイルプラットフォーム(Android、iOS/tvOS、シミュレータ、Mac Catalyst)のキューを削除し、CI ノイズを軽減します。WASM、Linux Bionic などのモバイル以外のジョブは保持されます。

#131361 [release/10.0][browser][mono] Make sure we treat the 4GB ptrs as unsigned

@lewing・GitHub・Servicing-approvedarch-wasmarea-Diagnostics-monoos-browser

WebAssembly の JS/wasm 境界でポインタの符号が保持されず、2GB を超えるアドレスが負の数として表示される問題を修正します。このバックポートは main ブランチの PR #121221 をベースとしており、暗号、デバッガ、WebSocket、イベントパイプ、jiterpreter などの複数の領域でポインタを符号なし整数として扱うように修正します。

mono ブラウザランタイムの JavaScript 側で >>> 0 や fixupPointer を使用してポインタ値を符号なし化し、wasm のメモリ操作時の無言の破損(例:RandomNumberGenerator.Fill がゼロバッファを返す、jiterpreter の無効なモジュール生成)を防ぎます。

2026年09月22日 (23 PRs)うち Bot 5 件 この日のページ →

#134366 Preserve contained-load exceptions during embedded masking

@tannergooding・GitHub・area-CodeGen-coreclr

AVX-512マスキング機能が、含まれたロード操作の例外を誤って抑制するバグを修正します。マスク値が空の場合、潜在的に失敗するロード(null参照アクセスなど)の例外が発生しなくなることを防ぎます。既存のJIT例外分析NodeOrContainedOperandsMayThrowを埋め込みマスキング判定で活用し、例外モデリングを保護します。

#134364 Fix VNNI blend merge operand preservation

@tannergooding・GitHub・area-CodeGen-coreclr

VNNI乗算累積命令のマージマスク処理におけるバグを修正します。マージマスク付きのBlendVariable(fallback, MultiplyWideningAndAdd(...), mask)をVNNI命令に最適化する際、非アクティブレーンのfallback値が保持されず上書きされていました。VNNI内在関数をHW_Flag_RmwIntrinsicフラグでマークし、既存の埋め込みマスキング互換性チェックが無効な最適化を拒否するようにしました。これにより、VNNI操作とblend操作が正しく分離されます。

#134362 Fix unsigned vector division correction lane width

@tannergooding・GitHub・area-CodeGen-coreclr

符号なし SIMD ベクトル除算における補正処理のバグを修正しました。AVX および SSE4.1 の除算パスで、64ビット幅の blendvpd から32ビット幅の blendvps に変更し、各32ビットレーンで独立して商補正を選択するようにしています。修正前は64ビット単位の blend が隣接レーンの誤った置換や overflow レーンの見落としを招いていました。

#134358 [JIT] [Wasm]: Check IsInvariantInRange for LEA base addr in GetFoldableAddrMode

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

Wasm JITにおけるLEA(Load Effective Address)アドレッシングモードの最適化時に、ベースアドレスが計算中に再ロードされる場合を正しく検出できていなかった問題を修正します。フィールドアクセスの左辺と右辺で同じオブジェクトのアドレスが使用される場合、不正なアドレッシングモード最適化によってLIRセマンティクスアサーションと操作数の包含/順序の問題が発生していました。

public class Program
{
    public static void M0()
    {
        s_1.F0.F0.F8 = (ushort)M1(ref s_1.F8);
    }
}

#134345 JIT: Bypass bulk write barrier wrapper for small struct copies

@EgorBo・GitHub・area-CodeGen-coreclr

小さな構造体のコピー(最大128バイト)に対する書き込みバリア処理を最適化するPRです。JIT、ReadyToRun、NativeAOTで、GC参照を含む構造体コピーについて、マネージド書き込みバリアのラッパー関数をバイパスして直接ヘルパーを呼び出すようにしました。128バイトを超えるコピーは既存のヘルパーのままです。ベンチマーク結果では5参照構造体で5~15%のパフォーマンス向上が報告されています。

#134124 [browser] release eagerly created Task/Promise proxies on non-normal async interop paths

@pavelsavara・GitHub・arch-wasmarea-System.Runtime.InteropServices.JavaScriptos-browser

Browser JS相互運用(Interop)における非正常系パスでのTask/Promise プロキシのメモリリークを修正。非同期JSのInteropで事前に作成されたTask/Promiseプロキシペアが、複数の異常系パスで解放されずページの存続期間中リークしていました。[JSExport]が同期的に完了/例外発生したケース、バインド失敗時、および非同期[JSImport]での例外/Promise未生成時の各パスでプロキシを適切に解放するよう修正しました。

#134106 Fix round-trip assertion for fractional floating-point formats

@tannergooding・GitHub・area-System.Numerics

Number.FormatFloatのラウンドトリップアサーション条件を修正するプルリクエストです。F、N、C、P形式では分数部の先頭ゼロが有効精度を消費するため、デバッグ/チェックビルドで正しくフォーマットされた出力がアサーション失敗することがありました。有効数字モードのみにアサーション範囲を制限し、リリースビルドの動作は変わりません。

#133905 [WIP] Fix GC hole in JIT due to if-conversion

@Copilot・GitHub・area-CodeGen-coreclr

JITのif-conversion最適化において、明示的初期化(explicit-init)ストアがGC安全点を越えてシンク化される場合に発生するGC穴(GC hole)を修正します。この問題により、未初期化だが報告されたGCスタックスロットが残される可能性がありました。修正により、if-conversion中にGTF_VAR_EXPLICIT_INITフラグを持つストアが移動されることを防ぎます。

#133804 Managed HPKE

@vcsjones・GitHub・area-System.Securitycryptographic-docs-impact

HPKE (Hybrid Public Key Encryption) のマネージド実装を追加する最初のコミットです。公開API、DHKEM (Diffie-Hellman Key Encapsulation Mechanism) / KDF / AEAD実装をマネージドコードで提供します。OpenSSL および Windows固有の実装、ML-KEM、Hybrid構成は後続のPRで対応予定です。

#133450 Emit interop source directly as text

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

Interop ソースジェネレータのコード生成パイプラインを刷新し、Roslyn構文木の構築・正規化・逆シリアル化のサイクルを廃止し、直接テキスト出力に変更しました。入力解析はRoslyn に任せつつ、出力生成では共有 IndentedTextWriter と値ベースのパラメータ/シグネチャモデルを使用して、メモリ割り当てとフォーマッティングオーバーヘッドを削減します。LibraryImport、COM、JavaScript インポート/エクスポートジェネレータで統一されたアプローチを採用し、pinning scope、例外処理、last-error 処理、クリーンアップ順序を保持しながら段階的にマーシャリングコードを出力します。

#133416 JIT: Model promoted struct definitions through visitors

@jakobbotsch・GitHub・area-CodeGen-coreclr

JITコンパイラの局所変数定義モデルをVisitLocalDefsビジターを通じてリファクタリングし、昇格されたstruct型の論理的フィールド定義(範囲指定のSTORE_LCL_FLDやcall定義を含む)を統一的に報告するようにしました。複数のコア分析(SSA、値番号付け、コピー伝播、非同期解析、エイリアス追跡、ループクエリ)を更新し、昇格特有の定義展開を削除します。将来のSTORE_LCL_VARSノードなど複数局所定義を明示的に表現するIRへの準備となります。

2026年09月21日 (48 PRs)うち Bot 21 件 この日のページ →

#134371 Forward missing Type members in System.Reflection.Context

@caraioniurie47・GitHub・area-System.Reflectioncommunity-contribution

System.Reflection.ContextのCustomReflectionContextでマッピングされた型が、ラップしている型の代わりに基本クラスからの応答を返していた問題を修正しました。DelegatingTypeが複数のTypeメンバーをオーバーライドしていなかったため、NotSupportedExceptionやNotImplementedExceptionが発生したり、不正な値が返されていました。本PRでは、IsByRefLike、GetEnumValuesAsUnderlyingType()、GetNullableUnderlyingType()、MakeFunctionPointerType()、関数ポインタ関連メンバーなど、漏れていたメンバーをラップ型に転送するようにしました。

#134357 Move full browser CoreCLR R2R library tests to outer loop

@lewing・GitHub・area-Infrastructure

WebAssembly向けのブラウザ CoreCLR ReadyToRun (R2R) ライブラリテストをCI パイプラインの最適化のため再構成するもの。デフォルト CI では高速な煙テスト(約45分)を実行し、完全なテストスイート(従来3時間09分)をスケジュール済みの外部ループパイプライン(runtime-extra-platforms)と手動トリガーに移行します。

#134353 Fix macOS single-file runtime info capture

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

macOS単一ファイル形式のダンプ作成時に、MachOModule::TryLookupSymbolが返す再配置済みシンボルアドレスを直接使用するよう修正しました。これまでモジュールベースアドレスが重複加算されていたため、DotNetRuntimeInfoの読み取りが無効なアドレスを指していました。この修正により、ダンプにランタイムバージョンとレガシーDAC情報が正しく含まれるようになります。

#134325 JIT: Set profile flag on async OSR jump blocks

@jakobbotsch・GitHub・area-CodeGen-coreclr

JITコンパイラのAsync変換処理におけるプロファイル重み付けの不整合を修正します。OSRジャンプブロック(非同期再開用)を作成する際に、プロファイル重み付けフラグ(BBF_PROF_WEIGHT)を適切に設定することで、stress条件下でのテール・アウェイト・オンリーメソッドのプロファイルブックキーピング保持を実現します。

#134321 Improve ComparerHelper.CreateDefaultEqualityComparer

@hanachiru・GitHub・area-System.Memorytenet-performancecommunity-contribution

ComparerHelpers.CreateDefaultEqualityComparerにおいて、Nullable<T>の基盤型を取得する際にGetGenericArguments()からGetNullableUnderlyingType()へ変更しました。これにより、閉じたNullable<T>型のイコールコンパレーター作成時のジェネリック引数配列の割り当てを回避し、#126905で導入されたAPIを活用しています。

#134279 JIT: Preserve exceptions during jump threading

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JIT の Jump Threading 最適化でコード削除時に例外が失われる問題を修正します。支配的な比較が削除される例外セットをカバーすることを要求し、冗長なブランチをスレッド化する際に例外を保持します。DivideByZeroException が誤って削除されるリグレッション問題に対応しています。

#134223 [release/10.0] Fix GC on Windows with multiple CPU groups

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

Windows上の複数CPUグループに対応したGC処理の不具合を修正するバックポート。非ゼロプロセッサグループで実行されているプロセスが、動的に割り当てられたGCプロセッサ-ヒープマッピング外のパックされたプロセッサインデックスを使用し、ヒープ破損を引き起こす問題を解決します。GC初期化時にプロセッサグループ数をキャッシュおよび検証し、最大プロセッサグループインデックス空間に対応したマッピングとアフィニティセットのサイジングを行います。

#134212 Fix Android NativeAOT template for updated memory safety rules

@agocke・GitHub・area-NativeAOT-coreclr

Android NativeAOT テンプレートを更新メモリ安全性ルール(updated-memory-safety-rules)に対応させるための修正です。System.Text.Json のソース生成テストがこのルールを有効にした後、Android NativeAOT ビルドが失敗していました。型レベルの unsafe コンテキストを、ポインタ操作を直接行うブロックに移動し、ネイティブインポートに明示的な unsafe 契約を追加することで対応しました。レガシー規則との互換性は維持されます。

#134184 JIT: Avoid null predecessor dereference after tail duplication

@Copilot・GitHub・area-CodeGen-coreclr

JITコンパイラのテール複製後に、条件分岐の折り畳み処理でbbPredsの無効参照が発生するバグを修正しました。ハンドラエントリーの最後の実際の前任者がテール複製により削除された場合、人工的なEH参照のみが残り、GetUniquePred(this)で安全に前任者の有無を確認した上でコンパクション処理を実行するよう改善しました。

#134076 [wasm][coreclr] Re-enable Regression3_Regressions for interpreter

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

browser-Wasm CoreCLR インタープリター環境で Regression3_Regressions テストを再度有効化します。元の広範なWasm除外条件を、ファイルバックされた実行アセンブリの有無を判定する条件に置き換えることで、インタープリターでテスト実行が可能になりました。Assembly.GetExecutingAssembly().Location が空の場合(現在のbrowser-Wasm ReadyToRun環境)は早期リターンし、それ以外の場合は collectible assembly load context でフル回帰テストを実行します。

#134069 [browser] fix two ways a streaming HTTP request/response can hang or orphan its fetch promise

@pavelsavara・GitHub・arch-wasmarea-System.Net.Httpos-browser

Browser-WASM環境でのHTTPストリーミングリクエスト/レスポンスの2つのハング問題を修正します。

  1. フェッチ失敗時のリクエスト本体書き込みハング: TransformStreamを使用したストリーミング要求本体で、フェッチが拒否されても書き込み側が適切にエラー処理されず、タイムアウト(100秒)まで待機する問題を修正。
  2. レスポンス読み取りキャンセル時の孤立したPromise: キャンセルトークン確認前にPromiseを生成してしまい、孤立したPromiseがUnobservedTaskExceptionを発生させる問題を修正。

修正によりSocketsHttpHandler_ResponseStreamTestでのテスト成功率が67→68に改善(失敗2→1に低減)。

#134060 Disable file locking by default on iOS and tvOS

@rolfbjarne・GitHub・area-System.IOos-ios

iOS および tvOS でアドバイザリーファイルロックをデフォルトで無効化する変更です。RunningBoard がファイルロック保持中のサスペンド済みアプリを強制終了する問題(例外コード 0xdead10cc)を回避するため、これらのプラットフォームでは FileStream が暗黙的に取得する flock を無効にします。Mac Catalyst と他のすべてのプラットフォームの動作は変わりません。System.IO.DisableFileLocking=false(または DOTNET_SYSTEM_IO_DISABLEFILELOCKING=0)を設定することで、ユーザーはロック動作を復元できます。

#133959 [release/10.0] Backport Helix job monitor

@akoeplinger・GitHub・Servicing-approvedarea-Infrastructure

release/10.0ブランチへのHelix Job Monitor統合のバックポート。main/release/11.0から既存のモニタリング機能と関連する修正(空ステージ対応、条件付き有効化、パラメータ転送、パフォーマンスモニタリング、認証情報処理など)をバックポート。CI インフラストラクチャのみの変更で、製品ランタイムへの影響はなし。Microsoft.DotNet.Helix.JobMonitor 10.0.0-beta.26461.103を採用し、既存のSDK・Arcadeテンプレート・キュー・ジョブレイアウトは保持。

#133938 [release/11.0] Fix internal Helix pipeline credentials and queue selection

@akoeplinger・GitHub・Servicing-approvedarea-Infrastructure

このPRは、release/11.0ブランチへの3つのHelixパイプライン修正のバックポートです。内部PR実行時のモニター認証情報の利用可能化、macOS/Appleキューの明示的な選択、およびWASIランタイムテストへのCoreCLRキューセレクタの適用が含まれます。パイプラインYAMLのみの変更であり、製品ビルドは含まれません。

#133924 [wasm] Use instantiating stubs for default interface dispatch

@davidwrighton・GitHub・arch-wasmarea-ReadyToRun

WebAssembly(Wasm)ReadyToRun環境でのデフォルトインターフェース メソッド ディスパッチを修正するPRです。インスタンス化スタブ(instantiating stub)を使用して、共有デフォルト実装へのディスパッチ時にジェネリック インターフェース コンテキストを正しく供給しながら、呼び出し元の通常のABIを保持します。

#133801 JIT: Fix zero-flag reuse for BSF/BSR

@EgorBo・GitHub・area-CodeGen-coreclr

JITコンパイラにおいて、BSF(ビット走査前方)およびBSR(ビット走査後方)命令の実行結果に基づくゼロフラグの再利用が誤って発生していた問題を修正します。これらの命令のゼロフラグは結果比較に使用してはいけないため、フラグ再利用ロジックから除外する変更です。

#133690 JIT: Generalize entry-block parameter register rewriting to all blocks

@jakobbotsch・GitHub・area-CodeGen-coreclr

JITのFindInducedParameterRegisterLocals変換をエントリブロック限定から一般化し、全ブロック対応の制御フロー認識型リライティングに拡張しました。パラメータフィールド読み込み、書き込み、アドレス使用をrationalization フェーズ中に記録し、キル伝播を通常後続、EH後続、ループバックエッジ全体で追跡。正規化後、到達パスがすべてパラメータの入力値を保持する場合のみフィールド読み込みを書き直し、ブロック内の読み込み前キル順序を尊重します。

#133656 [browser][CoreCLR] Enable trimmed ReadyToRun library-test CI

@lewing・GitHub・arch-wasmarea-Infrastructure-librarieslinkable-frameworkos-browser

WebAssembly上のブラウザ向けCoreClRライブラリテストにReadyToRun(R2R)対応を追加し、積極的なトリミングを有効にするCI環境を構築するPR。既存のブラウザトリミング設定と記述子を活用し、インタプリタレーンと別のLibraryTestsCoreCLR_R2R専用CIレーンを追加。テスト用スコープのTestWasmReadyToRunプロパティを導入し、グローバルなPublishReadyToRun=trueがホスト側ビルドツールに波及するのを回避します。

#133602 Add incremental chunked reading to CborReader

@muhammad-othman・GitHub・area-System.Formats.Cborcommunity-contribution

CborReaderに段階的チャンク読込モードを追加し、呼び出し側がI/O制御を担当してデータを複数バッファで供給可能にします。API #129718で承認された機能の実装です。新しいCborReaderState.NeedsMoreData状態が導入され、非最終ブロックモードでは不完全なトークンに対して例外の代わりにこの状態を返すようになります。

public partial class CborReader
{
    public CborReader(ReadOnlyMemory<byte> data, CborReaderOptions? options, bool isFinalBlock);
    public void SlideData(ReadOnlyMemory<byte> data, bool isFinalBlock);
    public void Reset(ReadOnlyMemory<byte> data, bool isFinalBlock);
    public bool TrySkipValue(bool disableConformanceModeChecks = false);
    public bool TrySkipToParent(bool disableConformanceModeChecks = false);
}

#129535 [release/9.0-staging] Fix assembly labels on MacOS X64 to be LOCAL_LABEL

@davidwrighton・GitHub・Servicing-approvedarea-VM-coreclr

macOS x64 上でアセンブリラベルが通常のシンボルとして出力される問題を修正しました。この修正により、リンカーが関数を不正に分割して実行時の不正な動作を引き起こすことを防ぎます。内部アセンブリラベルを LOCAL_LABEL(...) に変換する修正を release/9.0-staging ブランチへバックポートしたものです。

Bot PRs (21 PRs)

2026年09月20日 (14 PRs)うち Bot 6 件 この日のページ →

#134309 Disable badinlinee on unsupported configurations

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

badinlinee リグレッションテストが、ティアード最適化JIT動作に依存していたため、ブラウザ CoreCLR(インタープリタ実行、ティアード コンパイル無効)で決定論的なメモリ割り当て検証に失敗していた問題を修正。テストをブラウザ CoreCLR でのみ除外し、インタープリタ非互換としてマークすることで、最適化JIT構成でのカバレッジを保持しながら不要な失敗を回避。

#134165 [release/11.0] Add Composite ML-KEM Windows implementation

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

WindowsにおけるComposite ML-KEM(ポスト量子暗号ハイブリッドアルゴリズム)のサポートを追加するバックポートPRです。BCrypt/NCrypt統合、CNG API、キーブロブハンドリングの実装を含みます。既存の暗号化API動作への変更はなく、新しい実験的APIのサポートのみが追加されます。

#134071 Preserve portable entrypoints during recursive interpreter compilation

@radekdoulik・GitHub・arch-wasmarea-CodeGen-Interpreter-coreclr

CoreCLRのポータブルエントリポイント上でインタープリタコンパイル中に最初の公開データを保持するための修正。リエントランシアル(再入可能)なコンパイルが発生する際、複数のコンパイル試行が同じポータブルエントリポイントを共有しており、最初の成功した公開を上書きしないようにするための変更。例えば、メソッドコンパイル中に依存性が読み込まれアセンブリロードコールバックが実行される場合、そのコールバックが同じメソッドを呼び出すと、ネストされたコンパイルが外側のコンパイル再開前にコードを公開する可能性がある。

#133046 KEM support for EnvelopedCms

@vcsjones・GitHub・area-System.Security

EnvelopedCmsに対するML-KEMおよびComposite ML-KEMのサポートを追加します。マネージド実装ではML-KEM全体をRFC 9936に準拠して実装しており、RFC 9936で定義されたKEM(Key Encapsulation Mechanism)ベースの暗号化・復号化機能を提供します。ただし、Windows対応とComposite ML-KEMの実装は将来の対応として、APIシェイプのみ先行して追加されています。

#131089 Share common delegate code, cleanup NativeAOT delegate impl

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

複数のランタイム(CoreCLR、NativeAOT、Mono)間でのデリゲート実装コードの重複を解消し、共有実装を統一するリファクタリング。共有デリゲートロジック(呼び出しリスト処理、Combine/Remove、等値性比較)をSystem.Delegateの共有実装に集約し、ランタイム固有の重複コードを削減します。また、RuntimeHelpers.TypeEquivalent()という新しい共有ヘルパーを導入し、ランタイム間での型等価性チェックを統一します。

2026年09月19日 (8 PRs) この日のページ →

#134226 Fix VSD cache publication and resolve stub size

@Copilot・GitHub・area-VM-coreclr

Virtual Stub Dispatch (VSD)キャッシュの公開セマンティクスとAMD64リゾルブスタブサイズの正確性を修正するPRです。キャッシュエントリをVolatileStoreで安全に公開し、既存のVolatileLoadリーダーとのメモリオーダリングペアリングを確保します。また、AMD64のResolveStub::size()が誤ってsizeof(LookupStub)を返していた問題を修正し、正しくsizeof(ResolveStub)を返すようにします。

#134205 JIT: Validate jump threading phi inputs

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JITのジャンプスレッディング最適化において、フロー編集後に不完全なフィノード(phi)を処理する際のバグを修正します。SSA置換ロジックが残されたフィ引数のみをチェックしていたため、すべての先行ブロックを考慮せずにフィを削除して使用を書き直していました。修正前は期待値200を返すべき処理が101を返していました。

#134198 JIT: Make LACKS_RETURN callsite-specific

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JIT インライナーの LACKS_RETURN 観測を呼び出しサイト固有(callsite-specific)に変更しました。これまではコンテキスト関数のインポート時にリターン式が見つからない場合、その観測をコンパイル対象(callee)に永続的に記録していたため、1回の失敗がコンパイル対象を永遠にインライン不可としていました。この変更により、呼び出しサイトの専門化に依存する失敗が他の呼び出しサイトでのインライン試行を妨げないようになります。

#134163 [release/11.0] Add Composite ML-KEM base APIs

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

.NET 11.0のリリースに向けて、Composite ML-KEM(ハイブリッド後量子暗号)の基礎API、アルゴリズム識別子、鍵のインポート/エクスポート機能を追加しています。これは実験的なAPIであり、メインPR #132440からのバックポートです。スタックレイヤー2/4を構成し、実装レイヤー(#134164、#134165)と組み合わせて機能します。

#133763 Don't use IgnoreRootRevocationUnknown when processing intermediate CA re-key certificates

@bartonjs・GitHub・area-System.Security

Unix上の証明書チェーン検証で、自己発行かつ異なるキーで署名された再キー証明書を中間CA として扱い、失効確認時のIgnoreRootRevocationUnknownフラグの適用を制限する変更です。ルートステータスの判定をチェーン内の位置と部分チェーン状態に基づいて行うよう改善されました。

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

#134190 [cDAC] Export interpreter JIT manager descriptor

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

CoreCLR が FEATURE_INTERPRETER でビルドされる際、ExecutionManager::m_pInterpreterJitManager のアドレスを cDAC データディスクリプタグローバルとして InterpreterJitManagerAddress で公開する変更。外部ツール(例:デバッガーやダンプ解析ツール)がインタープリタ JIT マネージャーを発見可能にするための機能追加です。

#134181 Defer WinHTTP HTTP/2 loopback connection closure until server disposal

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

WinHTTPのHTTP/2ループバック接続がサーバー配置前にクライアント未消費のバッファレスポンスを破棄してエラー12030を発生させる問題を修正しました。接続の物理的なクローズをサーバー廃棄まで遅延させることで、レスポンスデータの保持を保証し、WinHTTP HTTP/2クッキーテストおよび関連テストを再度有効化しています。

#134168 Store prepare code config on CEEInfo

@jkotas・GitHub・area-VM-coreclr

PrepareCodeConfigの管理をスレッドローカルな状態からCEEInfoインスタンスに移行しました。これにより、スレッド側の状態管理が削除され、ネストされたコンパイレーションはJIT情報オブジェクトごとに独立して分離されます。

#134160 JIT: Fix value profiling in optimized instrumented tiers

@EgorBo・GitHub・area-CodeGen-coreclr

最適化されたインストルメンテッドティア(Tier1)におけるMemmoveとSequenceEqualの値プロファイリングを修正し、インライン候補を含めた対象で実行されるようにしました。これにより、デフォルトティアリングとReadyToRunが有効な状態でPGO駆動のアンローリングが機能するようになります。

提供されたサンプルコードでは、Memmoveの値プロファイリング情報を活用することで、40文字のCopyTo操作が動的にアンロールされ、事前にプロファイリング済みの長さに対して特殊化されたコードが生成されます。

#134159 [release/11.0] Fix VSD cache lock ordering during unload (backport #133213)

@adamperlin・GitHub・Servicing-approvedarea-VM-coreclr

.NET 11のリグレッション(PR #128868で導入)による VirtualCallStubManager デストラクタ内でのロック順序問題を修正するバックポートです。AssemblyLoadContext のアンロード時に g_resolveCache ロック取得で発生していたデッドロック/ロック競合を、キャッシュロックのスコープを狭めることで解決します。

#134149 Fix NLS ordinal casing of supplementary characters to agree with OrdinalIgnoreCase

@tarekgh・GitHub・area-System.Globalization

Windows NLS環境において、序数大文字小文字変換(ToUpperOrdinal/ToLowerOrdinal)と序数比較(OrdinalIgnoreCase)が補助文字(Supplementary characters)の扱いで不一致だった問題を修正します。LCMapStringExとCompareStringOrdinalというWindows APIの仕様差により、Deseret文字ブロック(U+10400~U+1044F)などの補助文字ペアで、大文字小文字変換後の値が比較の同値クラスと一致しない問題を解決します。修正はNLSモード専用で、バイナリサイズへの影響はありません。

#134127 Fix GC on Windows with multiple CPU groups

@janvorli・GitHub・area-GC-coreclr

Windows上で複数のCPUグループがある環境でGCが正常に動作しない問題を修正します。GC CPU グループサポートが無効な場合、プロセッサインデックスの計算がプロセッサ・ヒープマッピング配列の範囲を超過し、ヒープ領域の破損につながっていました。本修正はOS上の最大CPUグループ数に基づいて最大プロセッサ数を取得することで、配列のサイズング問題を解決します。

#134100 JIT: use a call GC poll for blocks that end an EH region

@EgorBo・GitHub・area-CodeGen-coreclr

JITコンパイラが例外処理(EH)領域を終了するブロック内に挿入されたGCポール(Thread.FastPollGC())を正しく処理するよう修正しました。従来はインラインポール展開でこのようなブロックの分割に失敗していましたが、呼び出しGCポールを使用することで対応します。finallyやcatchブロック内のSpan<object>.CopyToのようなケースでアサーション失敗していた問題を解決します。

#134098 JIT: don't elide the MD-array covariance check for covariant element types

@EgorBo・GitHub・area-CodeGen-coreclr

MD配列のSet/Address操作における共変性チェック(covariance check)の不正な省略を修正しました。JITコンパイラがsealedフラグのみに基づいてチェックを省略していたため、配列型やバリアント型といった共変なシール型でも実際のランタイム要素型が異なる場合にArrayTypeMismatchExceptionを投げずに互換性のない参照を格納してしまう問題がありました。修正では、より厳密なisExactType判定を使用し、SZ配列のstelem.refケースと同様の処理に統一しました。

#133773 Classify Wasm P/Invokes before R2R codegen

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

WebAssembly ReadyToRun (R2R) 構築における P/Invoke 呼び出しの意味論を保持するため、Crossgen2 でコンパイル時に P/Invoke の分類を実施します。--directpinvoke で供給されたモジュール、QCall、および静的インポートは直接 R2R P/Invoke として保持される一方、静的に利用可能と証明されない通常のインポートはマーシャリングが必要なものとして扱われ、実行時の解決は呼び出し地点で発生します。これにより、IL ストリッピング時のランタイムフォールバックに依存せず、R2R イメージの P/Invoke 呼び出しサイト処理を確保します。

#133748 Enable Roslyn compiler output caching in non-official builds

@agocke・GitHub・area-Infrastructure

Roslyn実験的コンパイラ出力キャッシュをUnix x64/arm64の非公式ビルドで有効化します。Azure Pipelinesキャッシュを使用してローリングビルドがPRビルドにキャッシュを提供し、SourceLinkを無効化することでコンパイラキャッシュ無効化を防ぎます。公式ビルドは影響を受けず、SourceLink有効のまま継続します。

#133693 [release/11.0] Fix cgroup v2 memory limit traversal at hierarchy root

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

Linux環境でcgroup v2を使用し、現在のプロセスがcgroup階層のルートに割り当てられている場合、マネージドcgroupメモリリミット走査が階層マウントを超えて継続しNullReferenceExceptionをスローする問題を修正します。この不具合はSystem.Diagnostics.Process.MaxWorkingSet/MinWorkingSetプロパティへのアクセス時に発生していました。.NET 9で導入された回帰を修正し、ネイティブ実装との一貫性を確保します。

#133211 Stop the DBI from unloading any DAC on non-Windows

@hoyosjs・GitHub・area-Diagnostics-coreclr

Unix環境でのCordbProcess::FreeDac呼び出し時のDAC(Debug Access Component)アンロードを防止するための修正です。DAC内に組み込まれたPALがスレッドローカルストレージ(TLS)デストラクタをプロセスグローバルに登録しており、アンロード時にそのデストラクタポインタが無効メモリを参照することで、スレッド終了時にfaultが発生していました。修正により、Unix環境ではDACモジュールをFreeLibraryで解放せずDetachで保持し続けることで、この問題を回避します。

#129369 Two code heaps

@AndyAyersMS・GitHub・area-VM-coreclr

Tier1 JITコンパイルされたコードを専用のコードヒープに分離し、ホットコードのキャッシュ/TLB局所性を向上させます。デフォルトで16MBの事前予約を行い、SeparateOptimizedCodeHeapsランタイム設定パラメータで制御可能です。大規模アプリケーションで測定可能なパフォーマンス改善が見られ、PMCデータからホットメソッドがより近くに配置され、使用ページ数が削減されることが確認されています。

2026年09月17日 (32 PRs)うち Bot 6 件 この日のページ →

#134135 [perf] Optimise {ActivityTraceId|ActivitySpanId}.CopyTo()

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

ActivityTraceId.CopyTo() と ActivitySpanId.CopyTo() のパフォーマンスを最適化します。内部の16進数文字列からバイト列への変換処理を Convert.FromHexString() に切り替え、利用可能な環境では SIMD 加速を活用して、IDが変動する現実的なシナリオで約9倍のスループット向上を実現します。

#134112 Implement IParsable on Uri

@MihaZupan・GitHub・area-System.Net

Uri クラスに IParsable<Uri> インターフェースを実装しました。パース動作は UriKind.RelativeOrAbsolute で AllowImplicitFilePaths = false に設定されています。これにより、Uri.Parse() および Uri.TryParse() メソッドを使用した標準的な文字列パースが可能になります。

// 使用例
Uri uri = Uri.Parse("https://example.com", CultureInfo.InvariantCulture);
bool success = Uri.TryParse("relative/path", CultureInfo.InvariantCulture, out Uri? result);

#134099 JIT: preserve side effect ordering when unrolling UTF16 comparisons

@EgorBo・GitHub・area-CodeGen-coreclr

UTF-16文字列およびスパン比較の展開時に、JITコンパイラが副作用の評価順序を誤って変更していた問題を修正します。impUtf16StringComparisonとimpUtf16SpanComparisonで、展開された比較に対するテンポラリストアを追加する際に、評価スタック上の下層にある式の副作用が引数評価の後に実行されていました。特にobj.Equals("cns")/StartsWith/EndsWithのような展開では、レシーバーの直接参照解除によりNullReferenceExceptionが本来の副作用順序より先に発生していました。修正では、引数の下層にあるスタックエントリの副作用を事前にスピルして評価順序を保証します。

#134079 Fix ILTrim field store dataflow

@jtschuster・GitHub・area-Tools-ILLink

ILTrim のデータフロー分析を改善し、フィールドストア操作(stfld および stsfld)時に格納される値が対象フィールドの要件に対して正しく分析されるようにしました。これにより、5つの期待失敗テストが解決され、ILTrim の期待失敗削減スタックの第1段階を完成させています。

#134073 Unify native API availability probes

@akoeplinger・GitHub・area-Infrastructure

ネイティブビルド全体における API 可用性チェック(特に pipe2 プローブ)の統一化と、Apple デプロイメントターゲット可用性チェックの一元管理を実施します。CMake 設定全体で一貫した _GNU_SOURCE フィーチャー定義を使用することで、Linux での glibc サポートを改善します。

#134010 [wasm] Package CoreCLR native symbol map

@lewing・GitHub・arch-wasmarea-Build-mono

CoreCLRブラウザビルドで生成されていたdotnet.native.js.symbolsファイルをランタイムパック(.nupkg)に含めるようにしました。これにより、WasmEmitSymbolMap=trueを設定することで、アプリケーションの再リンクを強制せずにネイティブシンボルマップを公開できます。ブートリソースモデルがシンボルファイルのSHA-256ハッシュを既存の最終WasmハッシュとともにSHA-256で保持し、指紋付きの公開ファイルが正確なペアとして検出・検証できるようになりました。

#133932 Fix Wasm R2R exceptions escaping filters

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

WASM ReadyToRun(R2R)環境におけるフィルター例外の処理を修正しました。フィルター関数内で発生した例外が正しく分類・伝播されるよう、実行可能なフィルターエントリを含有するfuncletにマッピングし、既存のクロスプラットフォーム例外伝播パスを活用します。この修正により、quarantineされていた3つのランタイムテストを再度有効化できるようになりました。

#133827 JIT: Fix null-check ordering in EH regions

@AndyAyersMS・GitHub・area-CodeGen-coreclr

例外ハンドラーとフィルターで観察可能なインライン化されたメソッドの副作用に対して、レシーバーのnull-checkの順序を保証するJITコンパイラの修正です。EH(例外処理)リージョン内でのnull-checkの不正な削除フォールディングを防ぎ、回帰テストを追加しています。

Issue #133714を修正します。

#133802 JIT: Preserve overflow checks when folding scaled indexes

@EgorBo・GitHub・area-CodeGen-coreclr

CoreCLR JITのスケーリングされたインデックスのフォールディング処理において、チェック付き乗算のオーバーフロー例外が誤って破棄される問題を修正します。この修正により、アドレスモード最適化時にチェック付き乗算の演算結果が保持され、必要なOverflowExceptionが正しく発生するようになります。

#133577 [iOS] Avoid debugger patches in R2R code without dynamic code support

@matouskozak・GitHub・area-Diagnostics-coreclr

iOSの物理デバイス上でR2R(ReadyToRun)コードが署名されている環境で、デバッガがソフトウェアブレークポイントをパッチしようとした際、メモリページの書き込み可能化によってコード署名が無効化されるという問題を修正します。FEATURE_DYNAMIC_CODE_COMPILEDが無効な場合、R2Rコード内でのデバッガパッチ適用を防止し、パッチ活性化失敗を適切に伝播させます。R2Rメソッドへの直接ブレークポイント設定はCORDBG_E_UNABLE_TO_SET_BREAKPOINTで失敗します。

#133378 [wasm][coreclr] ReadyToRun for CoreCLR browser-wasm

@pavelsavara・GitHub・NO-MERGEarch-wasmarea-Build-monolinkable-frameworkos-browser

CoreCLR browser-wasm向けのPublishReadyToRun機能を実装し、開発ループとpublish時の両方でReadyToRun(R2R)イメージをwasm対応crossgen2を使って生成できるようにします。デフォルトはfalseで、既存のMono実装への影響はなく、CoreCLR-onlyの新規ブランチまたはRuntimeFlavorガードで分離されています。

#133076 Check the IValueTaskSource case first in HandleSuspended

@jakobbotsch・GitHub・area-VM-coreclr

RuntimeAsyncTask<T>.HandleSuspendedメソッドの非同期処理の分岐チェック順序を最適化しました。IValueTaskSourceベースの継続処理(ValueTaskSourceContinuation)を最初にチェックするよう変更し、高性能な非同期ソースの処理レイテンシを削減します。各チェック条件は相互排他的なため、機能的な変更はありません。

#133023 Avoid duplicate ValueTask checks in transparent awaits

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

TransparentAwaitでのValueTask処理を最適化し、バッキングオブジェクト(Task vs IValueTaskSource)の分類を1回に集約して、型指定されたインスタンスをサスペンドヘルパーに渡すことで、重複した型チェックを排除します。これにより、ランタイム非同期テールアウェイトでの不要なValueTask実体化と型チェックが削除されます。

#132448 Abort when there's an attempt to reinitialize a runtime thread object

@eduardo-vp・GitHub・area-System.Threading

ランタイム スレッド オブジェクトの再初期化を検出した際に abort するセーフガードを追加します。スレッド破棄後のコールバックで管理コードが実行されることを防ぐため、PLATFORM_THREAD_LOCAL変数(Appleプラットフォームではpthreadキー)を使用してスレッド状態の破棄をマークし、再初期化の試行時にランタイムをfail-fastさせます。

#129536 [release/10.0] Fix assembly labels on MacOS X64 to be LOCAL_LABEL

@davidwrighton・GitHub・Servicing-approvedarea-VM-coreclr

macOS x64でアセンブリラベルが通常のシンボルとして出力される問題を修正しました。ラベルをLOCAL_LABEL()に変換することで、リンカーが関数を不正に分割するのを防ぎ、ランタイムの正確な動作を保証します。この修正は#129531をrelease/10.0ブランチへバックポートしたものです。

#129534 [release/8.0-staging] Fix assembly labels on MacOS X64 to be LOCAL_LABEL

@davidwrighton・GitHub・Servicing-approvedarea-VM-coreclr

macOS x64プラットフォームにおいて、CoreCLR AMD64仮想呼び出しスタブアセンブリの内部ラベルをLOCAL_LABELに変換する修正をリリース/8.0-stagingにバックポートしたものです。この修正がない場合、macOS x64のアセンブリラベルが通常のシンボルとして出力され、リンカが関数を不正に分割してランタイムの動作が不正になる可能性があります。

#123292 Make analyzers and ILLink trimming opt-in via MSBuild properties

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

Analyzers と ILLink trimming をデフォルトでは無効化し、MSBuild プロパティ(RunAnalyzersInBuild / RunILLinkInBuild)で明示的に有効化する形に変更しました。これにより、ローカルビルドの高速化とビルド時間の短縮を実現し、CI パイプラインでは包括的なチェックを別ジョブとして実行します。

# 使用方法(両方有効化)
./build.sh libs -c Release /p:RunAnalyzersInBuild=true /p:RunILLinkInBuild=true

2026年09月16日 (35 PRs)うち Bot 2 件 この日のページ →

#134051 [NativeAOT] Read the byte-packed LSDA offsets without a misaligned load

@maximmenshikov・GitHub・community-contributionarea-NativeAOT-coreclrarch-riscv

NativeAOTランタイムで、LSDA(Language-Specific Data Area)オフセットの読み込み時にミスアライン読み込みを防ぐ変更。バイトパック形式のLSDAオフセット(1バイトフラグ + 32ビットオフセット)を、アライン保証なしで安全に読み込むようにします。RISC-V環境でのミスアライン命令の実行を避けるための修正です。

#134030 Allow intrinsic roots in partial no-JIT compilations

@lewing・GitHub・area-ReadyToRun

partial ReadyToRun (R2R) コンパイルで、ハードウェア組み込み(intrinsic)メソッドがランタイムコード生成できないターゲット上でも利用可能になるように変更。プロファイルフィルタリングは非intrinsicメソッドと JIT 対応ターゲットに対しては維持される。

特に Browser-Wasm ターゲットでのPackedSimd(473メソッド)とWasmBase(5メソッド)の intrinsic メソッドが partial コンパイルで利用可能になります。

#134028 Fix pipe2 detection for Apple deployment targets

@lewing・GitHub・area-PAL-coreclr

CoreCLR PALのpipe2検出をシンボルのみの確認から呼び出し箇所のコンパイル時プローブに置き換えるもの。Appleホスト上では、配置対象に対して利用不可のAPIが拒否されるため、Apple deployment targetの可用性を正しく診断する必要があります。キャッシュされたプローブ結果の再利用を避けるため、PAL固有の個別プローブ結果を使用します。

#134026 [browser][CoreCLR] Resolve ReadyToRun addresses for EventPipe

@lewing・GitHub・arch-wasmarea-Tracing-coreclr

CoreCLRのWasm環境でReadyToRun(R2R)メソッドのEventPipeアドレス解決を修正しました。Wasm portable entrypoint関数テーブルインデックスを合成仮想IPに変換することで、メソッドロード、rundown、IL-to-nativeマップイベントの正確な解決を実現します。非Wasm環境、JITコード、インタプリタバイトコードへの影響はありません。

#133995 Fix Wasm async continuation stack walk

@lewing・GitHub・arch-wasmarea-Diagnostics-coreclr

WebAssembly上でのasync継続スタックウォーク機能を修正し、テストカバレッジを拡充するPRです。主な変更は、WasmのResumeInterpreterContinuation遷移フレームで呼び出し元のシャドウスタック仮想IPを戻り値アドレスとして使用するよう修正しました。これにより、スタックウォーク時のGetWasmVirtualIPFromStackPointer(sp) == controlPC不変性の違反を解決します。併せて、マルチスレッド要件のあるテストに選別的なフィルタリングを適用し、Wasm上でのasync テストランナーの全機能を有効化します。

#133994 Fix for antigen build

@dhartglassMSFT・GitHub・area-CodeGen-coreclr

Antigen build パイプラインの sparse checkout を削除する修正。Antigen ビルドが src/util/CommandLineHelpers.cs(Antigen ツリー外のファイル)に依存しており、sparse checkout ではこのファイルが取得されていなかったため、完全なリポジトリ クローンに変更しました。

#133993 JIT: Attribute GDV inline failures to candidate

@AndyAyersMS・GitHub・area-CodeGen-coreclr

Guarded Devirtualization (GDV) によるインライン化失敗が、本来の対象メソッドではなく仮想メソッドに誤って属性づけられていた問題を修正します。この問題により、永続的な失敗時に誤ったメソッドがプロセス生存期間中インライン化不可とマークされていました。GDV候補を InlineResult に明示的に渡すことで、報告と CORINFO_FLG_BAD_INLINEE 伝播が正しいガード対象を参照するようにしました。

#133990 JIT: Fix truncated histogram likelihoods

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JIT PGO(Profile-Guided Optimization)のヒストグラム尤度計算で、切り詰められたクラス・メソッド・値ヒストグラムが最初のエントリに省略された確率をすべて割り当てていた問題を修正。これにより不正当なガード付きdevirtualizationや定数特殊化が引き起こされていた。修正により完全なヒストグラムのみを正規化するよう変更。

#133977 Only consider ECMA assemblies without DisableRuntimeMarshallingAttribute as having runtime marshalling enabled

@jkoritzinsky・GitHub・area-Interop-coreclr

NativeAOTのランタイムマーシャリング検出ロジックを修正し、DisableRuntimeMarshallingAttributeを持たないECMA標準アセンブリのみをランタイムマーシャリング有効と判定するようにしました。これにより、非ECMA モジュール(合成モジュールなど)に対する誤った"IL1005"診断の発行を防ぎます。

#133970 Fix NativeAOT resource string inlining for async IL

@jakobbotsch・GitHub・area-NativeAOT-coreclr

NativeAOT環境でのランタイム非同期IL(Runtime async)メソッドにおけるリソース文字列インライニングの問題を修正します。非同期ILラッパーのECMAモジュールアイデンティティを保持し、リソース文字列トークンの注入と解決時にこれを認識することで、不要なリソースがルート化されるのを防ぎます。

#133968 JIT: Preserve receiver-before-index evaluation for Span indexers

@Copilot・GitHub・area-Infrastructure

Span<T> と ReadOnlySpan<T> のインデクサー展開時に、IL評価順序の違反により、副作用を持つレシーバーの前にインデックスがスピルされてしまう問題を修正しました。JIT Importer で、インデックスのクローン/スピル時にレシーバーを評価スタック上に保持することで、評価順序を保証し、不正な値や例外の発生を防ぎます。

#133955 Avoid early HTTP/2 teardown in WinHTTP Latin1 header test

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

WinHTTP HTTP/2を使用するLatin1ヘッダーエンコーディングテストで、クライアントのバッファリング完了までHTTP/2ループバック接続を維持することで、早期の接続断裂による競合状態(ネイティブエラー12030)を排除します。この修正はテストのライフタイム管理に限定され、本番コードには影響を与えません。

#133945 Separate QUIC idle-timeout test setup from inactivity

@rzikm・GitHub・area-System.Net

QUICアイドルタイムアウトテスト IdleTimeout_ThrowsQuicException が、接続設定フェーズ中に1秒のアイドルタイムアウトで失敗するのを防ぐため、テストの設定フェーズと意図的な非活動フェーズを分離します。設定中はサーバー側キープアライブを有効化し、その後MsQuic APIを通じて無効化することで、設定期間のタイムアウト失敗を回避します。

#133877 JIT: Preserve snapshot semantics for overlapping promoted struct copies

@Copilot・GitHub・area-VM-coreclr

Physical promotionでオーバーラップする構造体コピーの際に、デスティネーションがソースより後ろにある場合、昇順で実行すると先の書き込みが後の読み込みに必要な値を上書きしてしまう問題を修正。デスティネーション開始位置がソース開始位置より後ろの場合のみコピープランを逆順で実行することで、スナップショットセマンティクスを保証します。

#133834 JIT: guard overflow in loop cloning offset limits

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JITのループクローニング最適化において、正の配列長オフセットが符号付きオーバーフローして負値にラップし、境界チェックなしで高速クローンが実行される脆弱性を修正。オフセットのオーバーフロー検出をガードに追加し、減少ループのリグレッション対応を追加しました。

#133739 Implement ReadyToRunHelperNode for WASM

@Copilot・GitHub・area-NativeAOT-coreclr

WASM向けのReadyToRun静的ベース、デリゲート構築、仮想関数ヘルパーのコード生成を実装しました。WASM関数シグネチャを依存性分析に登録し、アーキテクチャ相当のWASMヘルパー本体を生成します。マネージドテールコール時にシャドウスタックとポータブルエントリポイント引数を保持します。

#133726 [PERF] Use standalone Helix monitor for slow performance jobs

@LoopedBard3・GitHub・area-Infrastructure

perf-slow パイプラインに standalone Helix Job Monitor を導入し、非同期送信と完了追跡を実現します。関連するPR #132807、#133633、#133885に従い、段階スコープの認証情報とモニタージョブの明示的なパラメータを構成します。既存のベンチマークセレクタは変更されず、公開ベンチマークワークロードは追加されません。

#133603 JIT: Refine promotion costing for cold small parameter fields

@jakobbotsch・GitHub・area-CodeGen-coreclr

RyuJIT物理昇格(physical promotion)コスト計算を改善し、アクセス頻度が低い小型パラメータフィールド(byte/short)の早期抽出を抑制します。エントリブロック重みの10%未満の加重アクセス数を持つ小型フィールドについて、ビット単位パラメータレジスタ抽出クレジットを保留することで、レジスタ圧力を軽減し、実行性能を向上させます。

#133547 [wasm] Don't let native cleanup change the GC mode across a catch resumption

@davidwrighton・GitHub・area-ReadyToRun

WebAssemblyの例外処理において、ネイティブクリーンアップ中のRAIIベースのGCモードホルダー(デストラクタ)が、キャッチ復帰時のコンテキスト復元処理と干渉し、マネージコードが誤ったGCモードで再開される問題を修正します。 具体的には、GCX_COOP_REGION_BEGIN/ENDなどの明示的なGCモード領域マクロを導入し、catch(...)構文を使用して外来例外タグの通過を許可しつつ、C++クリーンアップの副作用を回避します。

#133380 Probe {riscv,loongarch,arm}64 virtual memory address

@am11・GitHub・arch-arm64area-GC-coreclrcommunity-contributionarch-loongarch64arch-riscv

RISC-V 64ビット、LoongArch 64ビット、ARM 64ビットシステムにおいて、仮想メモリアドレス空間の実行時プロービングを実装します。特にRISC-V 64ビットシステムではSv48アドレッシングが使用されていますが、GCはSv39に制限されていたため、実行時にアドレス空間をプロービングして対応します。

#133215 Fix Vector.Dot on arm64

@dhartglassMSFT・GitHub・area-CodeGen-coreclr

ARM64でのVector.Dot操作のコード生成不具合を修正しました。MorphフェーズでCreate(ToScalar(Dot(...)))からCreateとToScalarが削除された場合、残りのDot結果がベクトルとして消費される際に、レーン0のみでなく全レーンへのブロードキャストが必要になります。ARM64ローリング時に明示的なブロードキャストを挿入することで問題を解決しました。

#133213 Fix VSD cache lock ordering during unload

@adamperlin・GitHub・area-VM-coreclr

CoreCLR VMのロック順序の問題を修正します。VirtualCallStubManager のデストラクタでVSD(Virtual Stub Dispatch)キャッシュロックをヒープ削除前に解放し、実行可能メモリアロケータロックとのデッドロックを防ぎます。また、collectible AssemblyLoadContext のアンロード時にこの問題が発生するシナリオを検証する回帰テストを追加します。

#133201 Fix buffered ConnectAsync completion race on Unix

@steveisok・GitHub・area-System.Net.Sockets

Unix上でのバッファ化されたデータを含むConnectAsyncの完了競合状態を修正します。接続とバッファ化送信の一体性を保証し、ネイティブブロッキングモードの復元タイミングを確定させます。これによりSystem.Net.Sockets.Tests.SocketBlockingModeTransitionTests.ConnectAsync_WithBuffer_Succeedsの間欠的失敗を解決します。

#132981 Fix for out of range mask pattern assert

@dhartglassMSFT・GitHub・area-CodeGen-coreclr

SVE (Scalable Vector Extension) マスクパターンの定数評価で、範囲外の SveMaskPattern 値がアサーション失敗を引き起こしていた問題を修正しました。今後は範囲外のパターンに対して、アサーション例外を発生させず、全ビット0のマスク(非アクティブレーン)として扱います。ARM SVE命令セットの仕様に準拠した動作への変更です。

サンプルコード:

// 修正前: アサーション失敗
// 修正後: 全ビット0のマスクを返す
Sve.CreateTrueMaskSingle(SveMaskPattern.VectorCount5);

#125896 Fix dotnet-pgo SPGO crash in FlowSmoothing.MakeGraphFeasible

@benaadams・GitHub・area-TypeSystem-coreclrcommunity-contribution

dotnet-pgo の SPGO (Sample Guided Profile Optimization) パイプラインで、FlowSmoothing.MakeGraphFeasible() が例外を発生させる場合に、1つの問題のあるメソッドが全体のパイプラインをクラッシュさせないよう修正しました。SampleCorrelator.SmoothAllProfiles() でメソッド単位のSmoothFlow()を try-catch でラップすることで、問題のあるメソッドはスキップしつつ、他の正常なメソッドの SPGO データを保持できるようになります。

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

#133942 Correct HTTP/2 stream window cap test expectations

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

HTTP/2ストリームウィンドウキャップテストの不正な期待値を修正します。RTT PING最適化に関する古い仕様をテストから削除し、ストリームウィンドウが最大値を超えてスケーリングしないことを検証するより厳密なテストケースを追加しました。プロダクトコードの動作変更は含まれません。

#133922 Fix portable prestub frame lifecycle

@lewing・GitHub・area-VM-coreclr

ポータブルプレスタブフレームのライフサイクル管理を修正し、完了した遷移(FCallを含む)が追加の管理対象アクティベーションとして報告されないようにします。プレスタブフレームは引数のルート化と物理的なアンワインド中は有効なままです。この修正により、github60486回帰テストは冷時に0フレーム、温時に0フレームを報告するようになります(修正前は冷時に1フレーム)。

#133921 Improve IEEE decimal transcendental accuracy

@tannergooding・GitHub・area-System.Numerics

IEEE Decimal32/64/128の超越関数(三角関数、対数、指数、べき乗など)の精度を大幅に改善するランタイムライブラリの内部実装変更です。十進数形式での引数削減と最終丸め処理の最適化により、キャンセレーション敏感な範囲(例:Asin(1-δ)、Log(1±δ))での精度エラーを劇的に削減しています。Decimal128では多くのAPIで最大エラーが1e+29 ULPから0.50 ULPへ改善、特にSinPi/CosPi/TanPiでは-1000~1000の範囲で1.26~7.51 ULPから0.50 ULPへ改善されました。公開APIの追加はなく、ソース/バイナリ互換性は変わりません。

#133894 [wasm] Fix null shadow stack pointer in reverse-pinvoke calls into the interpreter

@pavelsavara・GitHub・arch-wasmarea-CodeGen-Interpreter-coreclr

WebAssembly上で[UnmanagedCallersOnly](reverse-pinvoke)メソッドが解釈型マネージコードへ再入する際に発生する「memory access out of bounds」クラッシュを修正します。SkiaSharpなどの実アプリケーションで発生していた問題で、shadow stack pointerが不正にゼロ折り畳みされることが原因でした。

#133893 Fix flaky assertion in OverlappingExtensions_AllMatchTypes_Comprehensive

@Copilot・GitHub・area-System.IO

テストのOverlappingExtensions_AllMatchTypes_Comprehensiveが非決定的に失敗する問題を修正しました。従来のアサーションは完全な絶対パスで"foo"部分文字列をチェックしていましたが、GetTestFilePath()が追加するランダム文字列にfooが含まれる場合にテストが失敗していました。正確な期待パスとの比較に変更することで、ランダム性に依存しない厳密なテストに改善しています。

#133884 JIT: Keep intrinsic-only loops fully interruptible

@Copilot・GitHub・area-VM-coreclr

JITの最適化によってループ内の唯一のintrinsic呼び出しが削除された場合、部分的に割り込み可能でセーフポイントのないループが発生し、GC一時停止がハングする問題を修正します。特別なintrinsic呼び出しをGCセーフポイント検出から除外することで、intrinsic専用ループを完全に割り込み可能にします。

#133875 Use private PKI for untrusted TLS session certificate test

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

TLS セッションの信頼されていない証明書の検証テストを、共有テスト CA への依存から独立させるため、新規に生成される プライベート PKI チェーンを使用するように更新しました。このテストは以前、マシンの信頼ストアに発行者証明書がインストールされている場合に失敗していました。

#133869 JIT: Preserve checked additions in rotation recognition

@Copilot・GitHub・area-CodeGen-coreclr

JIT回転認識(rotation recognition)において、チェック済み加算によるシフト数の計算を正しく保持するように修正しました。従来はADD(NEG(y), N)をローテーションに最適化する際にオーバーフロー判定を無視し、OverflowExceptionを抑制してしまう問題がありました。!gtOverflow()条件を追加して、オーバーフロー可能性のある加算ではローテーション最適化をスキップするようにしました。

#133854 Fix async profiler overflow test's full-depth resume filtering.

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

非同期プロファイラーオーバーフロー回帰テストを修正し、フル深度のリーフレジュームと有効な短いコンティニュエーションの区別を改善しました。スタック保護により、リーフ完了後に続きがキューに登録されることで有効な短いレジュームが生成される場合があり、フル深度の期待値に対してチェックされるべきではない問題を解決します。

#133825 JIT: Prevent loop hoisting across volatile reads

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JITコンパイラのループホイスティング最適化が、volatile読み取りのacquireセマンティクスを違反して、前の反復のvolatile読み取りを超えて通常のロードをホイストするリスクを排除します。volatile間接参照をループメモリハボックとして扱うことで、クロスイテレーション間の順序付けを保証します。

#133673 Honor JsonNumberHandlingAttribute declarations on C# unions

@Copilot・GitHub・area-Infrastructure-libraries

C# union型(判別共用体)のJsonNumberHandling属性設定を適切に処理するよう改善しました。union型に[JsonNumberHandling(JsonNumberHandling.Strict)]を指定した場合、JsonSerializerDefaults.Webでの数値の引用符付き文字列の曖昧性から除外されるようになります。リフレクションおよびソース生成メタデータを通じた回帰テストカバレッジを追加します。

#133537 Resolve WASM NativeAOT object relocations

@jtschuster・GitHub・arch-wasmarea-NativeAOT-coreclr

WASM NativeAOT向けのオブジェクトライターにおいて、IMAGE_REL_BASED_HIGHLOWリロケーション解決のサポートを追加します。また、シンボルエイリアスのサポートとエクスポートエントリの出力機能を実装します。ただし、Copilotの指摘通り、リロケーション対象の検証不足やエイリアス名前空間の管理、外部シンボルの処理に関する問題が存在し、承認前の対応が必要です。

#133417 [clrinterp] Split interpreter entry betwen managed and unmanaged callers

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

CoreCLR インタープリタエントリーポイントをリファクタリングし、ExecuteInterpretedMethod の処理を3つのメソッドに分割。管理コード呼び出し側用の高速パス(UCOチェック不要)とアンマネージ呼び出し側用の低速パス(UCOチェック必要)を分離し、インタープリタエントリーのマイクロベンチマークで約5%改善を実現しました。

#132927 Replace CoreCLR PAL wait subsystem

@jkoritzinsky・GitHub・area-VM-coreclr

CoreCLR の PAL(Platform Abstraction Layer)待機サブシステムを廃止し、Unix ネイティブ待機を単一ハンドルイベント待機に統一します。NativeAOT イベント実装を共有ランタイムに移動し、Windows ではネイティブ API を、Unix では pthread ベースの実装を使用する新しい CLREventBase を導入します。PAL_Sleep は Windows では Sleep に、Unix では EINTR セーフな nanosleep にバックアップされます。

#132744 [mono][llvm] Fix malformed uaddlp/saddlp intrinsic declarations

@rolfbjarne・GitHub・area-Codegen-LLVM-mono

Mono/LLVMのAArch64 NEON uaddlp/saddlpイントリンシック宣言におけるアウトオブバウンドアクセスの脆弱性を修正します。add_intrinsic()関数が不正なI1(8ビット結果要素)オーバーロードタグによりintrin_types配列の範囲外にアクセスしていました。LLVM 23以降のIRベリファイアがこの不正な宣言を拒否し、AOTコンパイルが失敗するようになりました。

2026年09月14日 (44 PRs)うち Bot 10 件 この日のページ →

#133902 Fix trim analyzer assertion for event initializers

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

Trim Analyzer がフィールドライク・イベント初期化子(例:event EventHandler EventNotNull = null!;)を処理する際にアサーション失敗が発生していた問題を修正します。Roslyn が IEventSymbol をイベント初期化子の操作ブロック所有者として使用する場合、Analyzer がメソッド・フィールド・プロパティのみを想定していたため、NativeAOT チェックビルドで MethodBodyValue のアサーションがトリガーされていました。本修正により、IEventSymbol をサポートし、イベント初期化子に関するリグレッション テストケースを追加しました。

#133900 ILTrim: Remove unused beforefieldinit constructors

@jtschuster・GitHub・area-ReadyToRun

ILTrimの静的コンストラクタ依存性追跡ロジックを修正し、未使用のbeforefieldinit静的コンストラクタとそれに関連する未使用の静的フィールドを安全に削除できるようにしました。明示的な静的コンストラクタや保持される静的フィールドに必要なコンストラクタは保持されます。この修正によりGenerics.GenericConstraintsテストが改善され、3つの古い予想失敗エントリが解消されます。

#133856 [wasm] Extract crossgen2 resolution test targets

@radekdoulik・GitHub・arch-wasmarea-Infrastructure

WebAssemblyネイティブビルドテストのNativeRelinkResolvesCrossgen2WithoutReadyToRunテストにおいて、インラインMSBuildアサーションをターゲットファイル(NativeRelinkResolvesCrossgen2WithoutReadyToRun.Build.targets)に抽出する変更です。テストロジックはMSBuildターゲット資産として再利用可能にしながら、既存の検証(build/publish変種、欠落パック診断)を維持します。

#133855 JIT: Fix GC reporting for xarch interlocked reference results

@EgorBo・GitHub・area-CodeGen-coreclr

x86/x64アーキテクチャにおいて、インターロック操作(Interlocked.Exchange、Interlocked.CompareExchange)の戻り値がオブジェクト参照の場合、JITがGC報告情報を正しく生成していなかった問題を修正しました。修正前は戻り値レジスタがGC参照として追跡されず、GCがヒープポインタを誤って見落とす可能性がありました。

#133846 Move RuntimeCustomAttributeData to shared CoreLib

@MichalStrehovsky・GitHub・area-System.Reflection

RuntimeCustomAttributeDataをコアライブラリ間で共有化するためのリファクタリングです。CoreCLR固有の実装を部分的なファイルに抽出し、Mono向けには除外した共有ソースを条件付きで組み込みます。これにより、複数のランタイム実装間でのコード重複を削減しながら、ランタイム固有のロジックを分離します。

#133805 JIT: Preserve evaluation order in GC bulk copies

@Copilot・GitHub・area-CodeGen-coreclr

GC bulk-copy lowering(ガベージコレクションのバルクコピー最適化)において、評価順序を保持するように修正しました。従来は宛先のnullチェックが送信元の評価より前に実行されるため、送信元の副作用がスキップされたり送信元例外がマスクされたりする問題がありました。Unsafe.Add(ref dst, Index()) = GetSrc()のような場合、GetSrc()は必ずコピー実行前に評価される必要があります。

修正内容:

  • nullチェックを両アドレス評価後まで遅延させる
  • GT_PUTARG_*ノードをnullチェック後に移動させ、引数配置はヘルパー呼び出しに隣接したまま維持

#133768 Populate runtime-async DiagnosticIP for Wasm R2R

@davidwrighton・GitHub・area-ReadyToRun

WebAssembly ReadyToRun形式でDiagnosticIP(診断用仮想IP)を実装し、runtime-async メソッドチェーンのスタックトレース精度を向上させるPRです。メソッド相対の仮想IP再配置を記録するコンパクトな固定アップセクション(delta/count/stride ULEB128形式)を追加し、ReadyToRun形式バージョンを29.0に引き上げています。旧runtimeは新形式のイメージを拒否します。

#133767 Report failed interface devirtualization lookup

@jtschuster・GitHub・area-ReadyToRun

マネージド インターフェース デバーチャル化で、インターフェース メソッドの実装が見つからない場合に CORINFO_DEVIRTUALIZATION_FAILED_LOOKUP を報告するように変更しました。CoreCLR VM JIT インターフェースの動作に合わせ、診断精度を向上させます。予期しない失敗後も CORINFO_DEVIRTUALIZATION_UNKNOWN を報告し、診断アサーションをトリガーします。

#133749 Preserve profiling for managed intrinsic implementations

@tannergooding・GitHub・area-CodeGen-coreclr

#132145で、Half変換に[Intrinsic]属性を追加したことにより、最小限のプロファイリング下での動的プロファイリングが意図しず無効化されました。これにより、AVX10.1非対応ハードウェアでdouble-to-Half変換の管理実装がインライン化されず、BinaryWriter.WriteHalfのパフォーマンスが低下しています。本PRでは、intrinsic実装のプロファイリング適格性を明示的な除外リスト方式に変更し、SIMD APIやコンパイラ/ランタイムプリミティブを除く通常の管理intrinsicメソッドをプロファイリング対象として復活させます。

#133734 Fix runtime diagnostics SOS test configuration

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

ランタイム診断SOS テストパイプラインを修正し、一貫性のあるランタイム、cDAC(Common Data Access Component)、DBI(Debugger Bridge Interface)アーティファクトを使用するように改善しました。主な変更は、ランタイムビルド時に生成される cDAC トランスポートパッケージを発行・復元し、マッチング保証を実現すること、インタープリタデバッグアセットのビルド、厳密な cDAC のみモード(OnlyUseCDac)での検証と別途強制DAC比較レグの実施です。

#133649 JIT: Initialize Wasm resume IP to a rethrowing value

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

WebAssemblyランタイムの例外処理におけるresume IP(再開命令ポインタ)の初期化と管理を修正します。プロローグでresume IPをゼロに初期化し、catchから正常に再開した後にリセットすることで、古い状態のresume IPがtryに見られるのを防ぎます。これによりIssue #133613で報告されたstale dispatch stateの問題を解決します。

#133544 Enable I2C linking via PR description

@mmitche・GitHub・area-Infrastructure-libraries

Idea2Customer (I2C) メトリクスのための issue リンキング機能を有効化するため、PR 説明に完全修飾形式の closing keyword (Resolves owner/repository#123) の使用を義務化するガイドラインを .github/copilot-instructions.md に追加するもの。これは GitHub が PR メタデータから issue metadata を直接解決できるまでの暫定的な回避策です。

#133413 [wasm] Resolve crossgen2 through the SDK

@radekdoulik・GitHub・arch-wasmarea-Infrastructure

WebAssembly (Browser-WASM/WASI) のネイティブ再リンク パイプラインを更新し、crossgen2 の解決を .NET SDK パック機構を通じて行うように変更しました。従来のワークロード ベースの crossgen2 プラムビングと廃止予定の Sdk.props シムを削除し、ReadyToRun を有効にせずに crossgen2 を取得できるようにします。

#133199 Fix ManagedWebSocket send cancellation leaving state Open

@steveisok・GitHub・area-System.Net

ManagedWebSocket.SendFrameFallbackAsyncにおいて、キャンセルトークンの登録がミューテックス取得前に行われていなかったため、ミューテックス待機中のキャンセルがAbort()コールバックをトリガーせず、WebSocketStateがOpenのまま残る問題を修正しました。これにより、特にAndroidやJIT-stressビルドで発生していたSendAsync_Cancel_Successテストのフレーキー失敗(#132031)を解決します。

#133150 [ci-scan-feedback] Allow fixer to read scanner-authored KBE bodies

@vitek-karas・GitHub・area-Infrastructure

CI failure scannerが作成したKnown Build Error (KBE)発行を、ci-failure-fixワークフローのfixerが確実に読み込めるようにする変更。スキャナがKBE issue bodyを作成しても、fixer側でそれを読み込めず分析・修正が不可能だった問題(#132745)を解決。GitHub APIでgithub-actions[bot]認証を正しく判定し、deterministicscanner_kbesジョブで事前フィルタリングしてから、MCP経由でagentに提供。

#132282 Handle exceptions from parallel ReadyToRun compilation

@agocke・GitHub・area-ReadyToRun

ReadyToRun と NativeAOT のコンパイラにおける並列コンパイル時の例外処理を改善しました。従来のスレッド/セマフォベースのオーケストレーションを Parallel.ForEach と新しい CompilationWorklist<TWorkerState> に置き換え、ワーカー例外の適切な伝播と早期クリーンアップを実現します。また、動的パーティショナー(バッファリングなし)を採用し、メソッドコンパイルコストのばらつきに対応してコア負荷を均衡させます。

#132221 JIT: contain shifts into byref ADD on arm64

@EgorBo・GitHub・area-CodeGen-coreclr

ARM64 JITコンパイラにおいて、シフト/乗算などの単項・二項演算をbyref型の親ノード下で含有可能にする変更です。これにより、base + (index << cns)のようなアドレス計算が、分割されたlsl + add命令ではなく、単一のadd ... LSL #imm形式で発行されます。

// 最適化前: 3命令
add     w5, w3, #1
lsl     x5, x5, #3
add     x5, x5, x0

// 最適化後: 2命令(シフト含有)
add     w5, w3, #1
add     x5, x0, x5, LSL #3

#131701 Support unsafe evolution in ComInterface, ComClass, JSImport, JSExport and VtableIndexStub generators

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

.NET 7/8以降で公開APIとなったCOMおよびJavaScript相互運用ソースジェネレータ([GeneratedComInterface]、[GeneratedComClass]、[JSImport]、[JSExport])を、C#の新しいunsafe evolution規則(unsafe-v2)に対応させました。生成されるコードが新規則下でコンパイル可能になります。既存のunsafe-v1規則では動作に変更はありません。

従来は型レベルのunsafe修飾子で安全でないコンテキストを供給していましたが、新規則では効果がなく警告CS9377が発生します。各メソッド本体に個別のunsafeブロックを追加することで対応しました。

2026年09月13日 (4 PRs)うち Bot 1 件 この日のページ →

#133790 JIT: Fix loop cloning with nested EH regions

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JIT ループクローニングで、ループの字句的な最下位ブロックがネストされたEH(例外処理)領域内にある場合に、スロー・ループプリヘッダーの配置が不正になる問題を修正しました。修正では、正しいEH領域に属するファスト・ループプリヘッダーを使用して配置を行います。

#133737 Fix JIT this pointer null check elision

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JIT コンパイラの this ポインタのヌルチェック削除(elision)に関するバグを修正します。インライン化時の引数一時変数マッピングを BAD_VAR_NUM で初期化することで、未取得の this ポインタが呼び出し側のローカル変数 V00 と混同されるのを防ぎ、必要なヌルチェックが削除されないようにします。

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

#133774 Fix Mono Windows x64 hardware exception continuations

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

Windows x64 Mono MiniJIT環境で、ハードウェア例外継続時にOSの例外継続アドレス検証によりFAST_FAIL_SET_CONTEXT_DENIEDで プロセスが終了する問題を修正します。ネイティブランタイムエントリポイント経由で復帰させることで、Monoの既存トランポリン機構を利用して管理対象ハンドラコンテキストを正しく復元できるようにしています。

#133747 Temporarily disable Windows x64 Mono MiniJIT runtime tests

@lewing・GitHub・area-Infrastructure-mono

Windows x64 Mono MiniJIT ランタイムテストパイプラインの一時的な無効化。Issue #133702で報告されたFAST_FAIL_SET_CONTEXT_DENIEDエラーにより46個のプロセスレベルタスクで繰り返し失敗している当該テストレグを、CIパイプライン設定から削除し、根本原因の調査期間中の一時的な緩和策として機能させます。Linux/macOS MiniJITテスト、Windows Monoライブラリテスト、その他Windows対応テストは変更されません。

#133709 Fix scalar-typed SIMD operands in Dot and mask inversion lowering

@tannergooding・GitHub・area-CodeGen-coreclr

JITコンパイラにおけるSIMD操作の不正な低水準化を修正しました。浮動小数点CreateScalarUnsafeの除去により、スカラー型のオペランドがLIRに残される一方、ハードウェア固有の命令コンシューマーはこれをベクトルレジスタとして読み込むため、Dot演算とマスク反転の2つの処理パスで不整合が発生していました。

#133546 Fix assumptions about PEP from the JIT / aot compiler code

@jtschuster・GitHub・arch-wasmarea-NativeAOT-coreclr

JITおよび共有AOTコンパイラコードがPortable Entry Points (PEP)を常に使用することを前提としていた仮定を修正するPRです。NativeAOTではPEPが使用されないため、PEP固有の動作をJITフラグの有無や#ifdefで条件分岐するように変更しています。また、getWasmTypeSymbolを共有のCorInfoImpl.csに移動しています。

#133146 Use external method thunks for Wasm R2R virtual dispatch

@davidwrighton・GitHub・area-ReadyToRun

WebAssembly上のReadyToRun(R2R)クラス仮想呼び出しを外部メソッドインポートthunk/fixupパスを通じて実行し、その後、動的に発行される仮想ディスパッチポータブルエントリポイント経由でvtableオフセットによる後続呼び出しを転送する機構を実装しました。初回呼び出しは通常のWasmImportThunkとExternalMethodFixupWorkerを経由し、適切なクラス仮想呼び出しについてはvtableスロットを解決してR2R呼び出し用にメソッドを準備し、対応するVthunkを検索して、ポータブルエントリポイントを動的に割り当て発行します。その後の呼び出しはパック化されたvtableオフセットを通じてターゲットをロードします。

#133028 Emit TaskWaitBegin and TaskWaitEnd for RuntimeAsync suspensions

@tommcdon・GitHub・area-Diagnostics-coreclr

RuntimeAsync サスペンション時に TaskWaitBegin ETW イベントを発行し、デバッガーが Task オブジェクトを列挙することなく、RuntimeAsync "current task" と awaited Task の関係を観察できるようにします。awaited Task を RuntimeAsyncTaskContinuation から抽出し、非同期デバッガー計測が有効な場合に InstrumentedHandleSuspended 内でイベントを発行します。

2026年09月11日 (46 PRs)うち Bot 15 件 この日のページ →

#133710 Add utf8, utf16, utf32 as accepted Encoding.GetEncoding aliases

@tarekgh・GitHub・area-System.Text.Encoding

Encoding.GetEncoding(string) メソッドが、ハイフンなしの utf8、utf16、utf32 のエンコーディング名をエイリアスとして受け入れるようになります。これまで Encoding.GetEncoding("utf8") は例外をスローしていましたが、Java、Python、ICU、Node.js など他の主要プラットフォームに合わせて対応します。また WHATWG Encoding Standard による要件でもあります。実際には Content-Type: application/json; charset=utf8 のようなHTTPレスポンスヘッダーで HttpClient が正しくボディをデコードできるようになります。

// 変更後、以下のコードが機能するようになります
var encoding = Encoding.GetEncoding("utf8");    // UTF-8へのマッピング
var encoding = Encoding.GetEncoding("utf16");   // UTF-16へのマッピング
var encoding = Encoding.GetEncoding("utf32");   // UTF-32へのマッピング

#133707 [wasm] Fix caller identification across R2R prestub transitions

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

WebAssembly環境でのR2R prestub遷移時に、MethodBase.GetCurrentMethodが誤ったメソッド(自身のprestubフレーム)を呼び出し元として報告する問題を修正します。Wasm portable-entrypoint slow pathで保持されるPrestubMethodFrameが関数スタックウォークで二重に報告され、呼び出し元特定ロジックが誤った結果を返していました。この修正は内部実装のバグ修正で、公開APIレベルの破壊的変更はありません。

#133704 Fix internal Helix queue alias expansion

@akoeplinger・GitHub・area-Infrastructure

Helix CI/CDパイプラインのキューエイリアス展開タイミングを修正しました。ライブラリとインストーラーサブミッションが内部.openキューを使用する際、コンパイル時の置換では$(helix_...)マクロが展開されないため、Helixが拒否していた問題を解決します。System.TeamProjectに基づいて公開または_internalキューエイリアスを明示的に選択することで、ランタイムマクロ展開を維持しつつ、CoreCLRの既存キューセレクタパターンに統一しました。

#133650 Skip LCG Jump-Stub Validation In Rundown Validation Test Under Interpreter Mode

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

CoreCLRインタープリタモードでの実行時、LCG(Light Code Generation)jump-stubの アンロード検証をスキップするテスト修正。インタープリタモードではjump-stubのロード後もcollectibleなdynamic-methodの状態が解放されないため、JIT固有のアンロードアサーションが不適切になる。一般的なEventPipe rundown検証と、Windows 64-bit DebugおよびChecked JIT構成でのLCG検証は引き続き実行される。

#133639 Fix CoreLib trimming substitutions for interpreter-only CoreCLR

@lewing・GitHub・linkable-frameworkarea-CodeGen-Interpreter-coreclr

CoreCLR のトリミング時に、インタープリタ専用ビルドの IsDynamicCodeCompiled プロパティが不正な値を返す問題を修正します。JIT 固有のトリミング置換を FeatureDynamicCodeCompiled フィーチャーゲートで条件付けすることで、インタープリタ専用ビルドでもコンパイルなしでダイナミックコードをサポートできるようにします。また、Apple モバイルプラットフォームの RuntimeFeatureTests を再有効化します。

#133634 [PERF] Update main performance pipeline triggers

@LoopedBard3・GitHub・area-Infrastructureperf-pipeline

.NET runtime のパフォーマンス測定 CI パイプラインのトリガー条件を最適化するための変更です。perf.yml では明示的な複数のリリースブランチ指定をワイルドカード release/*.0 に統一し、perf-build.yml と perf-slow.yml ではリリースブランチトリガーを削除して main ブランチのみに限定します。これにより、将来のリリースブランチ追加時にパイプライン設定の変更が不要になります。

#133631 Implement NativeAOT unboxing stubs for WASM

@Copilot・GitHub・area-Infrastructure

NativeAOT WASM コンパイル時に、ボックス化された値型インスタンスメソッドのアンボックス化スタブ生成がエラーとなる問題を修正します。WASM テールコール スタブを実装し、ABI パラメータを保持しながらボックス化された this ポインタを調整して、アンボックス化メソッドへ転送します。

#133624 Crossgen2: pass the hidden type arg for wasm array Address thunks

@AndyAyersMS・GitHub・area-ReadyToRun

WebAssembly向けReadyToRun(Crossgen2)でマルチディメンショナル配列のAddressメソッド呼び出しが失敗していた問題を修正します。wasm delay-load helper thunkの署名に必要な隠れた型引数(hidden instantiation argument)が不足していたため、署名生成ロジックを修正し、同時に関連するスモークテストの条件分岐を削除します。

#133621 JIT: validate RBO relop rewrite operands

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JITの冗長分岐最適化(RBO)におけるRelop書き換えの正確性向上。VN(値番号)のRelop操作数が実際のツリー操作数と一致する場合のみ、支配するRBOが残りの述語を書き直すことを保証します。これにより、具象化された述語を通すリベラルなVN動作による不正な簡略化を防止します。

#133612 [Test] Disable rundown in Block mode env test

@mdh1418・GitHub・area-Tracing-coreclr

EventPipeランタイム実行後処理(rundown)がストリーミングスレッド停止後に実行されるため、ブロックモード環境テストで誤った「イベント喪失」報告が発生していた問題を修正します。テストイベントペイロードをゼロパラメータのEventSource宣言と一致させています。

#133591 Group JitBlue regression tests by runner

@tannergooding・GitHub・area-CodeGen-coreclr

JIT回帰テストの構成を、競合が生じやすい明示的なソースリストからグロブベースの構成に変更し、テストをランナーごとのディレクトリで整理します。235個の個別プロジェクトをRegression_2とRegression_3配下に保持し、1,198ファイルを同一内容で再配置。Runtime_131557は新たにRegression_ro_2に組み込まれます。

#133589 Fix not-greater-than predicate when lowering SIMD selects

@tannergooding・GitHub・area-CodeGen-coreclr

JIT のレジスタ割り当て時に、SIMD のCompareNotGreaterThan述語がCompareGreaterThanMaskに誤って変換されていたバグを修正しました。AVX-512 マスク付きブレンド時に述語を正しく保持するよう、CompareNotGreaterThanMaskを使用するように修正しています。これにより NaN を含む順序付けられていない入力に対して正しい結果が得られるようになります。

#133576 Remove RCPC2 from the optimistic set on arm64

@BrzVlad・GitHub・area-ReadyToRun

ARM64プラットフォームにおいて、ReadyToRun (R2R) コンパイル済みコードの互換性を向上させるため、楽観的な命令セット仮定から rcpc2 を削除します。Android を含む古いデバイスで rcpc2 命令セットが利用できない場合のR2Rコード棄却を削減することを目的としています。rcpc2 は明示的に指定することで利用可能な状態は変わりません。

#133569 [wasm] Isolate unsupported struct callback test

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

browser-wasm CoreCLRで実行時にP/Invoke callback群がPlatformNotSupported_DynamicEntrypoint例外を発生させていた問題を修正するため、structinregテストのコールバック関連テストケースを独立したxUnit factに分離しました。マネージド構造体パッシングのテストカバレッジはbrowser-wasmとWASIで継続実行され、コールバックテストはサポートされたプラットフォーム上でのみ実行されます。

#133539 Fix vector complement-add folding for floating-point types

@tannergooding・GitHub・area-CodeGen-coreclr

JIT HWIntrinsic最適化における(~v) + 1折りたたみのバグを修正しました。ガードロジックが逆転していたため、浮動小数点型SIMD値に対して不正に-vへの変換が適用され、整数型の正当な変換がスキップされていました。ガードを整数型SIMD基本型のみに制限し、浮動小数点型では元の演算が保持されるようにしました。

#133535 [cDAC] implement GetVersionId

@rcj1・GitHub・area-Diagnostics-cdac

cDAC(Common Data Access Components)のIXCLRDataModule.GetVersionIdメソッドを実装します。ECMA メタデータから Module Version ID (MVID) を取得し、適切な HRESULT を返すようにします。メタデータが不足している場合は CORDBG_E_MISSING_METADATA を返す必要があります。

#133510 JIT: Fix wasm ABI register type mismatch

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

WebAssembly JITレジスタアロケータにおいて、構造体引数がABIパラメータレジスタに割り当てられる際、wasmの値型がレジスタの正規型と異なる場合の型不整合を修正。ABIパラメータを元のレジスタに保持しつつ、ローカル変数を正規レジスタ型で割り当て、プロログパラメータホーミング時に値を再解釈する処理を追加。

#133497 Fix cpu affinity set size to have minimal size

@janvorli・GitHub・area-GC-coreclr

カーネルのnr_cpu_idsが/sys/devices/system/cpu/possibleで報告されるCPU数より大きい場合、sched_getaffinity/sched_setaffinityの呼び出しが失敗する問題を修正。CPU affinity マスクの最小サイズをCPU_SETSIZEに設定することで、カーネルが要求する最小バッファサイズ要件を満たすようにしました。

#133496 Reduce noise in AttributeReadingPerformanceTests scaling assertion

@krwq・GitHub・area-VM-coreclr

AttributeReadingPerformanceTestsのスケーリング比率アサーションをCI環境の壁時間ジッターに対して耐性を持たせ、間欠的なテスト失敗(#131973)を修正します。テスト実行時間を増加させずに、小規模な入力側のノイズフロアを出すため、割り当て演算子に30msのベースラインフロアを導入します。

// 従来の方式
double actualRatio = (double)largeTime / Math.Max(smallTime, 1);

// 改善後
long baseline = Math.Max(smallTime, MinBaselineMs);  // MinBaselineMs = 30
double actualRatio = (double)largeTime / baseline;

#133494 Reduce allocations in Microsoft.Extensions.Configuration

@prozolic・GitHub・area-Extensions-Configurationcommunity-contribution

Microsoft.Extensions.Configuration APIにおいて、List<T>のプロバイダーリストに初期容量を設定することで、リスト増加時の再割り当てを削減するメモリ最適化です。ConfigurationBuilder.Build()、ConfigurationManager.ReloadSources()、ReferenceCountedProviderManager.AddProvider()の3つのメソッドを変更して、既知のソース数に基づいてリスト容量を事前に割り当てます。

#133484 Improve GC allocation failure diagnostics

@Copilot・GitHub・area-GC-coreclr

GC割り当て回帰テストの例外出力診断を改善し、割り当てサイズだけでなくテスト内で発生した例外の詳細情報をキャプチャして表示します。

catch (Exception ex)
{
    Console.WriteLine($"Unexpected exception when allocating {bytesToAlloc} bytes: {ex}");
    ret = -1;
}

#133458 Catch TypeSystemException in Debug check in crossgen2

@jtschuster・GitHub・area-ReadyToRun

PR #133057で厳格化された型チェックにより、crossgen2のデバッグ時にMethodEntrypoint構築時にTypeSystemExceptionがスローされるようになりました。本PRは、無効なILテスト用の不正なメソッドに対してこの例外をキャッチし、当該メソッドが実際にはコンパイルされていない(空である)ことをアサートすることで、デバッグビルドのアボートを回避します。

#133338 Share CoreCLR CustomAttributeData with native AOT

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

CoreCLRのRuntimeCustomAttributeData実装をNativeAOTと共有するようにリファクタリングを実施しました。従来のNativeAOT固有のRuntimeCustomAttributeData/NativeFormatCustomAttributeData型を削除し、共有実装に統合されます。NativeAOT反射オブジェクトはMetadataReaderとCustomAttributeHandleCollectionを提供することで、共有実装をサポートします。

#133235 JIT: avoid GS cookie conflict with secret stub argument in non-standard register

@jakobbotsch・GitHub・area-CodeGen-coreclr

AMD64 高速テールコール エピログにおいて、GS cookie チェック用のスクラッチレジスタ(R10)が、SecretStubParam の引数レジスタ(R10)と競合する問題を修正します。SecretStubParam が存在する場合は R11 を使用するように変更し、LSRA にテールコール コンテキストを渡してレジスタ キルと対象候補の一貫性を保ちます。

#133149 [ci-scan-feedback] Add build-break KBE dedup variation

@vitek-karas・GitHub・area-Infrastructure

Known Build Error(KBE)の重複検出を改善するため、テスト/メソッド識別子を持たないビルドブレークに対応する新しい検索バリエーション(variation 8)を追加します。このバリエーションは、不変エラーフレーズとビルドレグルートの両方を組み合わせて検索することで、タイトルや説明文の変動があっても重複を正確に検出できます。

#132979 Rewind trailing 0x1F byte in GZipStream on seekable leaveOpen streams

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

seekableベースストリーム上でgzipメンバーの展開後に単独の0x1Fバイト(gzipのID1マジックバイト)が残る場合、そのバイトが消費されずに基盤ストリームが次の読み込みポジションを越えてしまう問題を修正します。修正により、Inflaterが「未確認の単独0x1F検証」を記録し、seekableストリーム上でEOFに到達した際にDeflateStreamがそのバイトを巻き戻して後続の読み込み者に保持させるようになります。

#132720 Remove functional cDAC fallbacks

@noahfalk・GitHub・area-Diagnostics-cdac

cDAC(Contracts Data Access Component)のレガシーDAC互換性レイヤーから機能的なフォールバック動作を削除するPRです。レガシーインターフェースは、Debug時の比較検証とオブジェクトライフタイム管理にのみ使用し、非対応操作にはE_NOTIMPLを返すようにします。CoreCLRのENABLE_CDACパスでは、ICLRDataEnumMemoryRegions作成をcDACを経由せず直接ダンプ機能に割り当てます。

2026年09月10日 (39 PRs)うち Bot 5 件 この日のページ →

#133633 [PERF] Fix Helix monitor credentials in the runtime performance pipeline

@LoopedBard3・GitHub・area-Infrastructureperf-pipeline

dotnet/runtime#132807で導入されたヘリックスジョブモニター機能の回帰を修正するPRです。パフォーマンステストパイプラインにおいて、スタンドアロンモニタージョブがDotNet-HelixApi-Access認証情報にアクセスできず、プライベートHelixジョブの検出と完了追跡が機能していませんでした。パイプラインYAML内の変数グループインポートスコープをBuildステージレベルに昇格させることで、内部非PRビルド時にモニターが認証トークンを解決できるようにします。

#133610 [wasm] Fix duplicate R2R stack trace frames

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

WebAssembly (Wasm) 環境での ReadyToRun (R2R) メソッド実行時に、スタックトレースに重複したフレームが報告される問題を修正しました。ポータブルエントリーポイントのスローパスで R2R ボディを実行する際、PrestubMethodFrame がフレームチェーン上に残存していたため、同じ MethodDesc が2回報告されていました。修正では Wasm の GetStackFramesCallback で、直前に収集されたフレームと一致する PrestubMethodFrame のみを除外し、正当な prestub フレームは保持します。

#133598 Fix obsolete IGCHeap hosting comment

@matyaskollert・GitHub・area-GC-coreclr

IGCHeapインターフェースのヘッダコメントを更新し、廃止された「Hosting APIs」の説明と存在しないsrc/vm/corehost.cppへの参照を削除しました。新しいコメントではヒープサイジングと仮想メモリ制限APIの現在の役割を正確に説明しています。コメント変更のみで、インターフェースメソッドの実装や順序に変更はありません。

#133530 Add test quarantine skill

@lewing・GitHub・area-skills

テスト無効化作業における一般的な落とし穴(過度なカバレッジ抑制、実行前失敗への不適切な属性選択、マージランナー動作の見落とし)に対処するため、テスト隔離(quarantine)の再利用可能なワークフローを提供するリポジトリスキルを追加します。このスキルはエージェントに対して、失敗フェーズの分類、最小限の失敗単位の解決、パッシング理論行の保持、適切なxUnitまたはランタイムテストメカニズムの選択、プロセス分離とマージランナーの制限への対応などを指示します。

#133528 JIT: fix wasm conditional fallthrough

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

WebAssemblyのコード生成において、条件分岐の落下(fallthrough)処理を修正しました。隣接するブロックが常に有効なfallthrough対象とは限らない問題を解決しています。TryまたはExnRefWrapper区間を閉じるとターゲット前に命令が挿入される可能性があるため、既存のwasm fallthrough安全性チェックを条件分岐に再利用しました。

#133527 Avoid reducing unused Vector2 and Vector3 elements

@tannergooding・GitHub・area-System.Numerics

Vector2/Vector3の削減演算(Sum、Dot、Length、Distance、Normalize、Reflect)を最適化し、不要な4要素削減を避ける変更です。これまでは暗黙的にゼロ要素を含める4要素削減が行われていましたが、意味のあるX/Y(またはX/Y/Z)要素のみを削減するように改良しました。負のゼロの保持や非有限入力、未使用の上位要素に関するテストカバレッジも追加されています。

#133516 Fix missing transition adapters for shared Wasm R2R unboxing stubs

@lewing・GitHub・area-ReadyToRun

browser-Wasm CoreCLR ReadyToRun(R2R)での共有Unboxing Stubsの失敗を修正します。Interpreter↔R2R間の遷移アダプタ(例:MS56Tp、IS56Tip)が不足している場合の回避メカニズムを追加し、共有Stub構造と二項サイズの削減効果(約99.6%)を維持します。根本原因は、構造化共有により同じWasm形状でも異なる管理レイアウトを持つシグネチャが、異なるInterpreterアダプタを必要とする点にありました。

#133511 JIT: Normalize small unmanaged args on wasm

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

WebAssembly(WASM)プラットフォーム向けに、JITの非管理呼び出し時に小さい整数引数の正規化(32ビットへの符号拡張/ゼロ拡張)を適用するようになりました。これにより、WASMはARM32およびApple ARM64と同じ引数正規化ロジックに統一されます。Basic C ABIの要件に対応し、Issue #133506を修正します。

#133509 Add auxiliary symbol enumeration to cDAC

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

cDAC(Common Data Access Component)のAuxiliarySymbols契約にEnumerateAuxiliarySymbols()APIを追加し、全ての補助シンボルと対応するコードアドレスを列挙できるようにしました。これにより、ダンプ収集時にシンボルテーブルを事前に走査してヒープダンプにテーブルエントリとUTF-8名前をキャプチャできるようになります。

#133471 Fix cgroup v2 memory limit traversal at hierarchy root

@cuishuang・GitHub・area-Interop-coreclrcommunity-contribution

cgroup v2のメモリ制限走査ロジックを修正し、階層マウントルートを越えてメモリアクセスする問題を解決しました。以前のdo/whileループはマウントルート到達確認の前に親ディレクトリへ移動してしまい、null参照を引き起こす可能性がありました。修正後は序数比較を使用してパスを比較し、マウントルートの読み取り・走査前に停止するようにしました。

#133379 Fix GC lifetime in ComWrappers cache cleanup test

@Sergio0694・GitHub・area-System.Runtime.InteropServicestest-bugcommunity-contribution

ComWrappers キャッシュクリーンアップテスト ValidateExternalWrapperCacheCleanUpWithoutFinalizer における GC ライフタイム問題を修正します。テスト内でラッパーの唯一の強参照を破棄してから弱参照経由での回復を試みていたため、その間の GC 実行がターゲットを正当に削除し、GC ストレス下でテスト失敗を招いていました。TryGetComInstance アサーション検証を CreateAndAbandonWrapper ヘルパー内に移動させ、ラッパーが強く参照されている状態で実行するようにしました。ランタイム実装は変更なく、テストのみの修正です。

#133212 Expand cryptography instruction scope

@PranavSenthilnathan・GitHub・area-System.Security

暗号関連の機械学習支援ツール(Copilot)用フォルダ固有の指示スコープを拡張し、System.Security.Cryptography*ライブラリ、Microsoft.Bcl.Cryptography、および共有暗号化ソース・テストのすべてに適用するようにしました。これにより、関連する暗号化ディレクトリ全体にわたってガイダンスが一貫して適用されるようになります。

#133161 [release/10.0] JIT: Add visit budget checks to IsMonotonicallyIncreasing and ComputeDoesOverflow

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

JIT範囲チェック分析の病的な処理時間とメモリ消費を防ぐため、RangeCheck::IsMonotonicallyIncreasingとRangeCheck::ComputeDoesOverflowにvisit budgetチェックを追加するバックポート。制御フロー難読化を施されたメソッドのコンパイル時にJIT arenaメモリが7.9GBを消費する問題を解決し、テスト環境でのコンパイル時間を10064msから5msに短縮します。

#133159 Add more test coverage for TlsSession APIs

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

TlsSession API ファミリーのポスト・ハンドシェイク・クライアント認証機能を完成させ、テストカバレッジを拡張するPRです。RequestClientCertificate を呼び出すと、再度ハンドシェイクが再開され、Handshake() を通じて完了まで駆動されます。OpenSSL fd-mode(ソケットバウンド)セッションのサポートを追加し、バッファリング・ソケットバウンド・チャネルバインディング・暗号スイート関連の機能テストカバレッジを大幅に拡充します。

#133148 [ci-scan-feedback] Reject shared-console-log KBE catch-alls

@vitek-karas・GitHub・area-Infrastructure

CI失敗スキャナーで使用されるKBE(Known Build Exception)の作成ガイダンスを強化し、Helixの共有マルチテスト・コンソールログで無関係なサイバテスト失敗まで含む過度に広いシグネチャが生成されるのを防ぎます。共有コンソールログからの汎用スイート・ハーネス・エラーとテスト単位の通知のペアを拒否し、失敗テスト独自の出力を識別するかExcludeConsoleLog: trueを使用する必要があります。

#133128 Fold RuntimeInformation.IsOSPlatform / OperatingSystem.IsOSPlatform in ILLink

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

ILLink の UnreachableBlocksOptimizer が RuntimeInformation.IsOSPlatform() と OperatingSystem.IsOSPlatform() による OS プラットフォームガード(OSPlatform トークンまたは文字列リテラル経由)を定数畳み込みできるように拡張しました。これにより、特定ターゲット(例:browser/wasi)向けにトリミングされた共有フレームワークにおいて、到達不可能な OS ガード分岐と内部の P/Invoke が削除されるようになります。未知のカスタムプラットフォームトークンは手を加えず、分岐は保持されます。

#132646 [cDAC] Implement GetFieldAlignment via EEClass layout alignment

@lewing・GitHub・area-Diagnostics-cdac

WASM ArgIteratorで値型引数のフィールド配置を取得するため、cDAC RuntimeTypeSystem契約を拡張してランタイム計算によるEEClassLayoutInfoの配置情報を公開します。CdacTypeHandle.GetFieldAlignment()が例外をスローする問題を修正し、CEEInfo::getClassAlignmentRequirementStaticをミラーリングした実装を提供します。

// 実装例:GetClassAlignmentRequirementメソッド
// IRuntimeTypeSystem.GetClassAlignmentRequirement(ITypeHandle)で
// LayoutEEClass経由の配置情報をRuntimeTypeSystemから読み取る

#132636 Remove CoreCLR PAL semaphore support

@jkoritzinsky・GitHub・area-VM-coreclr

CoreCLRのPALセマフォオブジェクトサポートを削除し、メタデータのUTSemReadWriteを新しいminipal_rwlock抽象化に置き換えました。minipal_rwlockはWindows上ではSRWLOCK、その他のプラットフォームではpthread_rwlock_tで実装され、サポートされている場合はライター優先度を指定します。この変更によりPALの同期化サーフェスを縮小しながら、メタデータロック契約とデバッガ管理を保持します。

#132423 JIT: Improve modelling of AsyncResumedDef store in value numbering

@jakobbotsch・GitHub・area-CodeGen-coreclr

JITのValue Numbering分析でасync呼び出し後の「resumed」インジケータ定義をより正確にモデル化します。以下の2つのケースで、resumed値が必ず1であることを検出できるようになりました:

  1. 呼び出しが常にサスペンドする場合
  2. インジケータが既に1であり、再開時にのみ1が格納される場合

この改善により、以降のasync呼び出しでresumed値がカスタム定数にコンスタントフォールディングでき、同時にresumed=true時にはno-op関数の呼び出しを省略する最適化も追加されます。

#131793 Fix double slash when rejoining USTAR prefix and name

@Copilot・GitHub・area-System.Formats.Tar

USTAR形式のTarアーカイブ読み込み時に、prefixフィールドが末尾に/を含む場合、prefixとnameを結合する際に不正な//が生成される問題を修正しました。prefixが既に/で終わっているかチェックしてから区切り文字を挿入するよう改善します。

_name = _prefix.EndsWith('/') ? $"{_prefix}{_name}" : $"{_prefix}/{_name}";

2026年09月09日 (46 PRs)うち Bot 7 件 この日のページ →

#133531 JIT: expand all stack array allocations in a statement

@EgorBo・GitHub・area-CodeGen-coreclr

JITコンパイラのfgExpandStackArrayAllocationsがステートメント内の最初のスタック配列割り当てのみを展開し、後続の割り当てが展開されないバグを修正しました。unexpandedのまま残されたNEWARRヘルパー呼び出しは不正なStackArrayLocal引数を持ち、ローリング時のアサート失敗またはリリースビルドでのAVの原因となっていました。

#133482 [release/11.0] JIT: guard negative-offset bounds inference against underflow

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

JITの範囲推論ロジックにおいて、負のオフセットを持つ符号なし比較で下限の推論を行う際、アンダーフローの可能性を考慮していなかった脆弱性を修正します。この問題により、JITが不正に配列境界チェックを削除し、無効な負のインデックスに対してIndexOutOfRangeExceptionをスローする代わりに処理を続行する可能性がありました。

#133481 [release/11.0] JIT: fix range assertions for bypassed phi blocks

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

JITのrangeチェック最適化においてジャンプスレッディング(jump threading)によりバイパスされたブロックから古い(stale)range assertionが取り込まれる問題を修正します。この不具合により、有効なコードが不可能なエラーパスを実行して予期しない例外をスローする可能性がありました。本修正は.NET 11開発中に導入された回帰を解決します。

#133474 Delete ILCompiler.Compiler.Tests unit test

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

ILCompiler.Compiler.Tests単体テストプロジェクトを削除し、テスト戦略をEnd-to-End(E2E)テストに統一する変更です。9年間の運用経験から、このプロジェクトのユニットテストは冗長性が高く、AIが追加するテストも価値の低いものが多いと判断されました。Swift lowering テストはILCompiler.TypeSystem.Tests に移行され、今後のテストはsrc/tests配下のE2Eテストに集約される予定です。

#133463 Restore non-blocking browser WASM R2R runtime tests

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

WebAssembly上のブラウザCoreClR向けReadyToRun(R2R)ランタイムテストR2R_CG2ジョブをデフォルトruntimeパイプラインに復元しました。このジョブはエラーで継続実行され、共有Helixモニターをオプトアウトするため、既知の製品障害が関連のないPRをブロックしません。複数の既知の問題(#132855、#133219、#133307、#133464–#133469、#133502–#133506など)に対応する対象的なテスト/プロジェクト除外を追加しています。

#133444 Skip Runtime_133101 on Windows Mono MiniJIT

@lewing・GitHub・area-Infrastructure

Windows x64 Mono MiniJIT環境でRuntime_133101テストが実行時にアクセス違反(0xC0000005)で終了する問題に対応して、該当環境でのみテストをスキップするよう[ActiveIssue]条件を追加する変更です。他のランタイム、OS、アーキテクチャ構成では通常通りコンパイルおよび実行されます。

#133427 Fix duplicate fake authentication success response

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

NTLM/Negotiate認証をテストするための偽のサーバーが重複した認証成功応答を送信していた問題を修正。修正により、認証成功時に正確に1つのターミナル応答のみを送信し、Connection: closeヘッダを追加して後続リクエストが新しいHTTP/1.1接続を使用するようになります。これはAndroidでのタイムアウトやネットワーク遅延に伴う不安定性を解決します。

#133419 [wasm] Align the runtime-test call-helper generator override

@radekdoulik・GitHub・arch-wasmarea-Infrastructure

WASM runtime-testのコアラン呼び出しヘルパー生成を、ブラウザ/WASIアプリビルドと一致させるため、プライベートプロパティ_WasmCorerunGeneratorPathから共有プロパティPortableCallHelpersGeneratorPathへ統一します。既存のイン・リポジトリジェネレータフォールバック(Crossgen2InBuildDir)は保持されます。

#133407 Fix MIME encoded-word decoding

@rzikm・GitHub・area-System.Net

RFC 2047 MIME エンコード・デコード処理を改善し、通常のASCIIテキストと混在するエンコード語を正しく処理できるようにしました。主な改善点は以下の通りです:

  • トークン単位でのRFC 2047エンコード語デコード処理
  • B/Qエンコーディング識別子の大文字小文字を区別しない処理
  • 通常テキスト周辺の線形空白を保持しつつ、隣接するエンコード語間の空白は抑制
  • MailMessage.SubjectおよびContentType.Nameにおける混在エンコード語の認識

#133401 Enable NativeAOT delegate function-pointer tests

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

NativeAOTでデリゲート-関数ポインタ相互運用性テストを実行可能にするため、TestFunctionPointerから誤って配置されたIDispatch関連の[ActiveIssue]属性を削除します。このテストはIDispatch/COM機能に依存しておらず、NativeAOT環境での実行をブロックすべきではないため、スキップ条件を解除するものです。

#133399 Enable supported UnmanagedCallersOnly tests on NativeAOT

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

NativeAOT環境下でUnmanagedCallersOnly相互運用テストを実行可能にするPRです。主な変更として、ジェネリック型のインスタンス化されたメソッドを典型的な定義に正規化してから呼び出し規約を読み取ることで、コンパイラクラッシュを回避しています。また、プロジェクト全体のNativeAOT除外条件を削除し、NativeAOTで動作が異なる負のテストケースのみに条件を絞っています。

#133398 Narrow NativeAOT interop test exclusions

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

NativeAOT環境でのinterop テストカバレッジを拡大するため、プロジェクト単位の除外設定(NativeAotIncompatible)を削除し、未サポートの特定マーシャリング シナリオのみをインライン ガード(!Utilities.IsNativeAot)で除外する変更です。これにより、実装予定のない機能を除き、可能な限り多くのinterop テストを実行できるようになります。

#133397 Reject WinRT metadata types in compiler type validation

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

NativeAOT コンパイラの型検証ルールを強化し、WinRT メタデータ型(tdWindowsRuntime)を TypeLoadException で明示的に拒否するように変更しました。これにより CoreCLR の動作に統一され、NativeAOT 特有の例外処理が不要になります。対応する WinRT Interop リグレッション テストもスキップ解除され、NativeAOT 環境下で実行されるようになります。

#133368 Fix configuration reload test race

@svick・GitHub・area-Extensions-Configuration

構成ファイルリロード時の競合状態を修正するテスト改善です。FileConfigurationProviderがデータを更新してからプロバイダーのリロードトークンを発行するため、ルートのリロードトークンが変更される前に期待値が見える競合が発生していました。待機条件を強化し、期待値かつ対応するルートリロードトークン通知の両方を確認してからテストを続行するようにしました。

#133358 JIT: Dispatch OSR resumptions in tail-await-only methods

@jakobbotsch・GitHub・area-CodeGen-coreclr

Tier0段階で末尾の待機のみを含む非同期メソッドが、OSR(オンスタック置換)バージョンではインライン化によって非末尾待機を獲得する場合、OSR再開時に制御が正しく転送されない問題を修正します。Tier0に中断状態がない場合でも再開ディスパッチを生成することで、OSR継続が適切にOSRメソッドに制御を転送できるようにします。

#133324 JIT: Improve cast helper fallbacks

@EgorBo・GitHub・area-CodeGen-coreclr

JIT コンパイラのキャスト展開処理を最適化し、キャストヘルパーのフォールバック処理をより効率的に生成するもの。正確な型へのキャストでは型チェック失敗時に常に例外をスローすることを活用し、フォールバックを簡潔にするとともに、より専門的なヘルパーの利用条件が既に守られている場合は CHKCASTCLASS_SPECIAL ヘルパーを優先的に選択。

#133243 Fix JsonSchemaExporter handling of default struct parameters

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

JsonSchemaExporterが= defaultで宣言された非null値型の省略可能パラメータを処理する際、ParameterInfo.DefaultValueがnullになるケースでJsonExceptionをスローしていた問題を修正します。JsonParameterInfo.EffectiveDefaultValueを使用することで、スキーマのdefaultキーワード出力時に正規化されたデフォルト値を適切に処理するようになります。

#133093 JIT: fix TrailingZeroCount constant folding on 32-bit targets

@AndyAyersMS・GitHub・area-CodeGen-coreclr

BitOperations.TrailingZeroCount(ulong) の定数畳み込み処理において、32ビットターゲットで型のミスマッチが発生し InvalidProgramException が発生する問題を修正します。JITインポーターが TYP_LONG ノードを生成していたのに対し、戻り値型は int であるべき仕様との不整合を解決します。この問題は #80789(2023年1月)から導入され、.NET 8、9、10が影響を受けていました(.NET 6、7は正常)。

#132930 Use ArrayBuffer in SseParser, deduplicate more logic

@MihaZupan・GitHub・area-System.Net

内部バッファ管理パターンをArrayBufferでより一貫性を持たせるリファクタリング。SSEパーサーをArrayBufferを使用するように改良し、新しいDiscardAll()ヘルパーメソッドを導入してバッファクリア処理を簡潔にしています。複数のネットワーク関連コンポーネント(HTTP、TLS、Server-Sent Events)でバッファ管理ロジックを統一し、重複を削減することが目的です。

#132823 Handle bare LF in EightBitStream dot-stuffing to prevent SMTP corruption

@rzikm・GitHub・area-System.Net

SmtpClientのEightBitStreamがRFC 2821 Section 4.5.2のドット詰め処理で裸のLF(CR前置なし)を適切に処理していなかった問題を修正しました。従来はCRLFのみが行末として認識されたため、裸のLF直後の先頭ドットがドット詰めされず、\n.\nシーケンスがSMTPサーバーでCRLF.CRLF(データ終了マーカー)と誤解釈され、メッセージが破損する可能性がありました。

修正により、ドット詰め有効時に裸のLFを行末として認識し、CRLF(\r\n)に正規化するとともに行長をリセットします。

#132822 JIT: add JitEnablePhaseChecks, and disable it for the base SuperPMI asm diffs JIT

@jakobbotsch・GitHub・area-CodeGen-coreclr

JIT の phase ごとの検証処理を制御する新しい設定値 JitEnablePhaseChecks を追加します。SuperPMI の asm diffs において、既に検証済みのベースラインJITで検証処理を実行する必要がないため、ベースJITではこの検証を無効化し、テスト対象のdiff JITでは有効なままにします。これにより、asm diffs のベンチマーク処理が約11~22%高速化されます。

#132479 Clarify ArrayRecord handling of Multiple Null Records

@Copilot・GitHub・area-System.Formats.Nrbf

NRBF(.NET Remoting Binary Format)のArrayRecordにおけるNullレコードの取り扱いに関するドキュメント整理。複数のNullレコード("multiple null" records)が存在する場合の記録カウント動作を明確化するため、ArrayRecord.CheckExpectedRecordCountの上部にあるインラインコメントを更新し、より簡潔で的確な説明に改めたもの。

#131995 Regression test validating usage of static TLS resolver on Linux ARM64.

@lateralusX・GitHub・area-VM-coreclr

Linux ARM64で CoreCLRが通常の Release起動条件下で直接的な静的 TLS アクセスを使用できることを検証するリグレッションテストを追加します。このテストは管理対象の [ThreadStatic] フィールドにアクセスし、ARM64スレッドポインタアクセス命令(mrs ..., tpidr_el0)が生成されることを JIT逆アセンブリ検査インフラストラクチャで検証します。

[ThreadStatic]
private static int t_value;

[MethodImpl(MethodImplOptions.NoInlining)]
private static int AccessThreadStatic()
{
    // ARM64-LINUX: mrs {{x[0-9]+}}, tpidr_el0
    t_value = 100;
    return t_value;
}

#131869 Guard against empty remote address on macOS accept

@wfurt・GitHub・area-System.Net.Socketsos-mac-os-x

macOSでピアがAF_INET6リスニングソケットに接続した直後に接続をリセット(SO_LINGER=0)する場合、accept(2)が有効なファイルディスクリプタを返しながらリモートソケットアドレスバッファが未初期化(addrlen=0)のままになる問題を修正します。これによりEndPoint.CreateがArgumentExceptionをスローしてKestrelのacceptループが永続的に停止する不具合を解決します。

#131507 Managed ilasm: comprehensive parity fixes with native ilasm

@jkoritzinsky・GitHub・area-ILTools-coreclrlinkable-framework

マネージド ilasm (src/tools/ilasm) をネイティブ ilasm との完全互換性に向けて大幅改善するPRです。2,868個の ilproj テストファイルで約2,128個の失敗をほぼゼロまで削減。ANTLR文法修正、メタデータ生成の修正、シグネチャ書き直し機構の追加、IL本体の修正、および236個の新規ユニットテストの追加により、バイトレベルの正確性を実現しました。

2026年09月08日 (23 PRs)うち Bot 4 件 この日のページ →

#133428 [release/11.0][PERF] Add release/11.0 to trigger branches in perf.yml

@LoopedBard3・GitHub・Servicing-approvedarea-Infrastructureperf-pipeline

release/11.0ブランチを.NET Perf Labの自動実行トリガーに追加するAzure Pipelines性能テストワークフローの設定更新です。これにより、release/11.0ブランチへのコミット時に性能テストが自動的に実行されるようになります。既存のrelease/10.0などの他のリリースブランチと同じトリガーパターンに合わせた設定です。

#133409 Document SseParser buffer limits for untrusted and parallel use

@Copilot・GitHub・area-System.Net

System.Net.ServerSentEventsのSseParserを使用する際に、信頼できないまたは大規模なSSEストリームを解析するときのメモリ使用量制御に関するドキュメント更新です。SseParserOptions.MaxBufferSizeの設定推奨と、複数パーサーを並列実行する際のメモリ管理ガイダンスを追加しました。

サンプルコード:

using System.Net.ServerSentEvents;
using System.Text;

using Stream stream = await client.GetStreamAsync("https://localhost:12345/sse");
SseParserOptions<string> options = new(static (_, bytes) => Encoding.UTF8.GetString(bytes))
{
    MaxBufferSize = 64 * 1024 * 1024
};

await foreach (SseItem<string> item in SseParser.Create(stream, options).EnumerateAsync())
{
    Console.WriteLine(item.Data);
}

#133377 [wasm][coreclr] Use NoWasmIntrinsics substitutions for interpreted-only library tests

@pavelsavara・GitHub・arch-wasmos-browserarea-CodeGen-Interpreter-coreclr

CoreCLR WebAssembly(ブラウザ)の解釈実行モード(PublishReadyToRun=false)でトリミングされたライブラリテストが起動時にPlatformNotSupportedExceptionをスローして失敗する問題を修正します。CoreCLR解釈実行エンジンはマネージドSIMDをサポートしていないため、System.Runtime.Intrinsicsのget_IsSupported()ガード条件がトリミング時にtrueで固定化されると、SIMDパスが無条件に実行可能になり、インタプリタが例外をスローします。本変更は、CoreCLR + 非ReadyToRun構成でのみILLinkNoWasmIntrinsics置換ファイルを選択し、ガード条件を保持することで問題を解決します。

#133375 Exclude Runtime_129681 from WASM

@radekdoulik・GitHub・arch-wasmarea-Infrastructure

WASM32プラットフォームではRegion GCが未対応であるため、Runtime_129681 GC回帰テストをWASM32から除外する変更。テストはサポートされているCoreClrターゲット上では引き続き有効に保持される。修正前はWASM上で0x8007000Eエラーでスタートアップが失敗していた。

#133371 Retry peer-reset timeouts in socket disposal tests on BSD/Apple

@MihaZupan・GitHub・area-System.Net.Sockets

BSD/Apple プラットフォームにおいて、TcpReceiveSendGetsCanceledByDispose ソケット廃棄テストが peer-reset タイムアウトで不安定になる問題を修正します。既存のリトライループを拡張して、Apple/FreeBSD の send パス上での peer-receive タイムアウトを処理し、新しいソケットでリトライできるようにしました。ローカル キャンセルまたは廃棄の待機タイムアウトは引き続き即座に失敗します。

#133367 [wasm] Build a test-specific corerun for nine more runtime tests

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

browser-wasm環境における9つのランタイムテストプロジェクトからWasmBuildTestCorerun=falseの opt-outを削除します。PR #131877でinterop generatorがP/Invoke surfaceを処理できるようになったため、これらのプロジェクトはテスト固有のcorerun.wasmをネイティブライブラリ連携させて構築できるようになり、__TestNativeAssetsLinkedフラグが設定されてPlatformDoesNotSupportNativeTestAssetsゲートが解除されます。

#133361 Limit the size of SNI parsed from ClientHello

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

ClientHello のSNI (Server Name Indication) ペイロード解析時、DNS ホスト名の標準上限である255バイトを超える値の処理を改善しました。255バイトを超えるSNI値は不正な形式として扱い、管理されたstring割り当てを回避しつつ、TLSフレームは完全であると判定し続けます。

#133351 Fix discarding of NRE's when unboxing nullables in Mono and JIT

@jakobbotsch・GitHub・area-CodeGen-coreclr

VN(Value Number)ベースの定数フォールディング最適化がnullable型のunboxing時にNullReferenceExceptionを不正に破棄する問題を修正します。JIT と Mono インタープリタの両方で、box Nullable<T>; call GetType()のような操作が例外をスキップしていた問題を解決し、例外セットが操作数でカバーされていない場合に「throwing root」を保持するようにします。

#133281 [Wasm RyuJIT] Fix: Pass Call's struct type to Wasm ABI Classifier Instead of Dest Store Type

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

WebAssembly RyuJIT で、単一レジスタで返される構造体を返す関数呼び出しの戻り値をストアする際、ABI 分類を宛先のストア型ではなく関数呼び出しの戻り値型に基づいて判定するように修正しました。これにより、戻り値の型と宛先の型で ABI 分類が異なるケース(例:Vector64<int> を V2<int> にキャストしてストアする場合)でも正しく処理されます。

#133256 [release/11.0] Fix SIMD MinMax constant special cases

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

xarch上のSIMD Min、Max、MinNumber、MaxNumberが定数ベクトルに通常の値とNaN/符号付きゼロが混在する場合に不正な結果を返す回帰バグを修正します。AVX-512パスではオペランド全体が誤って返される場合があります。JIT import時の定数分類とfixupテーブル構築をレーン単位で評価するよう変更し、混在するNaN/符号付きゼロケースを正しく処理します。

#133218 Generate ReadyToRun unboxing stubs for browser Wasm

@davidwrighton・GitHub・area-ReadyToRun

WebAssembly向けReadyToRun(R2R)実行時において、メソッドごとのJIT生成アンボックス処理スタブを共有構造化Wasmスタブに置き換えます。これにより、アンボックス処理の実装が構造的署名キー(U、UG、UM)によって検出可能な共有スタブになり、コードサイズとメタデータサイズが大幅に削減されます。

#133200 Stabilize ConnectAsync_Cancel_ThrowsCancellationException loopback test

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

System.Net.WebSockets.Client.TestsのConnectAsync_Cancel_ThrowsCancellationExceptionテストの不安定性(#130439)を修正します。JIT-stressによるスケジューリング遅延により、キャンセルトークンがTCP接続確立前に発火し、サーバーがAcceptで無限ブロックされる問題を、クライアント/サーバー間の明示的な調整により解決します。

#132819 [CI Test] CoreCLR interpreter without dynamic code compilation

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

macOS arm64 CoreCLR インタープリターの CI テスト カバレッジを拡張し、動的コード コンパイルが無効な環境での挙動を検証するための変更です。iOS/WebAssembly などの動的コンパイルが許可されない環境への対応をより正確に代理できるようにするため、-dynamiccodecompiled false フラグで実行するテスト構成を追加します。

#132489 [Apple mobile] Stage the Helix R2R app payload outside the crossgen2 input directory

@davidnguyen-tech・GitHub・area-Infrastructure-monoos-iosos-tvos

Apple mobile向けHelix R2Rコンパイルの再試行時における入力破損を修正するPRです。従来、publish/ディレクトリがcrossgen2の入出力として使われていたため、再試行時に前回の試行で生成された既コンパイルのILストリップアセンブリが再度crossgen2に入力され、「A method body required at runtime was stripped from the ReadyToRun image」というエラーで失敗していました。本修正により、publish/を常に安定したcrossgen2入力として維持し、R2R出力はobj/r2r-app-bundle-source/という中間ディレクトリに集約します。

#131675 Deduplicate Tar writer/entry helpers

@alinpahontu2912・GitHub・area-System.Formats.Tar

System.Formats.Tar ライブラリ内の重複したヘルパーメソッドをリファクタリングし、コード重複を削減します。プラットフォーム固有のファイル(Unix/Windows)に分散していた同一の実装をクロスプラットフォーム共有ファイルに統合し、保守性と可読性を向上させます。

2026年09月07日 (18 PRs)うち Bot 8 件 この日のページ →

#133268 JIT: fix range assertions for bypassed phi blocks

@EgorBo・GitHub・area-CodeGen-coreclr

JITのレンジチェック解析において、ジャンプスレッディングによってPhi関連ブロックが迂回された後に発生する古いアサーション情報に依存する問題を修正します。アサーションのマージをComputeRangeForLocalDef内部から使用サイト(MergeAssertion)に移動することで、ローカル変数の範囲計算の正確性を改善します。

#133248 Implement wasm JumpStubNode with signature-matched argument forwarding

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

WebAssembly AOT コンパイルで、アドレス取得対象メソッドのジャンプスタブ実装を追加しました。これにより、NotImplementedException が発生していた Wasm スタブ生成が機能するようになり、ターゲットメソッドのシグネチャを保持したまま引数をすべて転送して制御を移譲できるようになります。

for (int i = 0; i < signature.Params.Types.Length; i++)
{
    expressions.Add(Local.Get(i));
}
expressions.Add(ControlFlow.Call(_target));
encoder.FunctionBody = new WasmFunctionBody(signature, expressions.ToArray());

#133228 JIT: Sharpen condition to avoid preserving call definition targets in continuations

@jakobbotsch・GitHub・area-CodeGen-coreclr

JITコンパイラの非同期呼び出し時の継続状態キャプチャを最適化するPRです。EH(例外処理)領域内で完全に定義されたローカル変数について、その前の値を保存する条件をシャープにしました。EH後続ブロックまで生存しているローカル変数のみを保存することで、通常フローでのみ使用される結果一時変数の冗長な継続状態キャプチャを回避します。ASP.NETのSocketConnection.DoSendなど、ホットパスでの不要なローカル変数キャプチャを削減できます。

#132829 [browser] Fix WebAssembly publish output path message

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

WebAssemblyブラウザ(wasmbrowser)発行時のコンソール出力メッセージを改善し、汎用的なpublish/ディレクトリではなく、実際に提供可能なアプリケーションが配置されるpublish/wwwroot/ディレクトリを明示するようにしました。ネストされた発行による重複メッセージは抑制されます。

出力例:

Before:
app -> bin/Release/net8.0/publish/

After:
app -> bin/Release/net8.0/publish/
app (wwwroot) -> bin/Release/net8.0/publish/wwwroot/

#130588 JIT: Elide transitive array bounds checks

@EgorBo・GitHub・area-CodeGen-coreclr

JITコンパイラの配列境界チェック最適化を拡張し、推移的な符号なし関係を通じて冗長な境界チェックを削除できるようにしました。例えば、index < size <= items.Lengthというパターンで、最初の条件が満たされれば2番目の境界チェックは不要となり、生成コードサイズを48バイトから23バイトに削減します。

static int Test(int[] items, int size, int index)
{
    // size-VN <= checked-bound-length-VN
    // size-VN u> checked-bound-index-VN
    // の2つのアサーションが作成される
    if ((uint)size <= (uint)items.Length && (uint)index < (uint)size)
    {
        return items[index];
    }
    return 0;
}

2026年09月06日 (4 PRs) この日のページ →

#133312 [Mono][browser] Quarantine double Min/Max NaN payload tests

@lewing・GitHub・arch-wasmarea-System.Numerics

Mono browser-WASM環境で、double型のMax/Minジェネリック数学テストケースのNaN符号・ペイロードテストをQuarantine(隔離)します。共有テストメソッドやデータセットを分割せず、MaxDoubleとMinDoubleに条件付きチェック(PlatformDetection.IsMonoRuntime && PlatformDetection.IsWasm)を追加することで、Mono browser-WASM環境でのみ該当テストケースを除外します。他のランタイムではすべてのMax/Minカバレッジは変更されません。

#133310 Narrow browser WASM R2R test exclusions

@lewing・GitHub・arch-wasmarea-CodeGen-coreclros-browser

WASM ReadyToRun(R2R)テスト環境を復帰させるため、既知の失敗パターンに絞り込んでテスト除外条件を設定するもの。インタープリタとその他プラットフォームのカバレッジは維持しながら、ブラウザR2R専用の失敗を抑制します。具体的には、メソッドレベルのActiveIssue条件、空のAssembly.Locationの処理、Crossgen2コンパイル失敗への対応を含みます。

#133203 [perf][wasm] fix wasm-perf lane, stage complete CoreCLR toolchain cohort

@lewing・GitHub・arch-wasmarea-Infrastructure

WebAssembly パフォーマンス パイプラインの成果物ステージング処理を改善し、CoreCLR ブラウザ-WASM ビルドの完全な同一ビルド NuGet コホート を実装しました。Mono ワークロード インストール前に必要な Crossgen2 パックと ILLink.Tasks パックを確実に提供し、欠落パッケージエラーとバージョン不一致による restore 失敗を修正します。

#133079 JIT: Expand REFANYTYPE QMARK before physical promotion

@jakobbotsch・GitHub・area-CodeGen-coreclr

REFANYTYPE null チェックで生成される GT_QMARK が physical promotion 前の早期段階で展開されるよう修正しました。これまで QMARK 腕内の struct ストアは physical promotion でサポートされていませんでしたが、この変更により QMARK を早期展開対象にマークすることで、unsupported な promotion/readback シナリオを回避します。

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

#133295 Disable Runtime_133209 narrowing cast test on Mono

@Copilot・GitHub・area-Infrastructure

MonoランタイムでRuntime_133209.CheckedNarrowingCast_WithNarrowedOperandテストが予期しないOverflowExceptionで失敗している問題に対応し、Mono上でのみこのテストをスキップするように修正します。CoreCLRおよび他のランタイムではテストは有効のままです。

[SkipOnMono("https://github.com/dotnet/runtime/issues/100368")]
public void CheckedNarrowingCast_WithNarrowedOperand()
{
    // テスト実装
}

#133266 [wasm] Recognize R2R virtual IPs in IsManagedCode

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

WebAssemblyでのReadyToRun(R2R)仮想命令ポインタが、スタックウォーク時に不正にネイティブコードに分類される問題を修正。ExecutionManager::IsManagedCodeWorkerが仮想IPを既存の仮想範囲ルックアップ(FindCodeRange)にルーティングするように改善し、マネージドfunctlet呼び出し元の誤分類を防止。ネストされたfinallyブロック内のGCスタックウォーク時のアサーション失敗(fFrameWasUnwound)を解決。

#133227 Use rolling internal Windows queue for helix_windows_x64_latest_internal

@jakobbotsch・GitHub・area-CodeGen-coreclr

廃止されたHelix キュー Windows.11.Amd64 への参照を、ローリングキュー Windows.Amd64.rt に更新するもの。これにより、内部Windows x64 Helix レグ(runtime-coreclr superpmi-collect含む)が「Helix API does not contain an entry for Windows.11.Amd64」エラーで失敗する問題を解決します。内部の最新キューを、既に公開キューで使用されているローリングパターンに統一します。

#133164 Add ComWrappers RCW cache concurrency tests, and fix an RCW being handed out before it can be resolved

@Sergio0694・GitHub・area-System.Runtime.InteropServicescommunity-contribution

ComWrappers RCWキャッシュの並行性をカバーするテストを9つ追加し、キャッシュからの取得時にラッパーがまだ登録されていない状態のRCWが返される競合状態を修正します。修正により、キャッシュ参照が公開される前にs_nativeObjectWrapperTableへの登録が完了することが保証され、ComWrappers.TryGetComInstanceが失敗する競合ウィンドウが解消されます。

#132920 Avoid shared-file races in parallel CoreCLR builds

@EgorBo・GitHub・area-Infrastructure-coreclr

Windows上での並行CoreCLR ビルド時に発生する共有ファイルアクセスの競合を解決するPRです。Python発見時の一時ファイル共有を廃止し、MSVC PGOデータベースをビルドツリー内にコピーしてファイル共有違反を回避します。複数のdotnet/runtimeリポジトリを同時にビルドする際の不安定性を改善します。

2026年09月04日 (31 PRs)うち Bot 6 件 この日のページ →

#133239 [wasm][wasi] CoreCLR-WASI bring-up fixes: Checked build, PAL stubs, getHelperFtn, call helpers

@pavelsavara・GitHub・arch-wasmarea-VM-coreclros-wasi

CoreCLR-on-WASI bring-up向けの複数の独立した修正セット。Checked buildでのJIT/CodeGenBringUpTests実行時に発見された問題を解決します。主な修正は、WASI PAL stubs(PAL_ProbeMemory)の提供、WASI例外処理フラグのビルド時条件制御、ReadyToRun関連アサーションの緩和、WASI call-helper テーブルの再生成です。

#133210 [wasm] Narrow multi-use operands read out of long locals

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

WebAssembly JITコード生成における型不整合バグを修正します。型縮小キャスト(long → int)が施されたローカル変数を複数回使用する場合、再マテリアライズ時に必要な型変換(i32.wrap_i64)が漏れていました。これにより、スタック型が不正なwasm(例:i32.eqz が i64 に適用される)が生成され、wasm検証に失敗していました。

修正内容: genEmitMultiUseOperandGet ヘルパーを追加し、ローカル変数の再取得時に適切な型変換を挿入します。実際の案件(Jil)では7つの不正なwasm関数が修正されました。

#133206 JIT: Synthesize profile data when invalid counts are discarded

@tannergooding・GitHub・area-CodeGen-coreclr

JITのプロファイル誘導最適化(PGO)において、エッジカウント再構築後にプロファイルデータが無効化される場合の処理を改善しました。従来のRepairLikelihoodsに加えて、fgPgoHaveWeightsがクリアされた場合はResetAndSynthesizeを実行し、ヒューリスティクスでエッジの可能性を再合成します。これにより、無効なプロファイルデータがプロファイル由来と誤標識されることを防ぎ、コールドパスの最適化判定が正確になります。

#133205 Fix EC public key export for provider keys

@vcsjones・GitHub・area-System.Security

PKCS#11 OpenSSL プロバイダーを使用したEC公開鍵エクスポートが失敗する問題を修正します。プロバイダーベースのキーでは、EVP_PKEY_todata KEYMGMT APIを通じて公開鍵を取得する必要があります。既存のダイレクト公開鍵フェッチを試行し、失敗した場合にEVP_PKEY_todataを使用するフォールバック処理を追加して互換性を保ちながら対応します。

修正前:CryptographicException: Error occurred during a cryptographic operation が発生 修正後:EC公開鍵のエクスポートが成功し、X.509証明書への秘密鍵の結合が可能に

#133173 Fix SIMD MinMax constant special cases

@tannergooding・GitHub・area-CodeGen-coreclr

SIMD Min/Max定数処理におけるNaN および符号付きゼロの検出ロジックを修正しました。従来は全ベクトルに対するチェックを行っていたため、特殊値(NaN・符号付きゼロ)と通常値が混在する定数の場合、マネージドセマンティクスが失われていました。本修正では、レーン単位での特殊値検出に変更し、任意のレーンに特殊値が存在する場合を正しく処理するようにしました。

#133170 [release/10.0] Fix SIMD primitive zero initialization

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

SIMD型のローカル変数をbyref経由で構造体として再解釈し、ゼロ初期化する際に、JITが不正な命令エンコーディング(vmovq ymm0, rax)を生成し、実行時にExecutionEngineExceptionまたはTier0でInvalidProgramExceptionをスローするバグを修正します。修正により、正しいSIMDゼロ(vxorps)が生成されるようになります。

// 問題のパターン例:Vector256<ulong>をstructとしてbyref経由でゼロ初期化
Unsafe.As<Vector256<ulong>, S>(ref v) = default; // 不正な命令が生成される

#133165 Use writable UserSecrets path on Apple mobile

@svick・GitHub・area-Extensions-Configuration

Apple mobile プラットフォーム(iOS、tvOS、MacCatalyst)において、UserSecrets のパス解決ロジックを修正しました。従来はHOME環境変数を使用していましたが、これらのプラットフォームではHOMEが書き込み不可のため、プラットフォーム固有の書き込み可能なアプリケーションデータディレクトリにフォールバックするようにしました。これにより、以前は無効化されていたiOS/tvOS上のUserSecretsテストを再度有効にしました。

#133163 [clrinterp] Avoid redundant checking for frame data during method return

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

CoreCLR インタープリターの戻り値パスを最適化します。localloc を使用しないメソッドの戻り時に、フレームデータスタックのポップチェックをスキップできるようにします。一般的な戻り値パスでこのチェックを避けることで、シンプルな呼び出しマイクロベンチマークで 9% の高速化 を実現します。

#133137 Improve PemEncoding.TryFind perf with degenerate inputs

@bartonjs・GitHub・area-System.Security

PemEncoding.TryFindのパフォーマンスを改善し、PostEB(Post-Encapsulation Boundary)の検索戦略を最適化しました。次のハイフン位置を先に確認することで、無効なPostEBに対する高コストなBase64検証をスキップできます。病的な入力(多数のBEGINマーカーを含む)でのパフォーマンス低下を緩和します。

#133136 Fix Wasm SCC dispatcher predecessor rewrites

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

Wasm SCC(Strongly Connected Component)ディスパッチャーの前身書き換え処理を修正します。TransformViaSwitchDispatchが複数のSCCエントリヘッダーを順序付けで処理する際、早期ヘッダーの書き換えによって新たにライブになった先行ブロックが、後続するtryヘッダーの先行ブロックとして扱われ、制御変数ストアが重複代入されてディスパッチケースが上書きされていた問題を解決します。

#133117 [release/11.0] Fix Crossgen2 variance validation for type constraints

@jtschuster・GitHub・Servicing-approvedarea-ReadyToRun

Crossgen2のReadyToRun型検証におけるジェネリック分散(variance)ルールの適用ロジックを修正するバックポートです。従来、型の独自の制約(own constraints)に分散ルールが誤って適用され、有効なvariant interfaceがRUNTIME_FLAG_SkipTypeValidationフラグを失う問題が発生していました。本変更でECMA-335 II.9.7仕様に準拠した検証に修正し、パフォーマンス最適化を復元します。

#133111 Use SDK pipeline for WebAssembly framework R2R

@jkoritzinsky・GitHub・arch-wasmarea-ReadyToRun

Browser WebAssembly CoreCLRランタイムパックのReadyToRun(R2R)コンパイレーションをSDK Crossgen2パイプラインを通じてルーティングする変更です。従来は手書きのExecパスを使用していたため、SDKの通常のコンパイラ準備、コマンド構築、エラーハンドリング、テレメトリ、インクリメンタルビルドの利点が失われていました。本変更により、WebAssembly固有のサイドバイサイドレイアウト(IL アセンブリはruntimes/browser-wasm/lib/<TFM>配下、R2R WebCILイメージはruntimes/browser-wasm/native/r2r配下)を保持しつつ、SDK パイプラインの機能を活用できるようになります。

#133090 [release/8.0] Detect ephemeral client cert key via SEC_E_UNKNOWN_CREDENTIALS in QUIC

@Copilot・GitHub・Servicing-approvedarea-System.Net.Quic

MsQuicの最新版アップデートにおいて、エフェメラルキー(Windowsでキーストアに永続化されない一時的な秘密鍵)を持つ証明書の使用時に返されるエラーコードが変更され、診断困難な例外が発生していた問題を修正します。SEC_E_UNKNOWN_CREDENTIALSエラーコードを検出して、より有用なAuthenticationExceptionを生成するようにWindows QUIC実装を改善し、関連する回帰テストを追加します。

#133039 Restore chaos65204782cs as a standalone JIT test

@steveisok・GitHub・area-CodeGen-coreclr

PR #132167でchaos65204782cs.csをマージされたJIT.Genericsランナーにコンパイルしたことにより、Mono FullAOTの再帰的ジェネリックメタデータが拒否され、ランナー全体のAOTコンパイルが失敗していました。本PRではこのテストを専用プロジェクトとして復元し、プロセス分離で実行しながら、Mono MiniFullAOT/LLVMFullAOTからのみ除外することで、マージされたランナーのFullAOTカバレッジを維持します。

#133038 Support serialized type names in R2R type maps

@jtschuster・GitHub・area-Interop-coreclrarea-ReadyToRun

ReadyToRun (R2R) 形式でカスタム属性ブロブから取得したシリアル化型名をサポートするための拡張です。R2R fixup(参照解決情報)では符号化できないエントリに対して、遅延解決される名前ペアとしてエンコードし、fixupハッシュテーブル後にネイティブシーケンスとして配置されます。R2R形式バージョンは28に引き上げられています。

#132965 [wasm] Delete hand-written R2R-to-interpreter thunks; rely on crossgen2's

@pavelsavara・GitHub・arch-wasmarea-CodeGen-Interpreter-coreclr

WebAssembly向けRuntime環境で、R2R(Ready-to-Run)からInterpreterへの遷移thunkを手書きテーブルから削除し、crossgen2が生成するpregenerated thunkへ統一する変更です。ReadyToRunが無効な場合はnative thunkを作成しない仕様に変更し、managed/unmanagedのcalli呼び出しパスを分離して、thunk検索をR2Rイメージのstring tableに集約します。

#132944 Allow constrained. call and ldftn for static virtual interface methods in ILVerify

@pkuyo・GitHub・area-Tools-ILVerification

ILVerifyが静的仮想インターフェースメソッドをサポートするように更新されました。Roslyn が T.M() に対して生成する IL パターン(constrained. !!T 後に call/ldftn)に対して、従来の誤った Constrained および CallAbstract エラーが報告されていた問題を解決します。制約付き型が実際にそのインターフェースを実装しているかを検証し、新しい ConstrainedTypeNoInterfaceImpl エラーを報告します。

#132816 JIT: extend relaxed checks through morph

@AndyAyersMS・GitHub・area-CodeGen-coreclr

JIT IR フラグ検証の「relaxed」モードを global morph を通じて拡張し、ローカル morph、インライニング、オブジェクト割り当て書き直し時に副作用とフラグ情報の一貫性を保つようにする変更です。これにより、JIT コンパイラの IR 変換プロセス全体でフラグの妥当性がより緩く追跡されるようになります。

#132713 Extract WASM data segment functionality to an interface and create implementations for WebCIL and NativeAOT

@jtschuster・GitHub・area-ReadyToRun

WASM データセグメント機能をインターフェース化し、WebCIL と NativeAOT 向けの実装を作成するリファクタリング。これまで WebCIL と NativeAOT は異なる方法でデータセグメントを出力していた(WebCIL は単一セグメント内に複数の SectionWriter を使用、NativeAOT は 1:1 マッピング)が、単一の DataSection 型を使用するために IWasmDataSegment インターフェースを導入。同時にセクション/セグメントのアライメント所有権を集約器から各セクション/セグメント自体に移譲し、アクティブセグメントのメモリオフセット計算をサイズ計算・出力前に実施する構造に変更。

#131931 Linked cache entry thread safety fix

@rosebyte・GitHub・area-Extensions-Caching

Microsoft.Extensions.Caching.Memoryのキャッシュエントリにおいて、有効期限トークンの並行処理下での安全性を向上させるもの。可変なList<T>をコピーオンライト方式のExpirationTokensListに置き換えることで、キャッシュヒット時にロック不要なトークンスキャンを実現し、リンクされたキャッシュエントリ間のトークン伝播を並行読み取り下で安全にする。

#131877 [wasm] Compute CoreCLR P/Invoke struct sizes with crossgen2's type system

@radekdoulik・GitHub・arch-wasmarea-ReadyToRun

WebAssembly CoreCLR P/Invoke ヘルパー生成パイプラインを、hardcoded構造体サイズテーブルから crossgen2 の型システムを使用した動的計算に移行します。crossgen2に --generate-portable-callhelpers オプションを追加し、構造体フィールドレイアウトを正確に計算した C++ ヘルパーファイルを直接出力します。これにより、7つのエントリしかないテーブルの制限が解消され、複雑な構造体を含む P/Invoke シグネチャが正確に処理されます。

2026年09月03日 (56 PRs)うち Bot 16 件 この日のページ →

#133162 [release/10.0] Don't pass empty string as SNI to QUIC

@rzikm・GitHub・Servicing-approvedarea-System.Net.Quic

MsQuic への QUIC クライアント接続時に空文字列の SNI (Server Name Indication) を渡さないようにする修正。Linux 上で QUIC/HTTP/3 接続を確立する際、TargetHost が指定されていない場合に空文字列を SNI として渡すことで MsQuic が TLS エラーを発生させていた問題に対応します。RFC 6066 に準拠し、IP リテラルなど SNI が不適切な場合も null ポインタを渡すように改善されました。

#133154 [release/11.0] Wire the job monitor flag through YAML correctly

@premun・GitHub・Servicing-approvedarea-Infrastructure-mono

Helix job-monitor フラグ(enableHelixJobMonitor)の伝播をYAMLパイプラインで修正するバックポートです。release/11.0ブランチにおいて、テンプレート内部の変数アクセスに依存するのではなく、useHelixMonitorパラメータを明示的にテンプレート間で伝播させることで、フラグの一貫性を確保します。

#133143 Cross-build browser WASM performance host tools

@lewing・GitHub・area-Build-mono

Browser WASM パフォーマンスビルドでのホストツールのクロスビルドを制御するために、新しいMSBuildプロパティ CrossBuildHostTools を導入しました。このプロパティは既存のBionic sysrootを使用してユニバーサルWASM JITをビルドするために、パフォーマンスビルドでのみ有効にされます。通常のブラウザビルド、Mono、およびモバイルプラットフォームは変更されていません。

#133134 Run browser wasm runtime tests with ReadyToRun

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

Browser-Wasm ランタイムテストの ReadyToRun (R2R) 対応を実現するPRです。従来はインタプリタのみをテストしていたブラウザ WASM ランタイムテストに、Crossgen2 でコンパイルされたマージドランナーと参照テストアセンブリを WASM R2R イメージとして実行するための並列 CI ジョブを追加します。これにより、WASM JIT リグレッションの実際の動作が検証され、個別テストの AlwaysUseCrossGen2 / RequiresProcessIsolation 回避策が不要になります。

#133132 Fix Wasm SCC profile weights for #133120

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

WebAssembly (Wasm) SCC(強連結成分)スイッチディスパッチ変換におけるプロファイルウェイト不整合の修正。フロー制御フローが try ヘッダーを経由するよう再配線された後、try ヘッダーのプロファイルウェイトが更新されていなかったため、CrossGen2/ReadyToRun/PGO コンパイル時にアサーション失敗が発生していた問題を解決します。

#133118 [release/10.0] Fix Crossgen2 variance validation for type constraints

@jtschuster・GitHub・Servicing-approvedarea-ReadyToRun

Crossgen2の型制約検証ロジックを修正し、ECMA-335 II.9.7仕様に準拠させるバックポート。 ジェネリック型の独自の制約に対して誤って分散(variance)ルールが適用されていたため、有効な変位インターフェイスが検証に失敗し、パフォーマンス最適化フラグ READYTORUN_FLAG_SkipTypeValidation が省略されていた問題を解決。

#133109 Fix NativeAOT thread-static debug info

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

NativeAOT デバッグ型生成時に、thread-static フィールドと GC-static フィールドの判定を相互排他的にすることで、thread-static フィールドが誤って除外される問題を修正しました。FieldDesc.HasGCStaticBase が thread-static フィールドに対して true を返すことにより、type に GC-static base がない場合、thread-static フィールドの型情報が PDB から欠落していました。

#133105 Avoid xcodebuild probe error without Xcode during NativeAOT

@akoeplinger・GitHub・area-NativeAOT-coreclr

macOS上でCommand Line Toolsのみがインストールされている場合、xcodebuild -versionプローブが標準エラーに出力するメッセージをMSBuildが処理しにくくなり、NativeAOT公開プロジェクトのビルドが失敗する問題を修正します。NativeAOTプローブにIgnoreStandardErrorWarningFormatを設定し、既存の同等プローブ(crossgen-corelib.projやMicrosoft.NET.CrossGen.targets)と統一します。

#133100 Fix SIMD primitive zero initialization

@tannergooding・GitHub・area-CodeGen-coreclr

TryPrimitiveInitがゼロブロック初期化をSIMDプリミティブストアに変換する際に、新しいSIMDゼロノードを作成していたが、有理化されたストアが元の整数ゼロデータノードを保持していました。その結果、整数ソースを持つ無効なSIMDストアが生成され、Tier0コンパイル失敗の原因となっていました。本修正により、ストアのData()オペランドを新規作成のSIMDゼロノードで置き換え、Vector128/Vector256に対するTier0/FullOptsの両モードで回帰カバレッジを追加しました。

#133091 [release/10.0] Implement SocketsHttpHandler.InitialHttp2MaxConcurrentStreams

@MihaZupan・GitHub・Servicing-approvedarea-System.Net.Httplinkable-framework

HTTP/2通信時に、サーバーのSETTINGSフレーム受信前に使用される初期の最大並行ストリーム数を上書き可能にする機能をバックポートしました。これまでハードコーディングされていた値(100)をSocketsHttpHandlerの設定として抽出し、Http2Connectionで利用するようにしました。

サービシングパッチのため、新しいInitialHttp2MaxConcurrentStreamsプロパティはinternalとして実装されており、UnsafeAccessorを使用してアクセスできます:

[UnsafeAccessor(UnsafeAccessorKind.Method, Name = "set_InitialHttp2MaxConcurrentStreams")]
private static extern void SetInitialHttp2MaxConcurrentStreamsCore(SocketsHttpHandler handler, int value);

#133084 [release/10.0] Use lock-free reads for ETW rundown versions

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

ETW(Event Tracing for Windows)ランダウン中の過度なロック競合を緩和するため、CodeVersionManagerグローバルロックを保持せずにロックフリーな読取を使用する最適化をrelease/10.0にバックポートしました。JIT コンパイルされたメソッドが多いアプリケーションでランダウン中の遅延が数秒に達する問題を解決します。

#133068 Remove redundant rolling build pipeline parameter

@akoeplinger・GitHub・area-Infrastructure-mono

ビルドパイプラインの冗長なパラメータプラッシングを削除する整理作業です。isRollingBuildパラメータをextra-platformテンプレートの呼び出しから削除し、代わりに共通のvariables.isRollingBuildを直接使用するように統一しました。これにより、パイプライン設定がシンプルになり、保守性が向上します。

#133049 Release ThreadStore lock before blocking for shutdown

@steveisok・GitHub・area-System.Threading

デバッガーシャットダウン時のハングを防ぐため、非特殊スレッドがシャットダウン時に永続的にパークされる前に ThreadStore ロックを解放するように修正されました。ThreadStore ロックを保持したまま WaitForEndOfShutdown() に入ると、他のスレッドが ThreadStore へのアクセスが永続的にブロックされ、デバッガー操作(例:ICorDebugProcess::Stop の SyncComplete)が完了しないという問題を解決します。

#133042 Fix TextInfo.ToTitleCase Dutch IJ digraph and U+2019 apostrophe handling

@tarekgh・GitHub・area-System.Globalization

TextInfo.ToTitleCaseの2つのバグを修正します。

  1. Dutch IJ digraph(中立的なnlカルチャ対応):中立的なオランダ語カルチャ("nl")でもijをIJに大文字化するよう修正
  2. U+2019アポストロフィ処理:タイポグラフィアポストロフィ(')をASCIIアポストロフィ(')と同様に単語内文字として処理
// Fix 1: Before→After
CultureInfo.GetCultureInfo("nl").TextInfo.ToTitleCase("de ijsvogel");
// Before: "De Ijsvogel" (wrong)  After: "De IJsvogel" (correct)

// Fix 2: Before→After
CultureInfo.GetCultureInfo("en").TextInfo.ToTitleCase("Grandma's pictures");
// Before: "Grandma'S Pictures"  After: "Grandma's Pictures"

#132997 [release/11.0] Run full Mono mobile library tests

@matouskozak・GitHub・Servicing-approvedarea-Infrastructure-mono

release/11.0ブランチのCI/CDパイプラインを更新し、モバイルプラットフォーム(iOS SimulatorおよびAndroid)におけるMonoライブラリテストを、スモークテスト限定から完全なライブラリテストスイートへ移行します。これはmainlineの対応する変更(#132887)をrelease/11.0にバックポートするものです。

#132900 Check for SIG_IGN and SIG_DFL before calling previous signal handler

@jtschuster・GitHub・os-mac-os-xarea-VM-coreclr

macOSにおいて、execve実行後に親プロセスのシグナルハンドラフラグが残存する問題を修正しました。ランタイムが外部ソースからシグナルを受け取った際に、SA_SIGINFOフラグは残っているが前のハンドラポインタがSIG_IGNまたはSIG_DFLに設定されている状態を検出し、クラッシュを防ぐようになりました。

#132897 [release/10.0] Fix ConcurrentQueue.TryDequeue spuriously reporting empty during a segment freeze- #132737

@VSadov・GitHub・Servicing-approvedarea-System.Collections

ConcurrentQueue<T>のTryDequeue/TryPeekが、セグメントの凍結時に競合状態によって誤ってキューが空であると報告する問題を修正します。この競合は、循環セグメントが満杯になり、キューがより大きなセグメントを割り当てるときに発生します。_frozenForEnqueuesフラグを公開する順序をTail位置の更新と相対的に変更し、コンシューマ側がセグメントの不整合な状態を見ないようにします。

#132859 Fix generic virtual dispatch hang after multiple AssemblyLoadContext unloads

@Copilot・GitHub・area-TypeSystem-coreclr

collectible AssemblyLoadContext アンロード後の汎用仮想ディスパッチハングを修正するPRです。GenericCache.TrySetがフラッシュセンチネルを正しく検出できず、アンロード後も古いエントリが残存していた問題を解決します。sentinel テーブルサイズ定数の追加と検出ロジックの統一により、複数回のアンロードサイクルでも安全にキャッシュがクリアされるようになります。

#132850 JIT: stop EnableExtraSuperPmiQueries from changing what gets compiled

@AndyAyersMS・GitHub・area-CodeGen-coreclr

EnableExtraSuperPmiQueries(DEBUG-only JIT設定)が、SuperPMI収集中にEE例外をスローして予期しない方法でコンパイル対象を変更する問題を修正します。追加のJIT-EEクエリが例外を発生させ、インライン化が中止され、収集中のILインポートが再生時と異なってしまい、SuperPMI コンテキストが約3%失われていました。修正により、コンテキスト損失が3.05%から0.062%に削減されます。

#132740 Reactivate closed-issue Extensions tests

@svick・GitHub・area-Infrastructure-libraries

Microsoft.Extensions関連のテストケースで[ActiveIssue]属性を削除し、既に解決済みとなった課題に基づいて無効化されていたテストを再度有効化します。複数のプラットフォーム(Android、Mono、Browser)向けの計18個のテストファイル変更で、信頼性が確認された約20のテストケースが再度実行対象となります。

#132706 Publish the cDAC usage graph package

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

cDAC(Common Data Access Component)の使用グラフパッケージをオフィシャルビルドの公開マニフェストに含めるための変更です。CdacUsageGraphプロジェクトをtools.cdacサブセットの直接パッキング対象リストに追加することで、Microsoft.Diagnostics.DataContractReader.UsageGraph(非出荷パッケージ)がオフィシャルビルド時に確実に生成されるようになります。

#132689 Update container image digests

@dotnet-renovate-bot・GitHub・area-Infrastructurecommunity-contribution

dotnet/runtimeの複数のパイプライン設定で使用されているmcr.microsoft.com/dotnet-buildtools/prereqsコンテナイメージのダイジェストを更新するために、自動化されたRenovateボットによる依存性更新PR。ビルドに使用されるコンテナイメージを最新のバージョンに更新するもので、実装上の変更は伴わない。

#132420 Route QCall exceptions through marshalling

@davidwrighton・GitHub・area-VM-coreclr

QCall(CoreCLRと管理コード間の相互運用)の例外処理を改善するもので、BEGIN_QCALL/END_QCALLマクロで囲まれたネイティブ関数内で発生した例外をマーシャリング経由で安全に戻すようにします。この変更により、例外インスタンスとスタックトレースを保持しながら、プリアロケートされたOutOfMemoryExceptionとStackOverflowExceptionの専用ステータスコードをサポートします。

#131928 [release/10.0] Fix profiler spurious/corrupt transition callbacks for reverse P/Invoke marshaling stubs.

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

Reverse P/Invoke(アンマネージド→マネージド)マーシャリングスタブが、プロファイラー向けのマネージド↔アンマネージド遷移コールバックを誤って生成していた問題を修正します。これらのスタブは転送スタブではないため、生成されたコールバックが破損したFunctionIDを出力し、プロファイラーがこれを逆参照してアプリケーションクラッシュやデータ破損につながる可能性がありました。修正により、転送スタブのみが遷移コールバックを生成するようになります。

#131927 [release/10.0] [mono][interp] Fix miscompile of self-assignment via newobj with alised byref args. (#131586)

@lateralusX・GitHub・Servicing-approvedarea-Codegen-Interpreter-mono

Mono インタプリタの最適化層(INTERP_OPT_SUPER_INSTRUCTIONS)における correctness バグを修正するバックポート。newobj による自己再代入時に、in(byref)パラメータがエイリアスする場合、構築値の格納先を直接再ターゲットすることで ECMA-335 の newobj セマンティクス(一時領域への構築→その後コピー)が違反され、コンストラクタが既に書き込まれている記憶域を読み取り、フィールドが0クリアされる問題を修正。

// 問題となる例
a = new GEJ(a.x, a.y, a.z, a.infinity);  // aの古い値がinパラメータで読まれるべき

#131509 Improve managed ilasm test coverage

@jkoritzinsky・GitHub・area-ILTools-coreclr

マネージド ilasm の単体テストスイートを大幅に拡張し、メタデータ/PE構造(エクスポート、リソース、PDB、署名、マーシャリング等)を検証するテストを追加。併せて、新たに追加されたテストシナリオに対応するために ilasm エミッタ/パーサの実装を修正・拡張。これにより ilasm のラウンドトリップテストの信頼性が向上し、将来的には検証パイプラインの改善が可能になる。

#131398 Add regression test for expired self-signed trusted chain (#48794)

@virzak・GitHub・area-System.Securitycommunity-contribution

#48794で報告された、Linux上で有効期限切れの自己署名信頼証明書のチェーン構築に関する回帰テストを追加するPRです。有効期限を無視する設定でオンライン失効確認を実行した際に、WindowsとLinuxで異なる結果が返されていた問題が既に修正されていることを検証するテストです。

Bot PRs (16 PRs)

2026年09月02日 (39 PRs)うち Bot 16 件 この日のページ →

#133073 [Release/10.0] Initialize debugger sequence map before binding patches

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

ReadyToRon メソッドで IL ブレークポイントをバインドする際に発生するデバッガーデッドロックを修正します。デバッガー JIT 情報シーケンスマップの初期化を、MapAndBindFunctionPatches がデバッガーコントローラーロックを取得する前に実行することで、ロック保持中の GC モード遷移による待機を回避します。

#133057 Check method signature as part of loadability checks

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

NativeAOT/ILCompilerのロード可能性検証を強化し、EnsureLoadableMethodがメソッドシグネチャ(戻り値の型とパラメータ型)の検証も行うようにしました。これにより、後続のコンパイル段階(特にデバッグ情報生成フェーズ)でロード不可能な型に遭遇してコンパイラがクラッシュするのを防ぎます。

#133048 [release/10.0] Avoid writing jitdump code for block data

@steveisok・GitHub・Servicing-approvedarea-PAL-coreclr

Linux jitdump ログ出力において、ブロックレベルのスタブ割り当てに対して未コミットまたは未初期化のメモリから code bytes を書き込もうとしていた問題を修正します。この回帰は .NET 10.0 Preview 4 で導入され、DOTNET_PerfMapEnabled 有効時に jitdump 書き込み失敗により perf でマネージドシンボルが表示されなくなるという顧客報告の問題を解決します。

#133044 Fix Vector2 and Vector3 comparison reductions

@tannergooding・GitHub・area-System.Numerics

Vector2 と Vector3 の厳密な比較還元(GreaterThanAny/LessThanAny)がゼロ埋められたパディングレーンと有効性マスク内のゼロエントリの比較により、論理的に一致するレーンがない場合でも誤って true を返していた問題を修正。Vector128 の直接比較還元を使用し、包括的な All 還元も同様に簡素化。パディングに敏感な結果とすべての有効レーンの NaN に対するテストカバレッジを追加。

#133040 [perf][wasm] Stage Crossgen2 pack for CoreCLR R2R benchmarks

@lewing・GitHub・arch-wasmarea-ReadyToRun

WASM性能ベンチマークのビルドパイプラインを更新し、CoreCLR browser-wasm向けにホストCrossgen2パッケージを生成・ステージングできるようにしました。これにより、孤立したHelixマシンで同一ビルドのアセットを使用してR2R(Ready-to-Run)公開が可能になります。BuildHostTools=trueの明示的なオプトインで、ブラウザCoreClRビルドがCrossgen2 Host sfxprojを実行できるようになります。

#133027 [S.T.J] Fix PropertyRef.Equals

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

System.Text.JsonのUTF-8プロパティ名キャッシュにおける等値性判定のバグを修正しました。短いプロパティ名(≤7バイト)が、埋め込みキーを共有する長いプロパティ名と誤ってマッチする問題を解決しています。PropertyRef.Equalsメソッドを更新し、両方のプロパティ名が埋め込みキー形式(≤7バイト)に収まる場合のみバイト比較をスキップするようにしました。

#133021 Handle StreamBuffer disposal race in SslStream test

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

SslStreamの破棄とハンドシェイク処理が並行実行される際の競合状態をテストするDispose_ParallelWithHandshake_ThrowsODEテストを改善。Alpine環境ではStreamBuffer.TryWriteToBufferメソッドから例外が発生することがあり、従来のConnectedStreamsフィルタでは検出できていませんでした。テストの例外フィルタを拡張し、特定のStreamBufferメソッド(TryWriteToBufferとWriteAsync)からの例外も期待される状態として受け入れるように修正しました。

#133017 [System.Text.Json] Use root-level patterns for generated unions

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

System.Text.Json のソースジェネレータが生成するユニオン型のデコンストラクタ内の switch ステートメントを、union の Value プロパティを経由するのではなく、ルートレベルの型パターン(root-level type patterns)を使用するように改善します。これにより、生成されるコードがより直接的で効率的になります。

#133011 [mono][llvm] Properly link endfinally to leave targets

@BrzVlad・GitHub・area-Codegen-LLVM-mono

Mono LLVM-AOT において、leave 命令からの制御フローを finally ブロック経由で正しく構築するよう修正しました。従来は finally ブロック内の最後の命令を leave ターゲットにリンクしていましたが、複数の endfinally オペコードや endfinally 後の到達不可能なコードが存在する場合、無効な制御フローグラフ(CFG)を生成していました。本修正により、各 endfinally 命令を正確に leave ターゲットにリンクし、後続の LLVM 最適化パスでのアサート失敗を防止します。

#133002 Wire the job monitor flag through YAML correctly

@premun・GitHub・area-Infrastructure-mono

Helix Job Monitor機能を有効にするフラグをAzurePipelines YAMLパイプライン全体で正しく配線する修正です。#132150で導入された際、変数/パラメータの配線が誤りで、Helixジョブを送信するMSBuildタスクが結果を待機する同期処理になっていました。本修正で、火星ぶっぱなし(fire-and-forget)の非同期モニタリングに切り替わります。

#132984 [release/11.0-rc1] Force runtime discovery for TypeMap entries when unable to encode a type in crossgen2's precomputed TypeMap

@jtschuster・GitHub・Servicing-approvedarea-Interop-coreclrarea-ReadyToRun

PR #131610で導入されたTypeMap事前計算機能に起因する問題を修正します。カスタム属性blob内の型名文字列参照に対してTypeMapエントリを事前計算する際、ランタイムが解決不可能な外部型参照が生成される場合がありました。本修正では、そのような解決不可能なエントリについて、事前計算されたマップを使用せず、ランタイムにマップを構築させるよう強制します。

#132932 Use hash-based string table reservations

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

NativeAOT/共有オブジェクトライター内のStringTableBuilderが、文字列予約時のSortedSetからDictionaryベースのハッシュ専用の重複排除方式に変更されます。フラッシュ時に決定論的な序数順序を明示的に復元してから既存のサフィックス共有ソート・エミッションを実行します。COFF文字列予約フェーズで約40~46%のCPU削減(7.66~8.59秒から4.63秒)を実現します。

#132809 Fix Crossgen2 variance validation for type constraints

@jtschuster・GitHub・area-ReadyToRun

Crossgen2のジェネリック型制約に対する変異性(variance)検証ロジックを修正しました。ECMA-335仕様では型が保有する制約は無制限であるべきとされていますが、Crossgen2が誤ってメソッドの制約ルールを型制約に適用していたため、有効な変異インターフェースの検証に失敗し、READYTORUN_FLAG_SkipTypeValidationフラグが省略されていました。この修正により、仕様準拠のコード生成が可能になります。

#132787 Include unboxing stubs in r2r images

@BrzVlad・GitHub・area-ReadyToRun

R2R(Ready-to-Run)イメージにアンボックス・スタブを含めることで、iOS/WebAssemblyプラットフォームでインタープリタの実行を回避します。値型に対するインターフェース経由のメソッド呼び出しに対応するため、ILStubMethodを継承する特殊なメソッドを実装します。これらのスタブはInstanceMethodEntryPointsテーブルにエンコードされ、ランタイムが必要な際にシグネチャに基づいて検索・ロードされます。

#132747 Reject whitespace in HttpListener chunk sizes

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

HttpListener の chunked transfer encoding パーサーを修正し、チャンクサイズフィールド内の不正な空白文字を拒否するようにしました。修正前は 5 \r\n のようなサイズフィールド後の空白を不正に受け入れていましたが、修正後は16進数文字のみを解析し、オプションの拡張機能の前の空白を厳密に拒否します。

#132639 Improve exception for large keys with CNG HKDF

@vcsjones・GitHub・area-System.Security

Windows CNG実装のHKDFで、IKM(Initial Keying Material)が16kビット(2048バイト)の上限を超えた場合に発生していた不明確な「unknown error」を改善するもの。CNG APIからHKDFアルゴリズムのKeyLengthsプロパティをクエリして最大キーサイズを事前に確認し、超過時に明確なCryptographicExceptionをスロー。他のプラットフォーム(OpenSSLなど)は同様の制限がないか、既に適切なエラーメッセージを提供している。

#132617 Handle transient file system errors during active polling

@rosebyte・GitHub・area-Extensions-FileSystem

Microsoft.Extensions.FileProviders.Physicalのアクティブポーリング機能において、一時的なファイルシステムエラー(ネットワークシェアの一時的な利用不可など)がプロセスを終了させたり、リカバリ検出を妨げたりする問題を修正します。ディレクトリスキャン失敗を「変更なし」として扱い、前回の成功したハッシュを保持することで、障害発生中の変更を復旧後に検出できるようになります。

#131878 Don't show SYSLIB1015 when no template given

@rosebyte・GitHub・area-Extensions-Logging

[LoggerMessage] ソースジェネレータが、メッセージテンプレートなしのロギングメソッドに対して不正に SYSLIB1015 警告を発生させていた問題を修正します。メッセージなしでパラメータをキャプチャするパターン(構造化ログのみ)は正当で広く使われていますが、TreatWarningsAsErrors を使用するプロジェクトでビルド失敗を引き起こしていました。

[LoggerMessage(LogLevel.Critical)]
public static partial void FoodRecallNotice(
    this ILogger logger,
    string brandName, string productDescription, string productType);
// 修正前:5個のパラメータごとに SYSLIB1015 警告
// 修正後:警告なし(メッセージなし時は診断を抑制)

2026年09月01日 (22 PRs)うち Bot 3 件 この日のページ →

#133016 [release/11.0] Preserve side effects in SIMD classification helpers

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

SIMD分類ヘルパー(IsIntegralType()など)が定数に最適化される際に、オペランドの副作用(例外を含む)が削除されてしまう問題を修正します。JITがgtWrapWithSideEffectsヘルパーを使用して副作用を保持するようにしました。この修正により、コンパイル段階(tier)に依存した動作の差異が解消されます。

#133014 JIT: Fix Crossgen2 assertion for non-inlineable tail-call GDV

@EgorBo・GitHub・area-CodeGen-coreclr

Checked CoreCLR builds での Crossgen2 実行時に JIT アサーション失敗が発生していた問題を修正。非インライン化可能な Guarded Devirtualization (GDV) 候補がテール呼び出し位置にある場合、それらを保持しないようにすることで、GDV 展開時のブロック形状の変形によるテール呼び出し不変式の違反を回避します。

#132986 JIT: update impFixupStructReturnType to handle GT_RET_EXPR

@AndyAyersMS・GitHub・area-CodeGen-coreclr

CoreCLR JITインポーターの構造体戻り値型変更ロジック(impFixupStructReturnType)を拡張し、GT_RET_EXPRプレースホルダーとして到達する戻り値を正しく処理するようにしました。これにより、インライナーの期待値(戻り値バッファ引数の存在)違反を防止し、Unsafe.BitCastシナリオでの不正な動作を修正します。

#132973 [GC] Preserve workstation GC diagnostic data in heap dumps

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

ワークステーションGCの診断データをヒープダンプに保存できるよう、GC-DACインターフェースを改善します。card_tableポインタと完全な診断配列(interesting_data_per_heap、compact_reasons_per_heap、expand_mechanisms_per_heap、interesting_mechanism_bits_per_heap)をGcDacVarsに追加し、バージョン管理により下位互換性を維持します。これにより、CDB /mwダンプから!dumpgcdataやcDACでこれらのデータにアクセス可能になります。

#132852 Fix Microsoft.CSharp dynamic code annotations

@eerhardt・GitHub・area-Microsoft.CSharp

Microsoft.CSharpライブラリのCOM相互運用関連メソッドにRequiresDynamicCode属性を追加し、AOT互換性分析時の警告を解決する変更です。ComObject.RcwToComObjectとComMetaObjectに動的コード要件アノテーションを伝播させ、既存のRequiresUnreferencedCode属性との一貫性を保つことでAOT分析の警告IL3050を排除します。

#132849 JIT: check operand def chains for overflow in RangeCheck::ComputeDoesOverflow

@EgorBo・GitHub・area-CodeGen-coreclr

JIT range analysis の overflow 検証ロジックを修正します。RangeCheck::ComputeDoesOverflow が operand def chains をチェックする際に、非オーバーフロー演算子(GT_NEG など)のオペランドも再帰的に検証するようにしました。これにより、GetRange による branch folding が unsafe な前提に依存することを防ぎます。

#132821 Share Attribute implementation with NativeAOT

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

NativeAOT固有のAttribute実装をCoreClRの実装と共有することで、600行以上の重複コードを削除し、ランタイムリフレクションのカスタム属性レイヤーを整合させるリファクタリング。NativeAOT固有のファサード、レガシーAPI集約、ジェネリック検索階層を削除し、両ランタイム間でコード共有を促進します。

#132757 Use lock-free reads for ETW rundown versions

@tommcdon・GitHub・area-VM-coreclr

ETWランダウン処理でCodeVersionManagerロック保持期間を短縮し、ロックフリー読み込みを導入する変更です。従来、JITメソッド列挙とETWイベント発行全体でロックを保持していたため、JITパスをブロックして実行を遅延させていました。本変更により、公開されたネイティブコードバージョン状態のロックフリー読み込みを活用して、ランダウン処理中のロック保持期間を削減し、JIT実行パスの競合を軽減します。

#132709 Optimize representation-independent BigInteger arithmetic

@tannergooding・GitHub・area-System.Numerics

BigIntegerの演算パフォーマンスを最適化する変更です。構造化されたオペランド(ゼロ詰めの完全なプレフィックス、2の累乗、繰り返しリムブ、スカラー因子3/5/7など)を検出し、専用の高速演算カーネルにディスパッチします。既存の表現は変わらず、共有演算カーネルが追加されています。

特に因子3、5、7の累乗計算で顕著な改善が見られ、3^1025は86.8%高速化、7^1025は89.3%高速化、16,384ビットの末尾ゼロ乗算は97.7%高速化されました。PiDigitsベンチマーク(3,000桁)では36.8%の累積改善を達成しています。

#132631 [release/10.0] JIT: fix switch peeling stealing the wrong operand of its compare

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

.NET 10 JITコンパイラのswitch peeling最適化(fgPeelSwitch)における深刻なバグ修正のバックポート。ループ展開されたswitch文の処理時に、compare文がシーケンスされる際にオペランドが入れ替わることで、switch値の代わりに定数を使用してしまい、サイレント誤動作を引き起こしていた問題を解決します。

#132629 [release/10.0] JIT: don't use a jump-threaded block's sharpened predicate for dominator-based inference

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

JIT最適化の不具合を修正するバックポート。RBO(Redundant Branch Optimization)がジャンプスレッドを実行する際、ブロックの述語(predicate)を不正に狭める問題を解決します。この不具合により、最適化されたReleaseビルドでNullReferenceExceptionが発生していました。

#132628 [release/10.0] JIT: only imply non-null assertions from exact-type assertions

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

JITアサーション伝播ロジックのバグを修正しました。optImpliedByTypeOfAssertionsが定数チェックなしに任意のlcl != <const>アサーションを非null アサーションとして扱い、ガード付き仮想化による型アサーションと無関係のアサーションが誤って活性化される結果、正当な比較分岐が到達不可能にされていました。具体的には、ホットループ内のvirtualCall().Equals(typeof(T))で大規模データ構造の列挙時にサイレント データドロップが発生していました。修正は定数値が明確に0であることを確認するチェックを追加することで、有効でないアサーションの伝播を防ぎます。

#132592 Preserve information necessary to validate otherwise unused interface constraints in MakeGeneric

@Copilot・GitHub・area-NativeAOT-coreclr

NativeAOT ILCompilerの依存関係分析を更新し、リフレクション駆動のMakeGenericType/MakeGenericMethodでジェネリック制約の検証に必要な情報(メタデータとインターフェースの使用追跡)を保持するようにしました。制約情報が不足していると、制約のTypeRefが解決不可能になる問題を修正します。

#132375 Don't require GDV targets to be inlineable

@EgorBo・GitHub・area-CodeGen-coreclr

Guarded Devirtualization (GDV) において、ターゲットメソッドがインライン化不可の場合でも GDV 候補を保持し、直接呼び出しの利点を活用できるよう変更しました。クラスベースの GDV に対し、インライン化なしのデバーチャル化を許可します。DOTNET_JitGuardedDevirtualizationRequireInlining=1 で従来の動作(インライン化必須)に戻せます。

#130849 Add DependencyAnalysisFramework tests from CoreRT repo

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

CoreRT リポジトリから忘れられていた ILCompiler.DependencyAnalysisFramework のユニットテストプロジェクトを runtime リポジトリに追加し、CoreCLR ツールテストスイートに統合します。静的・条件付き・動的な依存関係マーキング動作を検証するテストフレームワークと xUnit テストを実装し、CI/ツールテスト実行に参加させます。

目次