Pull Request on 2026年06月13日

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

注意点

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



#129370 Delete PlatformDetection.IsMariner

  • 作成者: @Copilot
  • 作成日時: 2026年06月13日 16:35:42(UTC)
  • マージ日時: 2026年06月13日 23:59:53(UTC)
  • ラベル: area-System.Security

概要

Marinerはサポート終了したAzure Linuxの初期コード名であり、このPRではテストインフラストラクチャからすべてのPlatformDetection.IsMariner参照を削除します。レガシープラットフォーム検出ロジックを廃止し、テストスイートを現在サポートされているAzure Linuxの命名規則に整列させます。

変更内容

  • PlatformDetection.Unix.cs: IsMarinerプロパティを削除(プラットフォーム検出ユーティリティから廃止)
  • ChaCha20Poly1305Tests.cs: Mariner固有のChaCha20-Poly1305サポート検証ロジックを削除(Marinerのみの条件分岐を削除)
  • AiaTests.cs: [ActiveIssue]アノテーション条件からIsMariner参照を削除

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

この変更は内部テストユーティリティおよびテスト実装に限定され、公開APIには影響しません。Marinerはサポート終了したプラットフォームのため、破壊的変更ではなく、メンテナンス性向上の一環です。


#129367 Add ActiveIssue for all named key tests to mitigate invalid memory access

  • 作成者: @vcsjones
  • 作成日時: 2026年06月13日 14:09:14(UTC)
  • マージ日時: 2026年06月13日 18:46:26(UTC)
  • ラベル: area-System.Security

概要

System.Security.Cryptography と System.Net.Security の名前付きキーテストに ActiveIssue 属性を追加し、メモリ破損の原因と疑われる複数のテストを一時的に無効化してCI安定性を確保するものです。#129339で報告されたセグメンテーション違反/メモリ破損の調査中、これらのテストを無効化することで CI の安定性を維持します。

変更内容

  • src/libraries/System.Security.Cryptography/tests/OpenSslNamedKeysTests.manual.cs: OpenSslNamedKeysTests の複数のテストメソッドに [ActiveIssue("https://github.com/dotnet/runtime/issues/129339")] 属性を追加(24行追加)
  • src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamOpenSslNamedKeysTests.manual.cs: 同様に ActiveIssue 属性を追加(2行追加)

パフォーマンスへの影響

影響なし

関連Issue

#129339 - System.Security.Cryptography.Tests内のセグメンテーション違反/メモリ破損

その他

  • 変更は一時的な対応措置であり、#129339の根本原因が調査・修正されるまでのCI安定化を目的としています
  • 引数/URI検証テストなど一部のテストは実行対象のまま残されています
  • 内部テストコード(テストスイート)の変更であり、パブリックAPIに影響はありません

#129362 Revert "Resume after catch for interpreter via native EH"

  • 作成者: @jkotas
  • 作成日時: 2026年06月13日 05:24:35(UTC)
  • マージ日時: 2026年06月13日 13:50:09(UTC)
  • ラベル: area-VM-coreclr

概要

PR #128728で導入された「interpreter via native EH による catch後の再開」機能をリバートします。このリバートにより、例外処理の境界動作を以前の状態に戻し、interpreter の再開メカニズムを調整します。修正対象は Issue #129270 です。

変更内容

  • 例外境界処理の削除: QCall、prestub、JIT helper、P/Invoke import、VSD resolve、GC helper など複数の VM 例外境界箇所から INSTALL_/UNINSTALL_RESUME_AFTER_CATCH_* ハンドリングを削除
  • Interpreter 再開メカニズムの再設計: interpreter SP マーカーを追跡する方式に変更し、InterpreterCodeManager::ResumeAfterCatch や interpreter 実行フローの再開/アンワインドロジックを更新
  • UM entry prestub アンワインドメタデータの更新: AMD64、ARM64、i386、LoongArch64、RISC-V の各アーキテクチャで UnhandledExceptionHandlerUnix を使用するよう修正
  • InterpreterFrame への SP ストレージ追加: 非WASM環境で interpreter SP を保存する機能を追加(frames.h/cpp)
  • 例外処理ヘルパーの整理: 不要になった例外処理マクロやヘルパーを削除し、新しい UnwindAndContinueResumeAfterCatch 実装を追加

パフォーマンスへの影響

影響なし

関連Issue

#129270

その他

このリバートは前回の変更セット(#128728)で導入された機能を完全に撤回し、以前の例外処理動作に復帰させるものです。変更は主にランタイム内部実装(VM 例外処理、interpreter 実行エンジン)に限定され、公開 API への影響はありません。


#129333 [browser][coreCLR] Make DOTNET_INTEROP dependency optional

概要

Browser環境でJS相互運用を使用しないアプリケーション/テストにおいて、DOTNET_INTEROPを硬直的なリンク時依存関係から解放し、IL trimming時にSystemInteropJS_*マネージドエクスポートを削除できるようにします。これにより、JS interopを使用しないアプリケーションのバンドルサイズを削減できます。

変更内容

  • src/native/corehost/browserhost/libBrowserHost.footer.js: libBrowserHostのcommonDepsから$DOTNET_INTEROPを削除し、JS interopが未使用時にBrowserHostがこれらのエクスポートをリンクに含めないようにしました。

パフォーマンスへの影響

JS interopを使用しないアプリケーションにおいて、IL trimming対象となるマネージドエクスポート(SystemInteropJS_*)の削除によるバンドルサイズの削減が期待されます。具体的な削減率は提供されていません。

関連Issue

#129229

その他

  • 本変更はBrowserHost向けEmscriptenライブラリの依存関係グラフを調整するもので、ランタイムの内部実装に限定されます
  • JS interopを使用するアプリケーションには影響がありません
  • IL trimmerがマネージドエクスポートを正確に検出できることが前提となります

#129312 JIT: forward-sub cheap address temps with multiple uses

概要

JITのforward-substitution最適化を拡張して、複数の使用サイトで「安価なアドレス一時変数」を置き換えられるようにしました。これにより、フィールド更新用のdup-spill一時変数がLowering段階でのアドレスモード格納をブロックしなくなります。また、FIELD_ADDRチェーンをはぎ取る処理をgtPeelFieldAddrsヘルパー関数として共通化し、複数の呼び出し元で再利用しています。

変更内容

  • forwardsub.cpp: 「安価で再順序化可能なアドレス木」の検出と複数使用サイトでの置き換えロジック(fgForwardSubMultiUse)を追加
  • promotiondecomposition.cpp: Compiler::gtPeelFieldAddrsヘルパー関数を実装
  • importer.cpp: ローカルなFIELD_ADDRはぎ取り処理をgtPeelFieldAddrsに置き換え
  • flowgraph.cpp: fgAddrCouldBeHeap内でgtPeelFieldAddrsを再利用
  • compiler.h: gtPeelFieldAddrsとfgForwardSubMultiUseの宣言を追加

パフォーマンスへの影響

アドレスモード格納のブロック解除により、Lowering段階でのコード生成が改善される可能性があります。ただし、具体的なベンチマーク数値は提供されていません。

関連Issue

#67187

その他

  • 本変更はGitHub Copilot CLIの支援を受けて作成されました
  • JITコンパイラの内部実装変更であり、公開APIへの影響はありません
  • コード生成最適化の強化であり、互換性への影響はありません

#129304 Optimize NativeAOT delegate field layout

概要

NativeAOT環境におけるデリゲート呼び出しのパフォーマンス最適化です。デリゲート呼び出しに使用される2つのフィールドをメモリレイアウト上で隣接配置することで、キャッシュラインの分割を減らし、ARM64でのコード生成効率を向上させます。特にARM64ではldp(ペアロード)命令の利用が可能になり、命令数削減につながります。

変更内容

  • System/Delegate.cs: デリゲート呼び出し用フィールドの配置順序を調整(-4行)
  • CorInfoImpl.cs (複数ファイル): デリゲートフィールドのレイアウト計算ロジックを更新し、フィールドの隣接配置を実現
  • TypePreinit.cs: プリインティメタデータ生成時のレイアウト処理を対応

パフォーマンスへの影響

  • ARM64: デリゲート呼び出しの命令数が削減。ldp命令による2フィールドの同時ロードが可能になり、実行速度向上
  • x64: キャッシュラインの分割減少による間接的なメモリアクセス効率改善
  • 詳細なアセンブリ差分は提供されたリンク参照

関連Issue

なし

その他

  • NativeAOT/ReadyToRunコンパイル時の最適化であり、標準CLRに対しては同様の変更を#99200の後に計画中
  • 破壊的変更なし、内部実装レベルの最適化

#129240 Bump remaining macOS Helix queues to current versions

概要

macOS Helix キュー参照のバージョンアップと集約化。ハードコードされていた macOS Helix キュー名を、集中管理されている eng/pipelines/helix-platforms.yml の共有変数 $(helix_macos_*) に統一し、最新の macOS バージョンへ自動的に追従する変更です。

変更内容

  • eng/pipelines/coreclr/templates/helix-queues-setup.yml

    • 内部用 osx_arm64: OSX.14.Arm64 → $(helix_macos_arm64_latest_internal) (OSX.26)
    • 内部用 osx_x64: OSX.13.Amd64 → $(helix_macos_x64_latest_internal) (OSX.15)
    • 公開用 superpmi-diffs: OSX.15.Arm64.Open → $(helix_macos_arm64) (OSX.26)
    • superpmi-diffs が通常の公開 osx_arm64 キューと一致するようになったため、条件分岐を統合
  • src/coreclr/scripts/superpmi_collect_setup.py

    • arm64 SPMI collection キューを OSX.15 から OSX.26 へアップグレード(公開・内部両方)

パフォーマンスへの影響

影響なし

関連Issue

#122990(release/10.0 での同様の変更)

その他

なし


#129197 Add Wasm EH R2R infrastructure

  • 作成者: @davidwrighton
  • 作成日時: 2026年06月09日 22:43:43(UTC)
  • マージ日時: 2026年06月13日 20:40:39(UTC)
  • ラベル: area-VM-coreclr

概要

WebAssembly ReadyToRun(R2R)シナリオにおける例外処理(EH)のランタイムおよびJIT対応を実装するインフラストラクチャを追加するPRです。新しいWasm例外タグ__coreclr_wasm_rtlrestorecontext_tagを導入し、ランタイム・JIT・ホスト全体でリロケーション処理とコンテキスト復元メカニズムをサポートします。現在、finallyブロックとcatchブロック本体は動作確認済みですが、catch後のresumeは追加のJIT変更が必要です。

変更内容

  • Wasm EH tag定義: CoreCLRラッパーのRtlRestoreContext例外タグを定義・エクスポート、JavaScriptホストで検証
  • リロケーション機構: 新しいWasmリロケーションタイプWasmRestoreContextTagを追加(CorInfoTypes.cs/CorInfoImpl.cs)
  • Webcil import/export: WasmObjectWriter.csで復元コンテキストタグをインポート、WasmNative.csでタグインポートエンコーディング対応
  • ランタイム例外処理: exceptionhandling.cpp/excep.cpp/eetwain.cpuでWasm EHスタックウォーク調整、virtualIP→functionIndex マッピング実装(codeman.cpp/codeman.h)
  • JIT-EEインターフェース: jiteeversionguid.hでバージョンGUID更新、corinfo.hで新規リロケーション種別を公開API化
  • Wasm固有処理: helpers.cpp でタグthrow実装(ip, sp ペイロード)、cgencpu.hでstackwalk ControlPC調整、eetwain.cpuでfunclet呼び出しヘルパー追加

パフォーマンスへの影響

影響なし(インフラストラクチャの追加で、ランタイムクリティカルパスへの直接的な影響なし)

関連Issue

なし

その他

  • 制限事項: catch後のresumeは未実装。例外時のIP/SP コンテキストペイロードは将来のJIT最適化次第で利用可能性は未確定
  • 互換性: JIT-EEインターフェースのバージョン更新により、JIT側の対応が必須
  • テスト状況: finally句とcatch本体の動作確認完了(resume未検証)

#129002 Move remarks back from conceptual docs repo

概要

dotnet-api-docsリポジトリから補足的なAPI remarks(備考)をdotnet/runtimeリポジトリに戻す移行作業です。このPRでは、System.Text.RegularExpressions.Regex.Matchクラスの remarks をXMLドキュメントコメント(///)に統合しています。

変更内容

  • docs/coding-guidelines/adding-api-guidelines.md: API guidelines ドキュメントを更新(+21/-6)
  • src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/Regex.Match.cs: Regex.Matchクラスに詳細な remarks をXMLドキュメントコメントとして追加(+61/-5)
  • src/libraries/System.Text.RegularExpressions/tests/FunctionalTests/Regex.Examples.cs: 新規ドキュメント例コードを追加(+31/-0)
  • src/libraries/System.Text.RegularExpressions/tests/FunctionalTests/System.Text.RegularExpressions.Tests.csproj: テストプロジェクト設定の更新(+1/-0)

パフォーマンスへの影響

影響なし

関連Issue

#129002
dotnet-api-docs#12613

その他

  • このPRは、API remarks を dotnet-api-docs リポジトリから dotnet/runtime リポジトリのソースコード内のXMLドキュメントコメントに段階的に移行するプロジェクトの一環です
  • 変更はライブラリの公開APIドキュメンテーション(ソースコメント)に関するもので、ランタイム動作や互換性への影響はありません

目次