Pull Request on 2026年09月11日

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

注意点

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


目次

  1. #133710 Add utf8, utf16, utf32 as accepted Encoding.GetEncoding aliases
  2. #133707 [wasm] Fix caller identification across R2R prestub transitions
  3. #133704 Fix internal Helix queue alias expansion
  4. #133700 JIT: stop inferring through bitwise complement
  5. #133699 [release/11.0] Add DotNet-HelixApi-Access variable group for runtime.yml
  6. #133688 Add DotNet-HelixApi-Access variable group for runtime.yml
  7. #133681 [release/11.0] [PERF] Fix Helix monitor credentials in the runtime performance pipeline
  8. #133674 [release/10.0] Make order of generated logger items stable.
  9. #133650 Skip LCG Jump-Stub Validation In Rundown Validation Test Under Interpreter Mode
  10. #133643 Revert "Fold RuntimeInformation.IsOSPlatform / OperatingSystem.IsOSPl…
  11. #133639 Fix CoreLib trimming substitutions for interpreter-only CoreCLR
  12. #133634 [PERF] Update main performance pipeline triggers
  13. #133631 Implement NativeAOT unboxing stubs for WASM
  14. #133624 Crossgen2: pass the hidden type arg for wasm array Address thunks
  15. #133621 JIT: validate RBO relop rewrite operands
  16. #133612 [Test] Disable rundown in Block mode env test
  17. #133605 [release/11.0] Fix post-handshake authentication in TlsSession API
  18. #133594 Memory leak at debugger-agent.c (dotnet version - 11.0.100-rc.1.26420.103)
  19. #133591 Group JitBlue regression tests by runner
  20. #133590 [release/11.0] JIT: Dispatch OSR resumptions in tail-await-only methods
  21. #133589 Fix not-greater-than predicate when lowering SIMD selects
  22. #133576 Remove RCPC2 from the optimistic set on arm64
  23. #133569 [wasm] Isolate unsupported struct callback test
  24. #133539 Fix vector complement-add folding for floating-point types
  25. #133535 [cDAC] implement GetVersionId
  26. #133510 JIT: Fix wasm ABI register type mismatch
  27. #133497 Fix cpu affinity set size to have minimal size
  28. #133496 Reduce noise in AttributeReadingPerformanceTests scaling assertion
  29. #133494 Reduce allocations in Microsoft.Extensions.Configuration
  30. #133484 Improve GC allocation failure diagnostics
  31. #133462 [release/9.0-staging] Update dependencies from dotnet/icu
  32. #133458 Catch TypeSystemException in Debug check in crossgen2
  33. #133391 [release/10.0] Update dependencies from dotnet/icu
  34. #133388 [release/10.0] Update dependencies from dotnet/runtime-assets
  35. #133385 [release/8.0-staging] Update dependencies from dotnet/icu
  36. #133366 [release/9.0] Update dependencies from dotnet/emsdk
  37. #133364 [release/8.0] Update dependencies from dotnet/emsdk
  38. #133338 Share CoreCLR CustomAttributeData with native AOT
  39. #133334 [release/8.0-staging] Update dependencies from dotnet/xharness
  40. #133291 [release/11.0] Deduplicate "all managed object wrappers" mapping
  41. #133273 [release/10.0] Source code updates from dotnet/dotnet
  42. #133235 JIT: avoid GS cookie conflict with secret stub argument in non-standard register
  43. #133149 [ci-scan-feedback] Add build-break KBE dedup variation
  44. #132979 Rewind trailing 0x1F byte in GZipStream on seekable leaveOpen streams
  45. #132720 Remove functional cDAC fallbacks
  46. #129785 [release/10.0] Fix alignment of 8-byte thread statics on direct TLS path

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

概要

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へのマッピング

変更内容

  • EncodingData.cs: EncodingNames 文字列に utf8、utf16、utf32 を序数順ソート位置で追加、EncodingNameIndices を再計算、CodePagesByName に対応するエントリを追加
  • EncodingGetEncodingTests.cs: 新しいエイリアスをカバーするテストケースを追加

この変更は公開API(Encoding.GetEncoding(string) の入力解決)の拡張であり、破壊的変更ではありません。Encoding.GetEncodings() と EncodingInfo.Name/WebName は別テーブル(MappedCodePages)に基づいており、列挙結果は変更されず、引き続き正規名(utf-8、utf-16、utf-32)が報告されます。

パフォーマンスへの影響

影響なし。ルックアップテーブルの拡張のみで、パフォーマンスクリティカルなコードパスに変更はありません。

関連Issue

#133319

その他

  • Copilot レビューアーは、オートジェネレーション源の更新が必要と指摘しています
  • 既存パターンに従い、他の非IANA別名(unicode、latin1、ascii など)と同じ形式で実装
  • 全テストスイート(14,695テスト)合格

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

概要

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

変更内容

  • frames.h: prestubのライフサイクル状態と活動化属性を追加(フレームが実際の管理活動化を表すかを示す)
  • prestub.cpp: 完了した非FCall Wasm prestub遷移を「追加の管理活動化を表さない」とマーク
  • stackwalk.cpp: FUNCTIONSONLYスタックウォークで完了した遷移フレームを一元的にフィルタ
  • debugdebugger.cpp: 廃止されたスタックトレース固有の隣接フィルタを削除(より根本的なライフサイクルベースのフィルタに置き換え)
  • github60486.cs: 直接呼び出し、インライン化可能、汎用呼び出し元、再帰的フレーム、GC感度の高い引数など、呼び出し元ID回帰テストを拡張

パフォーマンスへの影響

影響なし。この変更はスタックウォーク時のフレームフィルタリングロジックの改善で、ランタイムのパフォーマンス特性に影響を与えません。

関連Issue

#133617、#133610

その他

  • 検証範囲: browser-Wasm(R2R/インタプリタ)と macOS arm64 Checked runtime で、呼び出し元ID・トリミング・再帰・GC引数に対する回帰テストを実施済み。拡張回帰テストが全てのシナリオで合格。
  • 未検証: ネイティブFCall cold/warm caller-identity、広範なGCストレステスト、他ブラウザ環境。パフォーマンスクレームなし。
  • 破壊的変更: なし。ネイティブFCallの既存表現は変更されず、非Wasm環境のフィルタリング動作も不変。
  • セキュリティ: なし

#133704 Fix internal Helix queue alias expansion

概要

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

変更内容

  • eng/pipelines/libraries/helix-queues-setup.yml (+35/-8):ライブラリキューエイリアスをテンプレート展開前に解決し、Windows x64ライブラリエイリアスとmacOS hosted ブラウザテストを対応
  • eng/pipelines/installer/helix-queues-setup.yml (+11/-2):macOS キューエイリアスをテンプレート展開時に解決
  • eng/pipelines/coreclr/templates/helix-queues-setup.yml (+3/-0):既存CoreCLRパターンを参照実装として保持

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

Helix内部サブミッションにおいて、.openキュー使用時の拒否エラー("Helix '.open' queues should only be used from public AzDO projects")を解決する変更です。PR説明はGitHub Copilotで生成されています。


#133700 JIT: stop inferring through bitwise complement

概要

JIT最適化の冗長分岐削除処理で、ビット反転演算(GT_NOT)を論理否定として扱う不正な推論を停止する修正です。#133557で報告されたバグを修正し、補完された比較結果のテストカバレッジを追加しました。

変更内容

  • redundantbranchopts.cpp: 複合述語推論をGT_ANDとGT_ORのみに制限し、GT_NOTの不正な推論処理を削除(-17, +8行)
  • RedundantBranchSimplify.cs: 等値/不等値を含む補完された比較結果に対する回帰テストを追加(+22行)

パフォーマンスへの影響

影響なし。本修正は不正な最適化推論を除去するもので、SuperPMIテストでは987,555個のコンテキストにおいてコード生成差分なし。

関連Issue

#133557 #69291(原因となった先行変更)

その他

  • 本バグは.NET 7以降で存在(#69291の導入時点)し、最適化されたILで.NET 7~11で再現
  • 検証済み:全31個のRedundantBranchSimplifyテストに合格、対象テスト(RedundantBranchSimplify.TestComplementedRelop)は修正前は失敗、修正後は成功

#133699 [release/11.0] Add DotNet-HelixApi-Access variable group for runtime.yml

概要

release/11.0ブランチに対して、#133688の変更をバックポートするPull Requestです。runtime.ymlファイルにDotNet-HelixApi-Accessという変数グループを追加します。

変更内容

  • eng/pipelines/runtime.yml: DotNet-HelixApi-Access変数グループを追加(4行追加)

パフォーマンスへの影響

影響なし

関連Issue

#133688

その他

このPRはバックポートであり、release/11.0ブランチへの変更を対象としています。


#133688 Add DotNet-HelixApi-Access variable group for runtime.yml

概要

runtime.yml ビルドパイプラインに DotNet-HelixApi-Access 認証情報を追加し、内部ビルド(非PR実行)時に Helix モニターが認証できるようにします。この変更は https://github.com/dotnet/arcade/pull/17537 がマージされることで不要になる予定です。

変更内容

  • eng/pipelines/runtime.yml: Build ステージで DotNet-HelixApi-Access 変数グループを条件付きでインポート(内部プロジェクト かつ PR以外の実行時のみ)

パフォーマンスへの影響

影響なし

関連Issue

#133633(同様の変更)

その他

注意事項: Copilot のレビューコメントにより、runtime-android*.yml、runtime-ioslike*.yml、runtime-maccatalyst.yml、runtime-wasm*.yml など他の内部対応ラッパーファイルでも同じ Helix モニターが使用されており、それらのファイルに同様の修正が適用されていないことが指摘されています。一貫性のため、すべての対象ラッパーに同じ修正を適用するか、共有テンプレートで集中管理することが推奨されています。


#133681 [release/11.0] [PERF] Fix Helix monitor credentials in the runtime performance pipeline

概要

Helix monitorの認証情報設定に関するパフォーマンスパイプラインの修正を、release/11.0ブランチへバックポートするPRです。#133633の変更を適用しています。

変更内容

  • eng/pipelines/performance/perf.yml: Helix monitor認証情報の設定を修正(+4行)

パフォーマンスへの影響

影響なし

関連Issue

#133633

その他

なし


#133674 [release/10.0] Make order of generated logger items stable.

概要

LoggerMessageGeneratorで生成されるロギングコードの出力順序を安定化します。従来は同じソースコードと依存関係でも異なるDLLおよびPDBが生成される可能性があり、再現可能なビルドと供給チェーン検証を阻害していました。このバックポート修正により、生成コードの順序が確定的になります。

変更内容

  • LoggerMessageGenerator.Parser.cs: 生成されるロガーアイテムの順序を安定化する処理を追加(5行追加)
  • TestWithMultipleClassesStableOrder.generated.txt: 安定した出力順序を検証するテスト用ベースライン追加(57行追加)
  • LoggerMessageGeneratorEmitterTests.cs: 複数クラスでの安定した順序を検証するテスト追加(25行追加)

パフォーマンスへの影響

影響なし

関連Issue

#123428(元のPR) dotnet/source-build#5531(顧客報告)

その他

  • 本修正は.NET 11で既に実装済みの変更のバックポート(release/10.0へ)
  • リスクレベル:低(分離された限定的なコード変更)
  • 回帰テスト:なし(新機能による回帰ではないため)
  • 顧客報告に基づく対応

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

概要

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

変更内容

  • src/tests/tracing/eventpipe/rundownvalidation/rundownvalidation.cs:インタープリタモード判定を追加し、LCG jump-stub unload検証をスキップするガード条件を実装

パフォーマンスへの影響

影響なし(テストコードの修正のため)

関連Issue

#133280

その他

  • 変更は内部テスト(src/tests配下)に限定され、公開APIや実行時の動作に影響なし
  • インタープリタモード固有の動作特性(jump-stub生成時のcollectible dynamic-method状態の非解放)を考慮した条件付きスキップの実装
  • JIT構成での既存検証は引き続き有効

#133643 Revert "Fold RuntimeInformation.IsOSPlatform / OperatingSystem.IsOSPl…

概要

リンカーの最適化機能をリバート:RuntimeInformation.IsOSPlatformおよびOperatingSystem.IsOSPlatformの実行時ガード条件式を静的にフォールディングする最適化(コミット b50ab6f)を取り消しています。これに関連するテストと期待失敗エントリも削除されます。

変更内容

  • UnreachableBlocksOptimizer.cs: OS プラットフォーム判定のフォールディング最適化ロジック(約90行)を削除
  • OSPlatformGuard.cs: リグレッション テストケース(約89行)を削除
  • UnreachableBlockTests.g.cs: 生成されたテスト エントリ(6行)を削除
  • ILTrimExpectedFailures.txt: 古い期待失敗エントリ(1行)を削除

パフォーマンスへの影響

この最適化の削除により、OS プラットフォーム固有のコード分岐(if (RuntimeInformation.IsOSPlatform(...)) など)は、実行時にまで評価されるようになります。最適化時に削除されていたデッドコード(実行されないプラットフォーム向けのコード)がアセンブリに残る可能性があり、ディスク上のサイズとメモリ フットプリントがわずかに増加する可能性があります。

関連Issue

#133128 のコンテキスト参照。詳細は当該 PR のコメントスレッドを参照してください。

その他

  • リバートのため、コミット b50ab6f を元に戻すのと同じ効果があります
  • ILLink(AOT コンパイル時のリンカー)と Roslyn アナライザーの両方に関連するテストが削除されています

#133639 Fix CoreLib trimming substitutions for interpreter-only CoreCLR

概要

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

変更内容

  • System.Private.CoreLib.csproj: JIT 固有の ILLink 置換を FeatureDynamicCodeCompiled フィーチャーゲートで条件付けし、インタープリタ専用ビルドに対する不適切な置換を防止
  • RuntimeFeatureTests.cs: Apple モバイルプラットフォーム(iOS シミュレータなど)の DynamicCode および DynamicCode_Jit テストを再有効化。非 Apple インタープリタプラットフォームの除外に変更

パフォーマンスへの影響

影響なし

関連Issue

#133615

その他

  • 互換性への影響: インタープリタ専用ビルド(特に iOS)で IsDynamicCodeCompiled の戻り値が修正されるため、互換性ドキュメント対応が必要
  • iOS 26.5 シミュレータでの検証結果: 修正前のトリミングビルドで失敗していた 2 つのテストケース(DynamicCode_Jit と DynamicCode)が修正後に成功
  • バックポート候補: release/11.0 および release/11.0-rc1 は同じ問題を含むため、主流へのマージ後に .NET 11 へのバックポート検討が必要。release/10.0 には該当実装がないため対象外

#133634 [PERF] Update main performance pipeline triggers

概要

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

変更内容

  • eng/pipelines/performance/perf.yml: 複数のリリースブランチ指定(release/X.0)をワイルドカード release/*.0 に統一(-3行、+1行)
  • eng/pipelines/performance/perf-build.yml: リリースブランチトリガーエントリを削除し main のみに制限(-2行)
  • eng/pipelines/performance/perf-slow.yml: リリースブランチトリガーエントリを削除し main のみに制限(-2行)

パフォーマンスへの影響

影響なし(CI パイプライントリガー設定の変更のため、ランタイムパフォーマンスへの直接的な影響はありません)

関連Issue

#133428

その他

  • この変更は既存パイプラインで使用されている release/*.0 パターンに統一した設定変更です
  • リリースブランチ運用の保守性向上を目的としており、将来のリリースブランチ追加時にパイプライン設定の個別修正が不要になります

#133631 Implement NativeAOT unboxing stubs for WASM

  • 作成者: @Copilot
  • 作成日時: 2026年09月10日 19:49:47(UTC)
  • マージ日時: 2026年09月11日 01:06:39(UTC)
  • ラベル: area-Infrastructure

概要

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

変更内容

  • UnboxingStubNode.cs: WASM シグネチャ登録と WASM コードセクションへの配置対応を追加
  • WasmUnboxingStubNode.cs: WASM アンボックス化テールコール スタブの本体を実装
    • ローカル変数から ABI パラメータを取得
    • this ポインタをポインタサイズ分だけインクリメント(ボックス化ヘッダスキップ)
    • 残りのパラメータを転送し、テールコールで基盤メソッドへ制御を移譲

パフォーマンスへの影響

影響なし。スタブの実装により、既存の呼び出し経路でのパフォーマンス低下は想定されません。

関連Issue

#133630

その他

注意点: レビュー時に、WASM ターゲット向けのボックス化値型インスタンス呼び出しの回帰テストカバレッジが不足していることが指摘されています。ABI パラメータ順序、this 調整、シグネチャ登録、コードセクション配置の変更による将来の回帰を防ぐため、明示的な引数を含むテストケースの追加が推奨されています。


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

  • 作成者: @AndyAyersMS
  • 作成日時: 2026年09月10日 18:54:15(UTC)
  • マージ日時: 2026年09月11日 16:02:46(UTC)
  • ラベル: area-ReadyToRun

概要

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

変更内容

  • src/coreclr/tools/Common/JitInterface/WasmLowering.cs: IsArrayAddressMethod()を署名フラグ計算に含めることで、生成されるwasm thunk署名に隠れた型引数が含まれるようにしました(内部実装)
  • src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GCRefMapBuilder.cs: 不要な条件分岐を削除
  • src/tests/readytorun/crossgen2/Program.cs: TestGenericMDArrayBehaviorから wasm R2R条件分岐を削除し、すべてのプラットフォームで実行されるようにしました(テスト)

パフォーマンスへの影響

影響なし

関連Issue

#133307

その他

  • Crossgen2によるコンパイル時の低レベルwasm呼び出し規約に影響するため、R2R/JITインターフェースのクロスカッティングな正確性について人的レビューが推奨されています
  • GCリファレンスマップレイアウトの変更も含まれており、最終的な検証が必要です

#133621 JIT: validate RBO relop rewrite operands

概要

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

変更内容

  • src/coreclr/jit/redundantbranchopts.cpp: Relop書き換え時にVN操作数がcompareノードの実際の操作数VNと一致することを確認するガード条件を追加。具象化された述語を伴うミスコンパイルを回避します。
  • src/tests/JIT/opt/RedundantBranch/RedundantBranchSimplify.cs: 具象化された述語シナリオ(a != b述語と支配的な関係比較)のリグレッションテストを追加。<と>の両方の関係方向をカバーします。

パフォーマンスへの影響

影響なし。この変更はJIT最適化の正確性を向上させるもので、パフォーマンスの改善や低下はありません。

関連Issue

#133558

その他

  • JIT.opt RedundantBranchSimplify: 35個のテストが合格
  • SuperPMI検証: 987,559個のWindows x64 Checkedコンテキストでアセンブリの差異なし、908個の同一ミス
  • この変更はVN依存領域の微妙な最適化の正確性に関わるため、レビュアーの詳細確認が推奨されます

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

  • 作成者: @mdh1418
  • 作成日時: 2026年09月10日 17:14:16(UTC)
  • マージ日時: 2026年09月11日 15:47:49(UTC)
  • ラベル: area-Tracing-coreclr

概要

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

変更内容

  • src/tests/tracing/eventpipe/nonlossyblockenv/nonlossyblockenv.cs
    • BlockEnvEventエミット時に、ゼロパラメータメソッド署名に合わせてWriteEvent(1)を使用するよう修正
    • DOTNET_EventPipeRundown=0環境変数を設定し、traceeプロセスのEventPipeランダウンを無効化して、ストリーミングスレッド停止後のランダウンがEventsLostに計上されるのを防止

パフォーマンスへの影響

影響なし(テストコードの修正のため)

関連Issue

#133279

その他

  • テスト範囲の変更で、機能的リスクは外部にない
  • EventPipeトレーシング機能(ランタイム内部の実装)に対するテストの改善
  • 既存のランタイムノブ(DOTNET_EventPipeRundown)を他のトレーシングテストと同じ方法で活用

#133605 [release/11.0] Fix post-handshake authentication in TlsSession API

概要

TlsSession APIにおけるポストハンドシェイク認証の問題を修正するバックポートです。この変更は.NET 11の実験的APIに対するもので、OpenSSL実装とネイティブ層での認証処理の改善が含まれています。

変更内容

  • TlsSession.OpenSsl.cs: ポストハンドシェイク認証ロジックを追加・修正(+162行)
  • TlsSession.cs: 認証API自体の実装を改良(+117行、-17行)
  • TlsSessionTests.cs: 認証関連のテストケースを大幅に追加(+1286行、テストカバレッジ強化)
  • pal_ssl.c: ネイティブSSL層での認証処理サポートを追加(+16行)

変更はSystem.Net.Securityライブラリの内部実装と実験的API の修正です。

パフォーマンスへの影響

影響なし

関連Issue

#133159(オリジナル修正)

その他

  • 顧客から報告されたバグ修正です
  • リグレッションなし
  • 低リスク(広範なテストカバレッジが追加されています)
  • release/11.0ブランチへのバックポートです

#133594 Memory leak at debugger-agent.c (dotnet version - 11.0.100-rc.1.26420.103)

概要

Monoデバッガーエージェントにおけるメモリリーク問題を修正しました。event_requestsとpending_assembly_loads変数が初期化時に二重割り当てされ、先の割り当てメモリがリークしていた問題を解決しています。

変更内容

  • src/mono/mono/component/debugger-agent.c: event_requestsとpending_assembly_loadsの初期化時に二重割り当てが発生しないようガード条件を追加(削除: 4行)

パフォーマンスへの影響

メモリリーク修正によるメモリ使用量の改善

関連Issue

#133594

その他

本修正はMonoランタイムのデバッガーコンポーネント(内部実装)に対する変更です。デバッグセッション実行時のメモリリークが対象のため、デバッガー機能を使用する開発環境での安定性向上に効果があります。


#133591 Group JitBlue regression tests by runner

概要

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

変更内容

  • プロジェクトファイルの更新: Regression_PdbOnly_ro.csproj、Regression_PdbOnly_r_3.csprojなどでディレクトリグロブ(*\$(MSBuildProjectName)\**\*.cs)による包含に変更
  • マージされたラッパープロジェクト: Regression_2.csprojとRegression_3.csprojの検出対象をJitBlue/Regression_*/**/*.??projに絞り込み
  • テストファイルの再配置: 1,198個のテストファイルをランナーグループ別のディレクトリ構造に移動(ファイル内容は変更なし)
  • ドキュメント更新: .github/skills/jit-regression-test/SKILL.md、docs/workflow/testing/coreclr/disasm-checks.md、test-configuration.mdでテストパスおよび執筆ガイダンスを更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

検証状況: Windows x64 Checked上で15個すべての影響を受けるランナーの実行を確認(1,013パス、81スキップ、失敗0件)。Runtime_131557の実行とパス確認済み。ネイティブテスト検出を再構成し、Runtime101046NativeとCrossplatVirtualAllocを新パスで再構築。Linux、ARM、Wasmでのローカル実行は未実施。

注: PR説明はGitHub Copilotで作成されました。


#133590 [release/11.0] JIT: Dispatch OSR resumptions in tail-await-only methods

概要

async inliningが有効な場合、JITがOSR(On-Stack Replacement)を実行する際に、tail-await-onlyメソッドのresumptionを正しくディスパッチできない問題を修正しました。非asyncなTask返却メソッドが別のasyncメソッドを呼び出し、OSRによるインライン化時にawaitが含まれている場合、実行時に正しく再開されないバグを解決しています。

変更内容

  • src/coreclr/jit/async.cpp: OSRのresuption処理ロジックを修正(+49/-16)。tail-await-onlyメソッドにおけるディスパッチ処理を改善
  • src/coreclr/jit/async.h: 関連するヘッダーに1行追加
  • src/tests/async/osr-inlined-contexts/osr-inlined-contexts.cs: 該当の回帰テストを追加(+30)。非asyncメソッドが長実行ループの後にasyncメソッドを呼び出すケースをカバー

パフォーマンスへの影響

影響なし

関連Issue

#133358(オリジナルPR)

その他

  • DOTNET_JitAsyncInlining=1を有効にした環境でのみ発生する内部で発見されたバグの修正
  • リスク評価は低い
  • release/11.0へのバックポートPR

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

概要

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

変更内容

  • src/coreclr/jit/lowerxarch.cpp: LowerHWIntrinsicTernaryLogic 関数で、NI_X86Base_CompareNotGreaterThan と NI_AVX_CompareNotGreaterThan の AVX-512 マスク化フォールバック時に、NI_AVX512_CompareNotGreaterThanMask を使用するように修正(マッピング 1 行変更)
  • src/tests/JIT/Regression_ro_2/Runtime_133550.cs: ConditionalSelect と CompareNotGreaterThan の組み合わせをテストする回帰テストを追加。128/256 ビット、float/double 型、NaN を含むアンordered 入力を網羅

パフォーマンスへの影響

影響なし。アセンブリ出力は同じバイトサイズ(128 ビット版 34 バイト / 8 命令、256 ビット版 37 バイト / 9 命令)で、命令カウントも変化なし。生成される命令はvcmpgtpsからvcmpngtpsに変更されるのみです。

関連Issue

#133550

その他

  • AVX-512、AVX2、AVX で個別に検証済みで、10 個の回帰テストケースが修正前は AVX-512 環境で失敗し、修正後に全て成功を確認
  • 既存の packed/scalar AVX 比較テストは引き続きパスを確認
  • 述語マッピングと変換の関連処理(import、morph、VN、constant folding、rationalization、lowering)を監査済みで、追加の述語欠陥は検出されていません

#133576 Remove RCPC2 from the optimistic set on arm64

  • 作成者: @BrzVlad
  • 作成日時: 2026年09月10日 07:11:09(UTC)
  • マージ日時: 2026年09月11日 14:42:38(UTC)
  • ラベル: area-ReadyToRun

概要

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

変更内容

  • src/coreclr/tools/Common/InstructionSetHelpers.cs
    • ARM64 の楽観的命令セットリスト(ConfigureInstructionSetSupport)から rcpc2 を削除
    • その他の ARM64 楽観的命令セット(rcpc、lse、dotprod、暗号化 ISA など)は変更なし

パフォーマンスへの影響

直接的なパフォーマンス低下はなし。むしろ、古いデバイスで R2R コード棄却が削減されることにより、JIT コンパイルオーバーヘッドの削減が期待されます。

関連Issue

なし

その他

  • ランタイム (coreclr) の命令セット構成に関わる内部実装の変更です。
  • 公開 API には影響しません。
  • Android での互換性向上が主要な目的です。

#133569 [wasm] Isolate unsupported struct callback test

概要

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

変更内容

  • src/tests/JIT/Methodical/structs/systemvbringup/structpasstest.cs: P/Invoke callback群(Program3.Main1())をTestEntryPointから分離し、新たにTestPInvokeCallbacksという[Fact][OuterLoop]メソッドを追加。新メソッドは[ActiveIssue]属性でネイティブアセット可用性とbrowser+CoreCLRの非サポート環境で条件付きスキップされるよう制御されています。

パフォーマンスへの影響

影響なし

関連Issue

#133565、#133367、#123946、#132855

その他

  • テスト実行結果: browser-wasm CoreCLRでTestEntryPointは成功、TestPInvokeCallbacksのみスキップ。WASI/macOS arm64でも期待通り動作確認済み。
  • プラットフォーム固有の制御: コールバックテストはIsWasm && IsCoreCLR条件でのみスキップされ、マネージド構造体テストはbrowser-wasm/WASIで引き続き実行可能。
  • 既知の注意: Copilotレビューで初期段階でTestEntryPointの例外ハンドリングがマスク問題を指摘されましたが、最終レビューで承認されており、その問題は解決済みと記録されています。

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

概要

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

変更内容

  • src/coreclr/jit/morph.cpp: fgOptimizeHWIntrinsicの折りたたみガード条件を修正。(~v) + 1から-vへの最適化を整数型SIMD基本型のみに制限。xarch向けのSetMorphed処理も簡潔化。
  • src/tests/JIT/Regression_ro_2/Runtime_133522.cs: Vector128<float>、Vector128<double>、Vector128<int>を対象とした回帰テストを追加。浮動小数点型では~v + 1が元の演算として機能し、整数型でも正しく動作することを検証。

パフォーマンスへの影響

影響なし(修正は正確性に関するもので、パフォーマンスへの測定可能な影響はありません)

関連Issue

#133522

その他

  • JITコンパイラレベルの修正で、公開APIではなく内部実装に関するバグ修正です
  • 互換性への影響:浮動小数点SIMD値に対する~v + 1演算が正確な結果を返すようになり、以前の不正な最適化による誤った値が返されなくなります
  • このPRはGitHub Copilotを使用して準備されました

#133535 [cDAC] implement GetVersionId

  • 作成者: @rcj1
  • 作成日時: 2026年09月09日 20:46:21(UTC)
  • マージ日時: 2026年09月11日 01:28:52(UTC)
  • ラベル: area-Diagnostics-cdac

概要

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

変更内容

  • ClrDataModule.cs: GetVersionIdメソッドを実装。ECMA メタデータから MVID を取得し、メタデータ不足時は CORDBG_E_MISSING_METADATA を返す(従来の E_NOTIMPL から変更)
  • IXCLRDataProcessTests.cs: MVID 取得のユニットテストとエラーハンドリングテストを追加。NULL ポインタ検証とカスタム MVID サポート対応

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • レビュアーから「missing-metadata パスが CORDBG_E_MISSING_METADATA を返すことを確認する必要がある」との指摘があります
  • クロスアーキテクチャなユニットテストカバレッジが追加されています

#133510 JIT: Fix wasm ABI register type mismatch

概要

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

変更内容

  • regallocwasm.cpp: wasm値型がレジスタの正規型と一致する場合のみパラメータローカルをABIレジスタに固定し、型が異なる場合は新規ローカル変数を割り当てるロジックに変更
  • codegenwasm.cpp: 集中管理されたwasmビットキャスト命令ヘルパーを追加。プロログパラメータホーミング時にABIと割り当てられたレジスタの型が異なる場合に型再解釈を実施
  • テスト: 単一doubleを含む固定バッファラッパーの構造体引数の受け渡しと戻り値を検証する回帰テストを追加

パフォーマンスへの影響

影響なし(機能性の修正であり、パフォーマンス改善・低下はなし)

関連Issue

#133502

その他

本修正はwasm JITのレジスタ割り当てとプロログコード生成に関わる低レベルの変更であるため、検証とコード生成に微妙な影響を与える可能性がある。Copilotレビュアーは承認を推奨していますが、ヒューマンレビュアーによる最終的な正確性とリスク評価が必要。


#133497 Fix cpu affinity set size to have minimal size

  • 作成者: @janvorli
  • 作成日時: 2026年09月09日 13:28:16(UTC)
  • マージ日時: 2026年09月11日 20:23:37(UTC)
  • ラベル: area-GC-coreclr

概要

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

変更内容

  • src/coreclr/pal/src/thread/thread.cpp: affinity マスク割り当てが最低でもCPU_SETSIZEとなるよう修正、sched_setaffinity呼び出しでcpuSetSizeを再利用
  • src/coreclr/pal/src/misc/sysinfo.cpp: sched_getaffinity呼び出し前に affinity マスクを最低CPU_SETSIZEのサイズで確保
  • src/coreclr/nativeaot/Runtime/unix/PalUnix.cpp: NativeAOT の CPU カウント初期化をCPU_SETSIZE最小割り当てルールに合わせて修正
  • src/coreclr/gc/unix/gcenv.unix.cpp: GC の affinity プローブとスレッド affinity 設定でCPU_SETSIZE最小割り当てを適用

パフォーマンスへの影響

影響なし。これはバグ修正であり、特定のシステム構成で失敗するコードパスを修正しています。

関連Issue

#133449

その他

レビュアーから以下の指摘あり:

  • GC Unix コード(gcenv.unix.cpp)でcpusToAllocateがuint32_tだが、CPU_ALLOC/CPU_ALLOC_SIZE APIはintを期待。他の変更サイトとの一貫性のためintで統一することで符号変換警告を回避すべき
  • 内部実装(Runtime/PAL層)への変更であり、公開APIの破壊的変更はなし

#133496 Reduce noise in AttributeReadingPerformanceTests scaling assertion

  • 作成者: @krwq
  • 作成日時: 2026年09月09日 13:23:11(UTC)
  • マージ日時: 2026年09月11日 10:33:14(UTC)
  • ラベル: 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;

変更内容

  • src/libraries/System.Private.Xml/tests/Misc/AttributeReadingPerformanceTests.cs
    • MaxRatioMultiplier: 4 → 5 に変更(キャップを40× → 50×に引き上げ)
    • MinBaselineMs: 30msの新しい定数を追加
    • スケーリング比率計算をMath.Max(smallTime, MinBaselineMs)で保護
    • エラーメッセージに生のsmallTimeと有効なbaselineを両方報告するよう更新
    • スキップ条件をIsNotCoreClrInterpreter → IsNotInterpreterに変更(Monoインタープリタもスキップ対象に)

パフォーマンスへの影響

影響なし。SmallNとLargeNは変更されていないため、テスト全体の壁時間は増加しません。

関連Issue

#131973、#130968

その他

ジッター対策の理由: 小規模実行(smallTime)は割り算の分母であり、そのノイズが比率アサーションを支配します。SmallN=2,000の場合、_BelowThresholdバリアント(属性数<64)は~20msのCI環境測定時間で動作し、±10%のジッターが比率に直結します。30msフロアは観測されたノイズフロア(~20-25ms)より上に設定され、真の回帰検出能力は保持されます(回帰時の計測値は50×キャップを大きく超える)。


#133494 Reduce allocations in Microsoft.Extensions.Configuration

概要

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

変更内容

  • ConfigurationBuilder.cs: Build()メソッドでプロバイダーリストを_sources.Count容量で初期化し、ビルド時の再割り当てを回避
  • ConfigurationManager.cs: ReloadSources()メソッドで再構築するプロバイダーリストを_sources.Count容量で初期化
  • ReferenceCountedProvidersManager.cs: AddProvider()で既存プロバイダーをproviders.Count + 1容量を持つ新しいリストにコピーして追加し、リスト増加時の再割り当てを防止

パフォーマンスへの影響

ベンチマーク結果から、ソース数に応じて改善効果が異なります:

  • Builder_Build: 小~中規模(4~16ソース)で3~7%改善、大規模(64ソース)で4%改善
  • Manager_AddSources: 16ソースで若干の回帰(1.06倍)が見られますが、64ソースで26%改善(5,783.2ns→6,129.9ns→25,616.3ns、割り当て34%削減)
  • Manager_ReloadSources: 全スケールで3~4%改善、割り当ても3~4%削減

メモリ割り当ての削減が特に顕著で、64ソース時のManager_AddSourcesで割り当てが99,984Bから65,656Bへ34%削減されています。

関連Issue

なし

その他

レビュアーからReferenceCountedProvidersManager.csのコレクション式([.. _refCountedProviders.Providers, provider])による実装について、16ソース数での若干のスループット回帰(1.06倍)が指摘されており、明示的なList<IConfigurationProvider>を使用したAddRange+Addによる実装への変更検討が推奨されています。これにより割り当て削減効果を保ちながら、オーバーヘッドを削減できる可能性があります。


#133484 Improve GC allocation failure diagnostics

  • 作成者: @Copilot
  • 作成日時: 2026年09月09日 11:28:54(UTC)
  • マージ日時: 2026年09月11日 10:26:06(UTC)
  • ラベル: area-GC-coreclr

概要

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

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

変更内容

  • src/tests/GC/Regressions/v2.0-rtm/544701/544701.cs: 割り当てループ内で例外をキャプチャし、例外の型、メッセージ、スタックトレース情報を含めた診断出力を実装。変更は4行のテスト診断ロジック(+2/-2)のみ。

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 変更はテスト診断機能のみに限定され、テスト本体のロジックは変更されていません
  • 内部テストコード(公開API非対象)の改善です
  • CI ログからの割り当て失敗のデバッグが容易になります

#133462 [release/9.0-staging] Update dependencies from dotnet/icu

概要

dotnet/icu リポジトリからの依存関係を更新するPRです。Microsoft.NETCore.Runtime.ICU.Transport パッケージを 9.0.0-rtm.26457.4 から 9.0.0-rtm.26458.1 にバージョンアップしています。

変更内容

  • eng/Version.Details.xml: ICU Transport パッケージのバージョン情報と参照を更新(+2/-2行)
  • eng/Versions.props: バージョン定義ファイルを更新(+1/-1行)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPRは自動化された依存関係更新(dotnet-maestro[bot]による)です
  • dotnet/icu の dotnet/release/9.0 ブランチ(コミット: e38cd61cc00b753af76ed9d31a7acbeabc6a3238)が対象です
  • 変更内容は最小限で、バージョン情報の参照更新のみです

#133458 Catch TypeSystemException in Debug check in crossgen2

  • 作成者: @jtschuster
  • 作成日時: 2026年09月08日 23:04:59(UTC)
  • マージ日時: 2026年09月11日 16:31:07(UTC)
  • ラベル: area-ReadyToRun

概要

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

変更内容

  • ReadyToRunCodegenNodeFactory.cs: デバッグ専用のMethodEntrypoint一貫性チェックでTypeSystemExceptionをキャッチ。例外発生時に、対応するMethodWithGCInfoノードがnullまたは空であることをアサート
  • ReadyToRunCompilationModuleGroupBase.cs: 20行追加(詳細は提供情報なし)
  • その他複数ファイル: 小規模な変更(NoMethodsCompilationModuleGroup、ReadyToRunLibraryRootProvider、ReadyToRunSingleAssemblyCompilationModuleGroup、SingleMethodCompilationModuleGroup)

パフォーマンスへの影響

影響なし(デバッグ専用のアサーション路の変更であり、リリースビルド動作に変化なし)

関連Issue

#133302、#133057(型チェック厳格化を実施したPR)

その他

本変更はCrossgen2(ReadyToRun AOT コンパイラ)のデバッグ検証のみに影響します。Copilotレビューでは「InheritedVirtualMethodsNode」での不要な処理実行の可能性が指摘されており、ReadyToRunパイプラインへの下流影響は人的レビュー確認が推奨されています。


#133391 [release/10.0] Update dependencies from dotnet/icu

概要

dotnet/icu リポジトリからの依存関係を更新するPRです。Microsoft.NETCore.Runtime.ICU.Transport パッケージを 10.0.0-rtm.26418.2 から 10.0.0-rtm.26457.2 にアップデートしています。

変更内容

  • eng/Version.Details.props: バージョン情報を更新(+1/-1行)
  • eng/Version.Details.xml: 依存関係の詳細情報を更新(+2/-2行)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • これは dotnet/runtime の release/10.0 ブランチへの自動依存関係更新PRです(dotnet-maestro[bot]による作成)
  • 更新ビルド日時: 2026年9月7日 11:37:12 UTC
  • dotnet/icu コミット: 771a0b0fc678483dbd41ddce31473e6bbb2755a9

#133388 [release/10.0] Update dependencies from dotnet/runtime-assets

概要

dotnet/runtime-assetsの依存パッケージを10.0.0-beta.26404.2から10.0.0-beta.26457.2にアップデートするMaestro自動アップデートです。テストデータ、ホストモデル、暗号化、フォーマット等に関連する15個のランタイムアセットパッケージが更新されます。

変更内容

  • eng/Version.Details.props: バージョン情報の更新(+15/-15行)
  • eng/Version.Details.xml: 15個の依存パッケージのバージョン情報を10.0.0-beta.26404.2から10.0.0-beta.26457.2へ更新(+30/-30行)

更新対象パッケージ:

  • Microsoft.DotNet.CilStrip.Sources
  • Microsoft.NET.HostModel.TestData
  • System.ComponentModel.TypeConverter.TestData
  • System.Data.Common.TestData
  • System.Drawing.Common.TestData
  • System.Formats.Tar.TestData
  • System.IO.Compression.TestData
  • System.IO.Packaging.TestData
  • System.Net.TestData
  • System.Private.Runtime.UnicodeData
  • System.Runtime.Numerics.TestData
  • System.Runtime.TimeZoneData
  • System.Security.Cryptography.X509Certificates.TestData
  • System.Text.RegularExpressions.TestData
  • System.Windows.Extensions.TestData

パフォーマンスへの影響

影響なし(依存パッケージのバージョンアップデート)

関連Issue

なし

その他

  • 自動化ツール(dotnet-maestro[bot])による定期アップデートです
  • release/10.0ブランチ向けのアップデートです
  • dotnet/runtime-assetsリポジトリのコミット46d1c035f0に対応しています

#133385 [release/8.0-staging] Update dependencies from dotnet/icu

概要

dotnet/icu リポジトリからの依存関係を更新するPull Requestです。Microsoft.NETCore.Runtime.ICU.Transport パッケージを 8.0.0-rtm.26407.4 から 8.0.0-rtm.26457.3 にアップデートします。

変更内容

  • eng/Version.Details.xml: Microsoft.NETCore.Runtime.ICU.Transport のバージョン情報を更新(2行変更)
  • eng/Versions.props: バージョン定義プロパティを更新(1行変更)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRは自動マージ依存関係更新(dotnet-maestroボット)であり、release/8.0-stagingブランチへのアップデートです。


#133366 [release/9.0] Update dependencies from dotnet/emsdk

概要

dotnet/emsdkからの依存関係を更新するための自動化されたPull Request。Emscriptenワークロードマニフェストとビルドツールを、2026年9月10日に生成されたビルド(20260910.2)に更新します。

変更内容

  • NuGet.config: NuGetフィード設定の更新(1行変更)
  • eng/Version.Details.xml:
    • Microsoft.SourceBuild.Intermediate.emsdk: 9.0.21-servicing.26451.1 → 9.0.21-servicing.26460.2
    • Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport: 9.0.21-servicing.26451.1 → 9.0.21-servicing.26460.2
    • JIT ToolsおよびMono LLVM SDK/Tools(複数プラットフォーム対応): 19.1.0-alpha.1.26407.4 → 19.1.0-alpha.1.26457.4
  • eng/Versions.props: バージョン情報の同期更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRはdotnet-maestro[bot]による自動依存関係更新です。release/9.0ブランチの整合性を保つため、複数のLinux(x64、arm64、musl対応)、Windows、macOS(x64、arm64)プラットフォーム向けのランタイムコンポーネントが一括更新されています。


#133364 [release/8.0] Update dependencies from dotnet/emsdk

概要

dotnet/emsdkから依存関係を更新するPull Requestです。Emscriptenツールチェーン関連のパッケージがアップデートされています。

変更内容

  • NuGet.config: NuGetフィード設定の更新(+2行、-1行)
  • eng/Version.Details.xml: 依存関係バージョンの更新(+3行、-3行)
    • Microsoft.SourceBuild.Intermediate.emsdk: 8.0.32-servicing.26451.2 → 8.0.32-servicing.26459.4
    • Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100: 8.0.32のまま(バージョン変更なし)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRはリリース/8.0ブランチ向けのサービング更新です(dotnet-maestro[bot]による自動化された依存関係更新)。Emscripten WebAssembly開発向けのツールチェーン依存関係に関連する変更となります。


#133338 Share CoreCLR CustomAttributeData with native AOT

概要

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

変更内容

  • CoreCLR共有実装: RuntimeCustomAttributeData.csに#if NATIVEAOTパスを追加し、NativeFormat属性パーサーを統合(+165行)
  • NativeAOT反射型の更新: Type、Method、Field、Event、Property、Module、Assembly、Parameterなど複数の反射型でGetCustomAttributesData()を共有実装にルーティング、メタデータアクセッサを追加
  • NativeAOT固有実装の削除:
    • RuntimeCustomAttributeData.cs(190行削除)
    • RuntimePseudoCustomAttributeData.cs(72行削除)
    • NativeFormatCustomAttributeData.cs(215行削除)
  • 定数解析の簡略化: MetadataReaderExtensions.NativeFormat.csから配列・列挙型・型定数のサポートを削除(557行→20行)
  • 内部インターフェース更新: IRuntimeMethodCommon.csでTrueCustomAttributesをメタデータアクセッサコントラクトに置き換え

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

警告: Copilotの指摘により、NativeAOT側のHandle.ParseConstantValueで列挙型定数処理が削除されており、列挙型をバッキングとする定数の既定値解析時にBadImageFormatExceptionがスローされる可能性があります。この問題は人的検証が必要です。

本PRは大規模なリファクタリングであり、44ファイルにまたがる変更が加わります。NativeAOT反射パス全体にわたる変更であるため、疑似属性シナリオを含めた最終的な人的検証が推奨されます。


#133334 [release/8.0-staging] Update dependencies from dotnet/xharness

概要

dotnet/xharnessからの依存関係を更新するPull Request。Microsoft.DotNet.XHarness.CLI、Microsoft.DotNet.XHarness.TestRunners.Common、Microsoft.DotNet.XHarness.TestRunners.Xunitを11.0.0-prerelease.26428.1から11.0.0-prerelease.26451.1へアップデートします。

変更内容

  • .config/dotnet-tools.json: XHarnessツール関連の依存バージョン更新
  • eng/Version.Details.xml: XHarness関連パッケージの詳細バージョン情報を更新(6行修正)
  • eng/Versions.props: XHarness関連パッケージのバージョンプロパティを更新(3行修正)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • この更新はrelease/8.0-stagingブランチへのdotnet-maestro[bot]による自動依存関係更新です
  • xharnessビルド20260901.1(コミット1fc9369e393e63fa8760afb30d2fcc596bb799bf)に対応しています
  • XHarnessはテスト実行とデバイス管理を行うテストランナーツールであり、runtime開発のテストインフラに関連する変更です

#133291 [release/11.0] Deduplicate "all managed object wrappers" mapping

概要

COM経由で管理オブジェクトをマーシャリングする際に発生していたメモリリークを修正します。同じCOMインスタンスを再利用する場合でも、管理されたオブジェクトラッパーのマッピングが重複して蓄積される問題を解決するため、"all managed object wrappers"マッピングの重複排除機能を実装しました。

変更内容

  • src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs
    • ComWrappersのマッピング管理ロジックを修正し、重複したオブジェクトラッパーの登録を防止

パフォーマンスへの影響

改善: メモリ使用量の削減。PR #113907での回帰により増加していた管理メモリの使用量が解消されます。修正後の期待値として、デデュプリケーション後のコレクション要素数は最大1~2個程度であり、ユーザー報告の問題では1アイテムに削減されます。

関連Issue

#133260(main ブランチへの元PR) 回帰元: #113907

その他

  • 影響範囲: SOS(managed debugging helper API)に公開されているAPI領域のみが対象。他の消費者がないため影響は限定的
  • リスク評価: 低リスク。期待される要素数が最大1~2個のため、ハッシュテーブル不要
  • 検証: SOSによるローカル検証実施済み
  • 回帰情報: .NET 11.0 release ブランチへのバックポート。元々 PR #113907 で発生していたメモリリークの修正です

#133273 [release/10.0] Source code updates from dotnet/dotnet

概要

dotnet/dotnetリポジトリからのコードフロー更新PR。VMR(Virtual Monolithic Repository)経由で、複数の依存パッケージバージョンを更新しています。主な更新対象はMicrosoft.CodeAnalysis関連、Microsoft.DotNet.Arcadeビルドタスク、NuGetツール、およびランタイム関連パッケージです。

変更内容

  • NuGet.config: NuGetフィード設定の更新(+1/-1)
  • eng/Version.Details.props: バージョン詳細プロパティの更新(+29/-29)
  • eng/Version.Details.xml: バージョン詳細XMLの更新(+69/-69)
  • global.json: グローバル設定の更新(+3/-3)

主な依存パッケージ更新:

  • Microsoft.CodeAnalysis関連: 5.0.0-2.26453.111 → 5.0.0-2.26454.107
  • Microsoft.DotNet.Arcadeビルドタスク群: 10.0.0-beta.26453.111 → 10.0.0-beta.26454.107
  • Microsoft.DotNet.Cecil: 0.11.5-alpha.26453.111 → 0.11.5-alpha.26454.107
  • NuGet.* (Frameworks/Packaging/ProjectModel/Versioning): 7.0.3-rc.45411 → 7.0.3-rc.45507
  • その他複数パッケージはバージョン番号のみ更新(26453 → 26454)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPRはautomationツール(dotnet-maestro[bot])による自動コードフロー更新です
  • 関連するソースリポジトリの更新も同期されています(aspnetcore、efcore、roslyn、runtime、wpf)
  • release/10.0ブランチ向けの更新で、リリース前の依存パッケージ同期のための更新です

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

概要

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

変更内容

  • codegenxarch.cpp: AMD64 テールコール時の genGetGSCookieTempRegs を呼び出し対応に拡張し、SecretStubParam 存在時に R11 を選択
  • lsrabuild.cpp: テールコール ノードの認識を持つ GS cookie チェック レジスタ キルのモデリング追加
  • lsraxarch.cpp: 高速テールコール制御式候補から GS cookie テンプレジスタ(呼び出し対応)を除外
  • codegeninterface.h: genGetGSCookieTempRegs シグネチャをオプショナル テールコール ノードパラメータに対応
  • codegencommon.cpp: 共有デバッグ バリデータの実装と AMD64 テールコール用テンプレジスタ選択ロジック追加
  • codegen.h: デバッグ ビルド用 genCheckTailCallEpilogRegisters 宣言追加
  • codegenarmarch.cpp、codegenriscv64.cpp、codegenloongarch64.cpp: 共有デバッグ テールコール エピログ レジスタ バリデータ ヘルパーの使用に統一

パフォーマンスへの影響

影響なし(レジスタ選択の変更により、テールコール時の引数破損を回避)

関連Issue

#132801

その他

  • 重要: 低レベル AMD64 テールコール レジスタ選択と LSRA モデリングの変更であり、ABI コンプライアンスと ストレス モード下でのコード生成の正確性について慎重なバリデーションが必要です
  • 複数アーキテクチャ(x86、ARM、RISC-V、LoongArch64)のコードを一元化し、保守性を向上

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

概要

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

変更内容

  • .github/workflows/shared/create-kbe.instructions.md:

    • KBE作成手順に「variation 8」を追加
    • タイトル/説明文が変動するビルドブレークの重複検出方法を文書化
    • 既存KBEの検索時に「不変エラーフレーズ」と「ビルドレグルート」の両方をin:bodyで検索する指針を記載
  • .github/workflows/ci-failure-scan.md:

    • CI失敗スキャンワークフローの関連部分を更新

パフォーマンスへの影響

影響なし。これはビルドエラー追跡ワークフローの文書化変更であり、ランタイム実行パフォーマンスへの直接的な影響はありません。

関連Issue

#132669、#132700

その他

  • 本PR生成はGitHub Copilotによるものです
  • レビュー段階で「stable element」という用語が不明確との指摘がありました(操作手順の一貫性に影響する可能性がある)
  • 分離記号レンダリング、範囲句読点に関する内部ドキュメント矛盾が指摘されています
  • ワークフロー構文の検証は完了し、認証済みGitHub APIで既存KBEボディに対して動作確認されています

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

概要

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

変更内容

  • Inflater.cs: 単独の0x1Fバイトが最適化的なリセットをトリガーした場合にのみ「未確認の単独0x1Fプローブ」状態を記録し、新しい入力が到達するか実際の連結ヘッダーが見つかると即座にクリアされる機構を実装
  • DeflateStream.cs: seekableストリーム上でのプローブ/終端ストリーム処理を同期ReadCore、非同期Core、同期/非同期CopyFromSourceToDestinationの4箇所の展開処理に統合し、巻き戻しロジックを調整
  • CompressionStreamUnitTests.Gzip.cs: TrailingByteAfterGzipMember_IsRewoundリグレッションテストを追加。フッター0x00/0x1F/0x8B/0xFFをRead/ReadByte/ReadAsync/Copy/CopyAsyncで検証(16ケース)

パフォーマンスへの影響

影響なし

関連Issue

#132946

その他

  • 動作変更: 厳密な検証モード(内部s_useStrictValidation AppContextスイッチ、デフォルト無効)下でseekableストリーム上の末尾0x1FはInvalidDataExceptionをスローせず巻き戻す。既存の末尾0xFF動作と一貫性を持たせる。非seekable厳密検証パスは変更なし。
  • 対象外: 完了したメンバーと単独0x1Fが別々のチャンクで到達する「separate-chunk」バリアントはスコープ外(報告された再現ケースは同一チャンク内)
  • テスト: System.IO.Compression.Tests全体で2628テスト合格、0失敗
  • GitHub Copilotで作成されたPull Request

#132720 Remove functional cDAC fallbacks

  • 作成者: @noahfalk
  • 作成日時: 2026年08月24日 21:50:15(UTC)
  • マージ日時: 2026年09月11日 18:06:45(UTC)
  • ラベル: area-Diagnostics-cdac

概要

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

変更内容

  • LegacyFallbackHelper削除:アローリスト型のフォールバック機構(LegacyFallbackHelper.cs)を完全削除
  • レガシーDAC呼び出しの分離:SOSDacImpl、ClrDataTypeInstance、ClrDataTypeDefinition、ClrDataModuleなど複数の実装クラスで、レガシーの戻り値がcDAC結果に影響しないよう変更。Debug検証のみに限定
  • E_NOTIMPLの明示化:MetaDataImportImpl、ClrDataFrameなどで非対応操作をE_NOTIMPLで返却(フォールバック廃止)
  • ブートストラップ検証の厳格化:Entrypoints.csで、インターフェース公開前に必須コントラクト検証を無条件実施
  • Release ビルドでの最適化:DacDbiImplなどでリリース時にレガシー参照をNULLに設定
  • ネイティブレイヤー調整:cdac.cpp/daccess.cppでCreateSosInterface戻り値をintに変更し、失敗コードを適切に伝播
  • テスト追加:MetaDataImportImplTests、FunctionTableAccessTests、TypeHandleTestsで新しいE_NOTIMPL動作をカバー

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

未解決の課題(Copilotレビュー指摘):

  1. COM出力パラメータの初期化:E_NOTIMPLリターン時に出力ポインタを安全なデフォルト値に初期化する必要あり
  2. CreateDacDbiInterface:アサーション仕様のまま、リリース時に不適切にAVする可能性が残存
  3. 直接DBI エントリポイント(Entrypoints.cs:466):コントラクト検証が不足しており、遅延フェイルになる可能性
  4. テストセンチネル脆弱性:MetaDataImportImplTestsで無効なハンドル値に1を使用しており、有効なGCHandle値と衝突する可能性
  5. Debug同期パス:DacSetTargetConsistencyChecksHRESULTの検証が必要

#129785 [release/10.0] Fix alignment of 8-byte thread statics on direct TLS path

概要

スレッド静的フィールド(ThreadStatic)のダイレクトTLSパス上での8バイトアラインメント問題を修正するバックポート。.NET 9.0で導入された回帰で、longなどの8バイト型のTLSフィールドが4バイトアラインメントで割り当てられることがあり、DataMisalignedExceptionやパフォーマンス低下を引き起こす可能性がありました。

変更内容

  • src/coreclr/vm/threadstatics.cpp (+1/-1)
    • TLSフィールド割り当て時のアラインメント計算を修正し、8バイト型が確実に8バイト境界に配置されるよう調整

パフォーマンスへの影響

改善 - 修正により、arm64でのInterlocked操作やarm32でのdoubleフィールドアクセスなど、ミスアラインされたメモリアクセスによるパフォーマンス低下が解消されます。

関連Issue

#129749 - 本修正のオリジナル版

その他

  • この修正は.NET 10.0 releaseブランチへのバックポート
  • 回帰は.NET 9.0で導入
  • ローカルテストで64ビットTLS変数が常に64バイト以上のアラインメントで割り当てられることを確認済み
  • リスク評価:低~なし
  • 顧客報告による修正

目次