Pull Request on 2026年05月03日

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

注意点

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



#127656 Revert "Simplify TrimmerSingleWarn intermediate assembly update using MSBuild item Update"

概要

PR #125630で導入されたMSBuild item Updateを使用した簡略化を revert。MSBuildの Update がターゲット内で正常に動作しない問題を修正し、依存関係フローの問題を解決します。ResolvedFileToPublish と IntermediateAssembly の交差を計算して、TrimmerSingleWarn=false メタデータを確実に適用します。

変更内容

  • src/tools/illink/src/ILLink.Tasks/build/Microsoft.NET.ILLink.targets
    • ResolvedFileToPublish Update="@(IntermediateAssembly)" の単純なメタデータ更新をセットベースの操作に置き換え
    • @(ResolvedFileToPublish) と @(IntermediateAssembly) の交差を明示的に計算(include/remove操作を使用)
    • 更新されたアイテムを @(ResolvedFileToPublish) に戻して、ダウンストリームでのメタデータ可視性を確保

パフォーマンスへの影響

影響なし

関連Issue

#125630(revert対象)、MSBuild #2835(根本原因)、SDK #53847(依存関係フロー関連)

その他

MSBuildの Update 属性がターゲット内で予期しない動作をするため、セットベースの操作(includes/removes)によるアイテム操作に戻すことで信頼性を確保。これはILLink(トリマー)タスクの中間アセンブリ処理に関わる内部ビルド実装の修正。


#127562 [wasm][coreclr] Do not use SetCleanupNeededForFinalizedThread

概要

WebAssembly環境ではファイナライザーが専用スレッドではなくメインスレッドでインライン実行されるため、Threadオブジェクトのファイナライズ時にSetCleanupNeededForFinalizedThreadのIsFinalizerThread()アサーションが誤発火していました。本PRでは、WASM環境での不要な呼び出しをガード化し、同時にWebAssemblyでSystem.Threading.Threadテストを有効化します。

変更内容

  • src/coreclr/vm/comsynchronizable.cpp: ThreadNative::Finalize内のSetCleanupNeededForFinalizedThread()呼び出しをTARGET_WASMプリプロセッサディレクティブで条件付けし、WASM環境での実行をスキップ(+2行)
  • src/libraries/tests.proj: System.Threading.Thread.Testsのbrowser/CoreCLR除外を削除し、WebAssembly環境でのテスト実行を再度有効化(-2行)

技術的背景: WASM環境ではHaveExtraWorkForFinalizerが常にfalseを返すためCleanupFinalizedThreadsに到達しません。この変更は内部実装レベルの修正で、公開APIへの影響はありません。

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

なし


#126980 [cDAC] DacDbi code-version node APIs for ReJIT/SOS

  • 作成者: @Copilot
  • 作成日時: 2026年04月16日 00:39:01(UTC)
  • マージ日時: 2026年05月03日 06:17:58(UTC)
  • ラベル: area-Diagnostics-cdac

概要

cDAC(Compact Data Access Contract)の DacDbiImpl に対して、ReJIT/SOS向けのコード版ノード検索API 3つを実装しました。既存の CodeVersions および ReJIT コントラクトを活用し、レガシーDAC DBI APIの機能をcDACで提供します。

変更内容

  • DacDbiImpl.cs: GetActiveRejitILCodeVersionNode、GetNativeCodeVersionNode、GetILCodeVersionNode の3つのAPI を実装
    • GetActiveRejitILCodeVersionNode: (Module, mdMethodDef) を MethodDesc に解決し、明示的なアクティブReJIT ILノードを返却(存在しない場合は0)
    • GetNativeCodeVersionNode: (MethodDesc, codeStartAddress) をコントラクトで列挙されたネイティブコード版と照合し、明示的なネイティブノードを返却(合成版・未定義の場合は0)
    • GetILCodeVersionNode: 明示的なネイティブノードを明示的なILノードにマッピング(デフォルト/合成版の場合は0)し、DEBUG時にレガシーDAC との相互検証も実施
  • Loader_1.cs: マイナー修正(+2/-4)

パフォーマンスへの影響

影響なし

関連Issue

#126980

その他

  • HRESULT互換のエラーハンドリングを保持
  • SOS デバッガおよび ICorDebug との互換性を維持

目次