注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #122846 Use /O2 for Windows x86 Checked
- #122833 Cleanup always-on FEATURE_EH_FUNCLETS
- [#122799 browser][coreCLR] detect browser features and fail fast
- [#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ビルド最適化に関するもので、特にローカル開発時のインクリメンタルビルドの効率化に貢献します。