Pull Request on 2026年01月04日

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

注意点

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


目次

  1. #122846 Use /O2 for Windows x86 Checked
  2. #122833 Cleanup always-on FEATURE_EH_FUNCLETS
  3. [#122799 browser][coreCLR] detect browser features and fail fast
  4. [#122798 browser][coreCLR] fix incremental build

#122846 Use /O2 for Windows x86 Checked

  • 作成者: @huoyaoyuan
  • 作成日時: 2026年01月04日 01:39:07(UTC)
  • マージ日時: 2026年01月04日 06:12:03(UTC)
  • ラベル: area-Infrastructure-coreclr community-contribution

概要

Windows x86 Checked ビルドで /O2 最適化フラグを使用するよう変更するPull Request。レガシー例外処理(EH)に特定のアサーション失敗を修正し、パフォーマンスとビルド設定の改善に貢献しています。

変更内容

  • eng/native/configureoptimization.cmake: Windows x86 Checked ビルド設定で /O2 最適化フラグを導入(+1/-7行)

パフォーマンスへの影響

改善: /O2 最適化フラグの適用により、Windows x86 Checked ビルドのコード生成が最適化され、実行パフォーマンスが向上することが期待されます。レガシーEH関連の失敗がこの最適化レベルで解決されています。

関連Issue

  • Fixes #59845
  • Contributes to #53849

その他

レビュワー(jkotas)からのコメント "/ba-g deadletter" は形式的な処理コメントです。この変更はレガシー例外処理スタックのみに影響する限定的な修正となります。


#122833 Cleanup always-on FEATURE_EH_FUNCLETS

  • 作成者: @am11
  • 作成日時: 2026年01月03日 13:06:39(UTC)
  • マージ日時: 2026年01月04日 06:15:40(UTC)
  • ラベル: area-VM-coreclr community-contribution

概要

FEATURE_EH_FUNCLETS機能フラグが常に有効であるため、条件付きコンパイルディレクティブと関連するレガシーコードを削除するクリーンアップPRです。例外処理(EH)funcletの実装が標準化され、条件分岐が不要になったため、3202行のx86例外処理コード(excepx86.cpp)を含む大量の不要なコードが削除されています。

変更内容

  • フィーチャーフラグ削除: clr.featuredefines.props、clrdefinitions.cmakeからFEATURE_EH_FUNCLETSの定義削除
  • 例外処理コードの大幅削除:
    • src/coreclr/vm/i386/excepx86.cpp (3202行削除)
    • src/coreclr/vm/excep.cpp (562行削除)
    • src/coreclr/vm/exinfo.h/cpp (154/296行削除)
    • src/coreclr/vm/exstate.h/cpp (95/99行削除)
  • デバッグインターフェース整理: debugger.h、frameinfo.cpp、functioninfo.cppから条件付きコード削除
  • スタックウォーク関連: stackwalk.cpp/h、dacdbiimplstackwalk.cppから不要なコード削除
  • アーキテクチャ固有コード: x86、ARM、ARM64など複数プラットフォームの条件付きコード削除

パフォーマンスへの影響

影響なし クリーンアップのため機能的な変更はありません。ただし、コンパイル時間が短縮される可能性があります。

関連Issue

なし

その他

  • x86アーキテクチャにおける3000行以上の古い例外処理実装が削除されており、大幅なコード削減です
  • 複数のレビュワー(jkotas、filipnavara)による承認済みで、NativeAOTおよび外側ループテストの実行が確認されています
  • この変更は.NET Runtimeの保守性向上とコードベースの簡素化に寄与します

#122799 [browser][coreCLR] detect browser features and fail fast

  • 作成者: @pavelsavara
  • 作成日時: 2025年12月31日 13:50:12(UTC)
  • マージ日時: 2026年01月04日 08:11:53(UTC)
  • ラベル: arch-wasm area-Host os-browser

概要

ブラウザ環境でのWebAssembly実行時に、JavaScriptエンジンがWASM例外処理(EH)とSIMD機能に対応しているかを事前に検証するvalidateWasmFeatures()関数を新たに実装しました。これにより、非対応環境での実行時エラーを防ぎ、早期に失敗させることができます。

変更内容

  • bootstrap.ts (+7行)

    • 新規にvalidateWasmFeatures()関数を追加
    • WASM EHおよびSIMD機能のサポート検証ロジックを実装
  • run.ts (+3/-2行)

    • validateWasmFeatures()の呼び出しを統合
    • ブラウザ実行時の初期化処理に検証ステップを追加

パフォーマンスへの影響

影響なし。起動時の一度だけ実行される検証処理であり、実行時パフォーマンスへの影響はありません。むしろ、非対応環境での実行を未然に防ぐことで、不要な処理の実行を回避できます。

関連Issue

なし

その他

本変更はブラウザ環境(coreCLRのブラウザホスト)での.NET Runtimeの実行に関するものです。WASM EH(例外処理)とSIMD機能は現代的なブラウザ環境において重要な機能であり、事前検証により開発者への明確なエラーメッセージ提供が実現されます。


#122798 [browser][coreCLR] fix incremental build

  • 作成者: @pavelsavara
  • 作成日時: 2025年12月31日 13:42:50(UTC)
  • マージ日時: 2026年01月04日 08:09:19(UTC)
  • ラベル: arch-wasm area-Host os-browser

概要

browser/coreCLRのインクリメンタルビルドを修正するPR。主にJSファイルがbrowserhost CMakeをトリガーするようにし、copy_version_files.ps1のファイル読み込み方法の不一致(改行有無)によって発生していた不要な再コンパイルを解消。また、browserhostサンプルコードを削除しています。

変更内容

  • eng/native/version/copy_version_files.ps1: ファイル読み込み時の-Rawオプション不一致を修正(改行検出の差異を除去)
  • src/native/corehost/browserhost/CMakeLists.txt: JSファイルがCMakeをトリガーするよう設定を改善
  • browserhost/sample/: サンプルコード一式を削除
    • CMakeLists.txt、HelloWorld.cs/.csproj
    • 説明ドキュメント(ReadMe.md)
    • JavaScriptファイル(dotnet.boot.js、main.mjs、index.html)
  • docs/workflow/building/coreclr/wasm.md: ドキュメント削除(2行)
  • src/native/libs/Common/JavaScript/CMakeLists.txt: 参照削除(1行)

パフォーマンスへの影響

改善: インクリメンタルビルド時に_version.cファイルの改行有無による不要な検出を排除することで、ネイティブファイルの毎回の再コンパイルを防止。ビルド時間の短縮が期待できます。

関連Issue

なし

その他

このPRはWebAssembly(browser)向けのcoreCLRビルド最適化に関するもので、特にローカル開発時のインクリメンタルビルドの効率化に貢献します。