Pull Request on 2026年08月01日

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

注意点

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



#131685 Adopt issue-labeler v2.2.0 in runtime workflows

概要

dotnet/issue-labelerツールのGitHub Actions ワークフローをv2.2.0にアップデートし、labeler-train.ymlで廃止予定ラベルの除外機能を追加しました。デフォルト除外ラベル(area-crossgen2-coreclr、area-AssemblyLoader-coreclr)を設定し、手動実行時に追加の除外ラベルをオプション入力(excluded_labels)で指定できるようにしました。

変更内容

  • labeler-train.yml: workflow_dispatchにexcluded_labels入力を追加し、DEFAULT_EXCLUDED_LABELS環境変数と組み合わせて学習データセットのダウンロード・テストステップに渡すロジックを実装(全5ステップでexcluded_labelsパラメータを使用)
  • labeler-promote.yml、labeler-predict-issues.yml、labeler-predict-pulls.yml、labeler-cache-retention.yml: dotnet/issue-labelerのアクションを v2.2.0(SHA: 160b6b1e1e8d36da09beb34ef1e4806d2c0520a3)にアップデート

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

レビュー指摘: Copilotにより、excluded_labelsの組み合わせロジック内で入力が空の場合、inputs.excluded_labels && ','がブール値falseを返し、format関数がこれを文字列"false"に変換する潜在的なバグが指摘されています。この結果、除外ラベル値が破損する可能性があります(例:area-...coreclrfalse)。条件式を修正して、ブール値ではなく空文字列またはデフォルト文字列を返すべきとの指摘がありますが、PRは既にマージされている状態です。


#131682 Exclude WebSocketException from BinaryFormatter blob ToString comparison

  • 作成者: @jtschuster
  • 作成日時: 2026年07月31日 22:07:57(UTC)
  • マージ日時: 2026年08月01日 00:21:47(UTC)
  • ラベル: area-Serialization

概要

WebSocketExceptionのネイティブエラーコードがスレッド状態に依存して変化するため、BinaryFormatterのテストにおいてToString()比較から除外する変更です。Win32Exceptionを継承するWebSocketExceptionはMarshal.GetLastPInvokeError()からNativeErrorCodeを設定するため、ライブテストオブジェクトと保存されたblobで異なる文字列表現を持つことがあります。同様の除外は既にSystem.Resources.Extensionsで実装されており、ここではそれをミラーリングします。

変更内容

  • src/libraries/System.Runtime.Serialization.Formatters/tests/EqualityExtensions.cs
    • System.Net.WebSockets名前空間をインポート
    • EqualityExtensions.IsEqual(Exception, ...)メソッドのToString()等値性アサーションからWebSocketExceptionを除外

パフォーマンスへの影響

影響なし

関連Issue

#129981

その他

なし


#131627 Fix cDAC DBI cleanup lifetime

  • 作成者: @rcj1
  • 作成日時: 2026年07月31日 00:51:28(UTC)
  • マージ日時: 2026年08月01日 02:32:35(UTC)
  • ラベル: area-Diagnostics-cdac

概要

cDAC(managed diagnostic access component)のライフタイム管理を修正し、DBI(Debugger Bind Interface)がDAC(Diagnostic Access Component)をアンロードする前に、cDAC管理下のCOM インターフェースをアンロードするための明示的なDestroy()メソッドを追加しました。これにより、caller所有のCOMオブジェクトの確定的なクリーンアップが可能になります。内部stackwalking cDAC テストの修正を含みます。

変更内容

  • COM契約の拡張:dacdbi.idlにDestroy([out] IUnknown** ppLegacyCleanup)メソッドを追加し、管理下のCOMインターフェースのクリーンアップ用途で使用
  • ネイティブ実装:dacdbiinterface.hとdacdbiimpl.cppに対応する仮想メソッドを追加し、ネイティブ実装では単にnullを返す
  • DBI teardownロジック:process.cppのCordbProcess::FreeDacを更新し、DAC モジュール アンロード前にDestroyを呼び出す
  • managed cDAC実装:
    • IDacDbiInterface.csで管理COM投影にDestroyメソッドを追加
    • DacDbiImpl.csでDestroyを実装し、FinalRelease()で unique COM wrappers を確定的にリリース。legacy 実装がある場合はDBI管理用のCOMポインタを返す
    • Entrypoints.csでUniqueComInterfaceMarshaller<>を使用し、caller所有COM入力に対して確定的なクリーンアップを実現。エラーパスでFinalRelease()を呼び出し

パフォーマンスへの影響

影響なし

関連Issue

#131627

その他

Copilotの指摘により、FreeDac()内でDestroy()失敗時の処理に潜在的な改善余地が識別されました。失敗時にm_pDacPrimitivesがリリースされずに残る可能性があり、このライフサイクル管理面での懸念事項が報告されています。


#131245 Support unsafe evolution in LibraryImportGenerator

概要

[LibraryImport] 属性を使用するメソッドに対して、C# の unsafe evolution(更新されたメモリ安全性ルール)への対応を追加しました。新しいルールが有効な場合、すべての [LibraryImport] メソッドは明示的に safe または unsafe 修飾子を要求します。また、既存コードを移行するためのアナライザーとコード修正ツールが含まれています。

変更内容

LibraryImportGenerator(内部実装):

  • LibraryImportGenerator.cs と DownlevelLibraryImportGenerator.cs が、生成される wrapper 内の extern local 関数に安全性修飾子を鏡映
  • LibraryImportDiagnosticsAnalyzer と DownlevelLibraryImportDiagnosticsAnalyzer で新診断 SYSLIB1064 を追加し、更新されたルール下で安全性修飾子の明示を要求(すべての P/Invoke 形状で統一的に適用)

アナライザー・コード修正(ツール):

  • LibraryImportRequiresExplicitSafetyAnalyzer.cs が IL5007 診断を追加し、安全性契約のないメソッドを検出(opt-in 無関係に発火、マイグレーション用)
  • AddUnsafeToLibraryImportCodeFixProvider.cs が IL5007 を修正し、デフォルトで unsafe を付与
  • ConvertToLibraryImportFixer.cs が [DllImport] を [LibraryImport] に変換する際、unsafe 修飾子を保持

共有拡張・リソース:

  • MemorySafetyRules.cs に安全性修飾子検出と updated-memory-safety-rules フィーチャーフラグ検出ヘルパーを追加
  • 複数言語(de, es, fr, it, ja, ko, pl, pt-BR, ru, tr, zh-Hans, zh-Hant, cs)のローカライズ文字列を更新

テスト:

  • UnsafeCodeGeneration.cs を拡張し、safe/unsafe 鏡映とフィーチャーフラグ下での診断を網羅

パフォーマンスへの影響

影響なし

関連Issue

#131451

その他

  • 互換性: unsafe-v1 では変更なし。unsafe-v2 ルール有効時のみ適用
  • デザイン選択: 代替案として生成コードから unsafe を出すことも検討されましたが、エラーがユーザーの宣言ではなく生成ファイルに現れるため、コード修正が不可能になることから却下
  • 既知の制限: Roslyn が非 extern メンバーでの safe をまだ許可していない(CS9388)。従って safe は生成が直接 forwarder の場合のみ記述可能

目次