Pull Request on 2026年05月08日

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

注意点

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



#127968 [cDAC] fix bug in DacDbi GetTypeHandle

  • 作成者: @rcj1
  • 作成日時: 2026年05月08日 18:37:14(UTC)
  • マージ日時: 2026年05月08日 21:43:59(UTC)
  • ラベル: area-Diagnostics-cdac

概要

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

変更内容

  • src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/Dbi/DacDbiImpl.cs
    • GetTypeHandleメソッドで、TypeDefToMethodTable/TypeRefToMethodTableの検索がmissした場合(結果が0の場合)を失敗として扱うように修正
    • 型が見つからない場合にCORDBG_E_CLASS_NOT_LOADEDを返すようにチェック処理を追加

パフォーマンスへの影響

影響なし

関連Issue

#127968

その他

このバグ修正は内部診断インターフェース(cDAC DBI)の動作を修正するもので、公開APIではなく診断ツール側に影響します。ネイティブDAC実装との動作の一貫性を確保するための重要な修正です。


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

概要

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

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

変更内容

.github/workflows/ci-failure-scan.md — ワークフロープロンプトの再構成:

  • 6段階の事前確認ウォーク(既存KBE確認 → エリアトラッカー → ミューティングPR → 進行中の修正PR → Issue存在確認 → ミューティング対象外チェック)を追加
  • KBEマッチ検証:テスト名、シグネチャ、OS、アーキテクチャの4つの質問で既存KBEの再利用可否を判定
  • 本体チェック:JSON形式の正確性、シグネチャ仕様(単一行、エスケープなし)、[PASS]/[SKIP]との負合致テストなど8項目の明示的チェック
  • 悪い例から良い例へ:シグネチャ形状(テスト名のみ、切り詰めプレフィックス、例外型のみ)と環境スコープの改善例を記載
  • カバレッジセクション:パイプライン順序付け・タリー・実行サマリーに焦点を絞り、冗長な Submit セクションを削除

テスト実行:ワークフロー実行 25570821336 で成功し、5件のアウトプット(PR 3件、KBE Issue 1件、回帰Issue 1件)を生成。

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

なし


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

  • 作成者: @EgorBo
  • 作成日時: 2026年05月08日 15:26:27(UTC)
  • マージ日時: 2026年05月08日 18:02:58(UTC)
  • ラベル: area-CodeGen-coreclr

概要

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

変更内容

  • src/coreclr/jit/block.h: bbHistogramSchemaIndex を bbHandleHistogramSchemaIndex に名前変更し、新しい bbValueHistogramSchemaIndex フィールドを追加。新フィールドは既存のユニオン直後の 4 バイト領域に配置(sizeof(BasicBlock) は変わらず)
  • src/coreclr/jit/fgprofile.cpp: HandleHistogramProbeInstrumentor と ValueInstrumentor が専用のスキーマインデックスフィールドを使用するように更新。ValueInstrumentor::Prepare で誤って bbCountSchemaIndex をリセットしていた copy-paste タイプを修正

パフォーマンスへの影響

影響なし。構造体のメモリレイアウトは変わらず(x64 で 280 バイト前後)、既存の 4 バイト tail padding を有効活用しています。

関連Issue

なし

その他

この問題は仮想呼び出しの後に Span<T>.CopyTo、MemoryExtensions.SequenceEqual、Buffer.Memmove が同じブロックに存在し、それらが SpanHelpers 組み込みにインライン化される際に発生する一般的なパターンです。


#127948 Switch ci-failure-scan to claude-opus-4.6

概要

ci-failure-scan agentic workflow のモデルを claude-sonnet-4.6 から claude-opus-4.6 に切り替えました。ワークフロー定義ファイルとそのコンパイル済みロックファイルの両方を更新して、設定を同期させています。

変更内容

  • .github/workflows/ci-failure-scan.md: ワークフローエンジンモデルを claude-opus-4.6 に更新
  • .github/workflows/ci-failure-scan.lock.yml: 新モデルに対応するメタデータと環境変数を再生成

パフォーマンスへの影響

記載なし

関連Issue

なし

その他

このPRは.NET開発に直結しない、CI/CD基盤の改善です。ワークフローのAIエンジンをより高度なモデルに変更することで、CI失敗のスキャン・分析精度が向上する可能性があります。


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

概要

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

変更内容

  • XsltApiV2.cs: 基底クラスXsltApiTestCaseBase2に[ActiveIssue(...124344...)]アノテーションを追加
  • 複数の派生テストクラス: 以下のファイルから個別のクラスレベル[ActiveIssue]アノテーション(計34行削除)を削除
    • XslCompiledTransform.cs (16行削除)
    • XsltArgumentList.cs (10行削除)
    • XsltArgumentListMultith.cs (3行削除)
    • XslTransformMultith.cs (2行削除)
    • Errata4.cs、OutputSettings.cs、TempFiles.cs、XsltSettings.cs (各1行削除)

パフォーマンスへの影響

影響なし

関連Issue

#127788

その他

このリバートは単なるテストコード整理で、実装コードには影響を与えません。Apple mobile CoreCLRプラットフォーム上でのXSLT関連テスト(Issue #124344に関連)の抑止を、スケーラブルで保守しやすい方法で実現しています。


#127946 Migrate Copilot PAT pool to shared workflow import

  • 作成者: @jeffhandley
  • 作成日時: 2026年05月08日 07:31:42(UTC)
  • マージ日時: 2026年05月08日 19:26:43(UTC)
  • ラベル: area-skills

概要

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

変更内容

新規追加:

  • .github/workflows/shared/pat_pool.md - PAT プール共有インポート定義(ランダムに PAT スロットを選択し、選択されたインデックスを出力)
  • .github/workflows/shared/pat_pool.README.md - PAT プールインポートの使用方法とセキュリティガイダンス
  • .github/workflows/validate-pat-pool.yml - スケジュール実行/手動実行可能な PAT 検証ワークフロー(各 PAT の有効性確認)
  • .github/mcp.json - MCP サーバー設定ファイル

削除:

  • .github/actions/select-copilot-pat/ ディレクトリ全体(README.md、action.yml)- 共有インポート移行により不要化

移行対象ワークフロー(複数):

  • copilot-echo.md、code-review.md、ci-failure-scan.md、breaking-change-doc.md - needs.pat_pool.outputs.pat_number経由での PAT 選択に変更

再生成・更新:

  • .lock.yml ファイル群(コンパイル済みワークフロー出力の再生成、gh-aw v0.71.5対応)
  • .github/aw/actions-lock.json - ピン留めされたアクション SHA リストの更新
  • .github/agents/agentic-workflows.agent.md - 新しい PAT プールインポートパターンおよび gh-aw バージョン情報への更新

パフォーマンスへの影響

影響なし

関連Issue

dotnet/gh-aw#30232 - engine.env式で参照されるジョブがneeds:に組み込まれず、COPILOT_PAT_0が常に選択される問題(gh-aw v0.71.5で修正)

その他

  • このPRは GitHub の agentic-workflows ツール(gh-aw)関連のインフラストラクチャ変更であり、.NET ランタイムのコード実装には直接的な影響なし
  • 内部ワークフロー管理の改善および自動化基盤の堅牢化
  • 複数の Copilot PAT を負荷分散する仕組みの導入により、スループットの向上と信頼性の強化が期待される

#127944 [main] Source code updates from dotnet/dotnet

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年05月08日 03:14:31(UTC)
  • マージ日時: 2026年05月08日 20:53:38(UTC)
  • ラベル: area-Meta

概要

dotnet/dotnetリポジトリのVMR(Virtual Monolithic Repository)から最新のソースコード変更と依存関係の更新をruntime部分にマージするコードフロー更新です。ビルド20260507.13(コミット0eae08ed)時点の複数の関連リポジトリの変更を統合します。

変更内容

  • バージョン情報の更新: eng/Version.Details.props、eng/Version.Details.xml、eng/Versions.propsを更新

  • ビルド/パイプラインテンプレートの更新:

    • eng/common/core-templates/ 配下のYAMLテンプレートを改善(SBOM生成、post-build処理など)
    • component-governance.ymlを簡略化(ステップ削除)
    • generate-sbom.ymlを大幅リファクタリング(40行削除)
    • sourcelink-validation.ps1を削除
    • sdk-task.ps1の処理削除(13行削除)
  • 依存関係の更新(複数のパッケージバージョン昇格):

    • Microsoft.CodeAnalysisファミリー: 5.7.0-1.26211.102 → 5.7.0-1.26257.113
    • .NET SDK関連: 11.0.100-preview.4.26211.102 → 11.0.100-preview.5.26257.113
    • Arcadeビルドツール: 11.0.0-beta.26211.102 → 11.0.0-beta.26257.113
    • NuGet.* パッケージ: 7.6.0-rc.21202 → 7.7.0-rc.25813
    • System.Text.Json、System.Reflection.Metadata等のコアライブラリ更新
    • Mono/JIT/WebAssemblyランタイムツール更新
  • 関連リポジトリの同期:

    • arcade、aspnetcore、cecil、roslyn、sdk、efcore等18個の関連リポジトリの変更を統合

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPRはMaestro(自動コードフロー管理ツール)が生成した自動更新です
  • 342ファイルの追加変更があり、主にビルドインフラストラクチャとメタデータの更新です
  • SourceLink検証処理とSBOM準備スクリプトが削除されており、ビルドパイプラインの簡略化が進行中です

#127943 Making IPC events platform neutral

  • 作成者: @rcj1
  • 作成日時: 2026年05月08日 01:48:46(UTC)
  • マージ日時: 2026年05月08日 15:39:26(UTC)
  • ラベル: area-Diagnostics-coreclr

概要

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

変更内容

  • IPC event/ポインタ表現の更新: VMPTR、LsPtr等を64ビットアドレス ストレージと Portable<> ラッパーを使用するよう更新
  • レガシーIPC event型の削除: dbgipceventtypes.h で未使用のevent type ID を14個削除;dbgtransportsession.cpp でevent case を削除
  • DI/EEコードパスの調整: CORDB_ADDRESS ベースのフィールド使用に移行し、必要に応じてターゲットメモリを直接読み取る(ログメッセージ文字列、可変長contextペイロード等)
  • デバッガインターフェースのクリーンアップ: EEDebugInterface から DebuggerModifyingLogSwitch 関連メソッド等を削除
  • 変更ファイル数: 20ファイル(デバッガサブシステム全体)

パフォーマンスへの影響

影響なし(構造体レイアウト最適化とレガシーコード削除による負債軽減)

関連Issue

なし

その他

互換性への影響(重要):

  • 破壊的変更:レガシーIPC event型の削除により、古いデバッガクライアントとの互換性喪失の可能性
  • IPC event構造体レイアウトの変更(ポインタ幅拡張、Portable<>ラッピング)により、バイナリ互換性が失われる

潜在的問題:

  • Copilotの指摘通り、rsthread.cpp のstring eval処理で UINT cbString への変換時にオーバーフロー検査がなく、大規模文字列で問題が生じる可能性あり(iLength <= UINT_MAX / sizeof(WCHAR) の検証推奨)

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

概要

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

変更内容

  • src/coreclr/jit/ifconversion.cpp: SELECT から relop への変換処理を修正
    • 型変換が必要な場合に INT から LONG への CAST を挿入
    • cond->OperIsCompare() チェックを追加し、条件式が確実に 0 または 1 の値になる比較演算の結果のみに限定
    • 信頼できない条件式に対する最適化を防止

パフォーマンスへの影響

影響なし(コード生成の正確性向上に伴う変更)

関連Issue

なし

その他

修正対象は JIT の ifconversion 最適化パス。条件式が比較演算以外の任意の値を持つ場合、その値が 0 または 1 に限定されていないため、不正な最適化が行われるのを防いでいます。


#127917 Support spill temps with unknown size on ARM64

概要

ARM64アーキテクチャで、未知のサイズを持つ型(TYP_SIMDやTYP_MASKなど)のSpillTempsをUnknownSizeFrameに割り当てる機能を実装しました。既存のスロット再利用システムをこれらの特殊な型に対応させています。

変更内容

  • regset.cpp/regset.h: スロット再利用システムの主要な変更。TYP_SIMDおよびTYP_MASK型を特殊ケースとして処理するロジックを追加(+57行)
  • compiler.h/compiler.hpp: UnknownSizeFrame関連のメンバー変数とメソッド定義を追加
  • lclvars.cpp: 未知サイズ型のSpill Temps割り当てロジックを実装(+41行)
  • codegenarmarch.cpp/emitarm64.cpp: ARM64コード生成時のSpill Temps処理に対応

パフォーマンスへの影響

影響なし(未知サイズ型の処理を正しく実装するための構造的な改善)

関連Issue

#127917

その他

本変更はARM64アーキテクチャに特化した修正です。JIT(Just-In-Time)コンパイラのレジスタ割り当ておよびメモリ管理に関する内部実装の改善であり、公開APIへの影響はありません。


#127848 [cDAC] Implement GetPartialUserState for cDAC

  • 作成者: @barosiak
  • 作成日時: 2026年05月06日 01:56:31(UTC)
  • マージ日時: 2026年05月08日 02:32:45(UTC)
  • ラベル: area-Diagnostics-cdac

概要

cDAC(Component Data Access Contract)でDacDbiImpl.GetPartialUserStateをネイティブC++実装から管理コード実装に置き換えるPR。IThread契約を使用してスレッド状態フラグをCorDebugUserStateにマッピングし、デバッガがスレッド状態を正確に把握できるようにします。

変更内容

  • Thread State定義の整理: TS_InterruptibleをTS_WaitSleepJoinに名称変更し、TSNC_DebuggerSleepWaitJoinフラグを削除(複数VM領域で統一)
  • ThreadState enum拡張: WaitSleepJoinフラグを新規追加
  • GetPartialUserState実装: DacDbiImpl内でスレッド状態をユーザー状態にマッピングする管理実装を追加(DEBUG時はネイティブDAC実装との相互検証対応)
  • API追加: CorDebugUserState型付きenumをIDacDbiInterfaceに追加
  • テスト追加: ユニットテストおよびダンプテストでマッピング検証を実装

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 互換性への影響: CorDebugUserStateがIDacDbiInterfaceの公開APIとして新規追加されていますが、PR説明でAPI承認プロセスへの言及がありません。公開使用を想定する場合、正式なAPI審査が必要な可能性があります。
  • 動作変更の注記: 従来のコード(TS_Interruptible OR TSNC_DebuggerSleepWaitJoinビットで信頼性の低い回避策を使用)から、TS_WaitSleepJoinビットのみへの依存に変更されています。元々の信頼性問題が完全に解決されているか確認が推奨されます。

#127552 [browser] Review concatenation logic in WebAssembly SDK

  • 作成者: @maraf
  • 作成日時: 2026年04月29日 09:06:30(UTC)
  • マージ日時: 2026年05月08日 09:55:13(UTC)
  • ラベル: arch-wasm area-Build-mono

概要

WebAssembly SDK のビルドターゲットで、ディレクトリプロパティの文字列連結をMSBuild の組み込みパス正規化関数に置き換えました。末尾のセパレータの有無に関わらず正しくパスが結合されるようになり、パス構築の堅牢性が向上します。

変更内容

  • Microsoft.NET.Sdk.WebAssembly.Browser.targets のパス連結ロジックを改善
    • $(IntermediateOutputPath)$(_WasmBootConfigFileName) と $(IntermediateOutputPath)$(_WasmPublishBootConfigFileName) を $([MSBuild]::NormalizePath(...)) に置き換え
    • $(PublishDir)wwwroot を $([MSBuild]::NormalizeDirectory($(PublishDir), 'wwwroot')) に置き換え(Static Web Assets ContentRoot用)

パフォーマンスへの影響

影響なし

関連Issue

#103783

その他

本PRはAI/Copilot生成です。


#127482 Add hw intrinsics pipeline for linux_arm64

概要

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

変更内容

  • hardware-intrinsics-arm64.yml (新規):Linux ARM64上でJIT HardwareIntrinsicsテストを実行するパイプラインを定義(CoreCLRおよびNativeAOTビルド対応)
  • hardware-intrinsics.yml:既存パイプラインから重複ロジックを削除し、共通テンプレートに統合
  • jit-hardware-intrinsics-common.yml (新規):CoreCLRおよびNativeAOT向けのハードウェアイントリンシックステスト実行ロジックを統一化

パフォーマンスへの影響

影響なし(パイプライン・テストインフラの変更であり、ランタイムパフォーマンスへの影響はなし)

関連Issue

#127482

その他

  • LinuxでのSVEサポート検証が可能になるため、ARM64 JIT関連の変更時に手動でJITstressを実行する必要が削減されます
  • トリガー条件はARM64 JITソースファイル(hwintrinsiccodegenarm64.cppなど)の変更に限定されるため、機械リソース使用の最適化に寄与します

#127460 Update devcontainer Dockerfile

  • 作成者: @Copilot
  • 作成日時: 2026年04月27日 15:54:56(UTC)
  • マージ日時: 2026年05月08日 17:45:41(UTC)
  • ラベル: area-Meta

概要

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

変更内容

  • .devcontainer/Dockerfile:
    • devcontainerのベースイメージデフォルトを8.0-nobleから10.0-nobleに変更
    • 明示的なapt-get install依存リストを削除し、curlとbash install-dependencies.shを実行するステップに置換
    • Linux要件ドキュメントとの依存関係の整合性を保つためのコメント追加
    • 差分: +5/-22行

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

この変更により、devcontainerの依存関係管理が一元化され、install-dependencies.shスクリプトの更新が自動的にdevcontainerに反映されるようになります。これは保守性の向上につながります。


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

概要

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

変更内容

  • src/tests/build.cmd

    • wasmをビルドアーキテクチャの有効な選択肢として追加
    • OS対象指定セクションを新規追加(os <value>、browser、wasiオプションを文書化)
    • -CoreCLRオプションを使用方法セクションに追加(実装されていたが記述が欠けていた)
  • src/tests/build.sh

    • OS対象指定セクションをusage_listに新規追加(-os <value>オプションを文書化し、一般的なOS値を列挙、モバイル/デバイス対象ではネイティブテストコンポーネントが自動スキップされることを記述)
    • -coreclrオプションをusage_listに追加(実装されていたが記述が欠けていた)
    • Windowsバッチスクリプトから誤ってコピーされたエスケープ文字(^(、^))とパス例のバックスラッシュを修正

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRはGitHub Copilotによって自動生成されました。変更はビルドスクリプトのドキュメントのみで、スクリプトの機能や動作に変更はありません。


目次