Pull Request on 2026年06月15日

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

注意点

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



#129429 JIT: mark R2R direct-call target loads as non-faulting

概要

R2R直接呼び出しターゲットの読み込みを非フォルティングとしてマークするJIT最適化。LowerDirectCallで導入される2つのインダイレクション(IAT_PVALUEおよびWASM PEPローカル)によるメモリ読み込みは、nullでないことが保証されているため、GTF_IND_NONFAULTINGフラグを付与することで、後続のJITフェーズがこれらをフォルティング操作として扱わないようにします。

変更内容

  • src/coreclr/jit/lower.cpp: LowerDirectCall内でR2R IAT_PVALUEインダイレクションセル読み込みを、Ind(...)ヘルパーの代わりにgtNewIndir(..., GTF_IND_NONFAULTING)で構築
  • src/coreclr/jit/lowerwasm.cpp: WASM PEP呼び出しターゲット読み込みをディスパッチターゲット読み込み時にGTF_IND_NONFAULTINGフラグ付きで構築

パフォーマンスへの影響

フォルティング操作の除外により、JITコンパイラが不要な例外チェックコードを削除できるため、生成されるマシンコードのサイズとレイテンシが改善される可能性があります。直接呼び出しのホットパスでのメモリアクセスの最適化につながります。

関連Issue

なし

その他

なし


#129352 Fall back to ld for private libunwind partial link

  • 作成者: @sbomer
  • 作成日時: 2026年06月12日 22:24:22(UTC)
  • マージ日時: 2026年06月15日 22:43:49(UTC)
  • ラベル: area-NativeAOT-coreclr

概要

NativeAOT private libunwind の部分リンク(partial link)時のリンカー選択ロジックを調整しました。CMAKE_LINKER が llvm-link に解決される場合、マッチング版の ld.lld を優先しつつ、利用不可の場合は ld(binutils)にフォールバックする変更です。

変更内容

  • src/coreclr/nativeaot/Runtime/Full/CMakeLists.txt
    • リンカー選択ロジックを更新:検出された llvm-link に対応する ld.lld が見つかる場合はそれを使用
    • ld.lld が利用不可の場合、ld の検索を試みてフォールバック
    • どちらも見つからない場合は設定で致命的エラーを発生させます

パフォーマンスへの影響

影響なし

関連Issue

#129313

その他

  • 内部実装の変更(ビルド時のリンカー選択ロジック)
  • 互換性に対する直接的な影響なし
  • CMake ベースの NativeAOT ビルドプロセスの安定性向上を意図

#129343 [RyuJIT Wasm]: Fix incorrect assert for shift amount type in codegenwasm.cpp

概要

WebAssembly RyuJIT コードジェネレータにおいて、シフト演算の左オペランド(シフト量)の型チェック時に、より小さい整数型(TYP_USHORTなど)が TYP_INT に変換される場合を正しく処理するようデバッグアサーションを修正します。従来は厳密に TYP_INT 型を要求していましたが、genActualType() を使用して実際の型をチェックするように改善しました。

変更内容

  • src/coreclr/jit/codegenwasm.cpp: CodeGen::genCodeForShift() メソッドのデバッグアサーションを修正
    • 64ビットシフト/ローテート演算において、シフト量オペランドの型チェックを TypeIs(TYP_INT) から genActualType(...) == TYP_INT に変更
    • これにより、TYP_USHORT などの小さい整数型が TYP_INT に実際に変換される場合でも、アサーション失敗が発生しなくなります

パフォーマンスへの影響

影響なし

関連Issue

#129263

その他

この修正はWebAssembly ターゲット固有のバグ修正であり、回帰テストで発見されたILコード(ushort のロードをシフト量として使用するケース)により引き起こされました。内部実装の修正で、公開APIに影響はありません。


#129322 Fix illumox-x64 build with gcc and clang

概要

illumos-x64プラットフォームでのGCC 13およびClang/LLVMツールチェーンでのビルド失敗を修正します。Solaris GCC 13での既定ビルド失敗に対応し、LLVM assembler(llvm-mc)とLLVMリンカー(lld)の上流で報告されたイシューに対するワークアラウンドを実装します。修正後、Azure Linux cross環境でのClangビルドがFreeBSD、OpenBSD、Haikuなど他のプラットフォームと同様に成功するようになります。

変更内容

  • eng/native/configurecompiler.cmake: LLVM assemblerイシューへのワークアラウンドを追加(GNUコンパイラ条件下での対応)
  • src/coreclr/gc/unix/gcenv.unix.cpp: GCC/Clang互換性修正
  • src/coreclr/jit/gentree.h: コンパイラ互換性改善
  • src/native/libs/System.Native/: 複数のPAL(Platform Abstraction Layer)ファイルでのGCC/Clang互換性修正
    • pal_io.c、pal_process.c、pal_signal.c、pal_threading.c、pal_time.c、pal_uid.c

パフォーマンスへの影響

影響なし

関連Issue

llvm/llvm-project#202953(LLVM assembler) llvm/llvm-project#202963(LLVM linker) dotnet/dotnet#7206(GCC ビルド修正の依存)

その他

このPRはillumos-x64クロスコンパイルに対するClang/LLVMツールチェーンサポートの実現です。GCC buildに関連する完全な修正は別途dotnet/dotnetリポジトリで進行中です。toolchain.cmakeのLLVMリンカーワークアラウンドは最適化中のため、このPRには含まれていません。


#129301 [release/10.0] Fix thread-safety issue in DriveInfo.GetDrives() on macOS by replacing getmntinfo with getfsstat

概要

macOS上のDriveInfo.GetDrives()でのスレッド安全性の問題を修正するバージョン。getmntinfo()をgetfsstat()に置き換え、明示的なバッファ管理と再試行ループを実装することで、System.AccessViolationExceptionを解決します。この修正は元々.NET 11で実装されたもの(#122637)を.NET 10にバックポートしたものです。

変更内容

  • pal_mount.c: macOS/BSD対象のHAVE_MNTINFOコードパス内で、getmntinfo()の使用をgetfsstat()への直接呼び出しに変更。明示的なバッファ管理と、バッファが不足した場合の再試行ループを追加(+70行/-3行)

パフォーマンスへの影響

影響なし。getfsstat()はgetmntinfo()がラップしている基盤のシステムコールであり、同じデータフローに従うため、パフォーマンス上の変化は期待されません。

関連Issue

#122634 #129290

その他

  • 影響範囲:macOS/BSDのみ(HAVE_MNTINFOが定義される環境)
  • リスク評価:低。修正はHAVE_MNTINFOコードパスに限定され、基盤となるシステムコールを使用するため堅牢です
  • テスト状況:Linux上でコンパイル検証済み、DriveInfo関連の6つのテストすべて合格
  • .NET 6、7、8でも同じ問題が存在していた長期的な問題
  • 修正前:マウント情報取得時に不適切なメモリアクセスが発生
  • 修正後:バッファサイズの動的調整により安全に処理可能

#129251 Merge release/9.0-staging into release/9.0

概要

release/9.0-stagingブランチからrelease/9.0への定期的なフォワードマージです。依存関係のバージョン更新、CI パイプラインの調整、グローバライゼーション関連のテスト調整が含まれています。マージにはコンフリクトがありません。

変更内容

  • 依存関係の更新: Versions.propsとVersion.Details.xmlで Roslyn/toolset、ICU transport、Cecil、XHarness、テストデータなどの複数のツールセット/ランタイムアセット依存関係を更新
  • .config/dotnet-tools.json: xharness ツールのローカルバージョンを更新
  • CI パイプラインの調整:
    • runtime.yml: WASI を Mono AOT オフセットおよび CrossAOT ターゲット OS リストから削除/無効化
    • runtime-extra-platforms-wasm.yml: WASI 関連の wasm ライブラリ/AOT/smoke/build ジョブを無効化(関連 Issue 記載)
    • helix-queues-setup.yml(両ファイル): iOS sim/Mac Catalyst arm64 Helix キューを OSX.14 から OSX.15 に更新
  • グローバライゼーションテスト調整: NumberFormatInfoNumberGroupSizes.csのur-INカルチャに対するテストデータ/アサーションを拡張し、プラットフォーム固有の差異に対応

パフォーマンスへの影響

影響なし

関連Issue

WASI 関連ジョブの無効化に対する Issue リンクがruntime-extra-platforms-wasm.ymlに記載されていますが、具体的な Issue 番号は提供されていません。

その他

  • このプルリクエストは GitHub Copilot の支援で生成されました
  • マージにコンフリクトなし
  • 8 つの変更ファイル全てが Copilot でレビュー済み

#129250 Merge release/8.0-staging into release/8.0

概要

release/8.0-stagingからrelease/8.0への定期的なマージです。主な変更は、JITループ・ホイスティング機能の修正、関連するリグレッションテストの追加、およびテスト・インフラストラクチャの更新が含まれています。

変更内容

  • JIT最適化修正 (src/coreclr/jit/optimizer.cpp): optRecordLoopMemoryDependence関数を修正し、メモリ依存関係が適切に親ループにアトリビュートされるよう親チェーンを走査するようにしました
  • JITリグレッションテスト追加 (src/tests/JIT/Regression/JitBlue/Runtime_122057/): FullOpts環境(TieredCompilation=0)でループ・ホイスティングシナリオを検証する新規テストケースを実装
  • テスト調整: System.Net.SocketsとSystem.Globalizationのテストで、macOS環境での既知の問題に対するActiveIssueスコープを拡張し、アサーション許容度を改善
  • インフラストラクチャ更新:
    • Arcade/runtime-assetsの依存バージョンをアップデート
    • WASI/WASDテンプレートをCI設定で無効化
    • macOS HelixキューをOSX.14からOSX.15に移行
    • 各設定ファイル(global.json、eng/Versions.props、eng/Version.Details.xml)の関連バージョン更新

パフォーマンスへの影響

JITループ・ホイスティングの修正により、特定のループシナリオにおいて正確なメモリ依存関係の追跡が可能になり、より効率的な最適化を実現する可能性があります。ただし、具体的なベンチマーク数値は提供されていません。

関連Issue

Copilotのレビュー概要でWASI/WASDテンプレート無効化が「linked issue」で追跡されていると記載されていますが、具体的なIssue番号は提供されていません。

その他

  • このPull Requestはマージ時に競合がなく、スムーズに統合されました
  • GitHub Copilotの支援を受けて生成された定期的なマージです

#129233 [ci-scan] Enable Build Analysis for outer-loop pipelines

概要

Build Analysis の対象に外部ループ (outer-loop) AzDO パイプライン定義を追加し、JIT/GC ストレステスト、PGO、SuperPMI、インタープリタ、診断など複数のパイプラインの失敗を Known Build Errors (KBE) で分類・除外できるようにします。これにより、PR CI における外部ループパイプラインの失敗を適切に処理できるようになります。

変更内容

  • eng/build-analysis-configuration.json: 外部ループパイプラインの定義 ID/名前を PipelinesToAnalyze に追加(128行追加)
    • JIT/GC ストレステスト、PGO、SuperPMI、インタープリタ、診断など複数のパイプラインが対象

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このは設定変更であり、CI 処理フローの機能拡張です。外部ループパイプラインの失敗が Build Analysis で正しく認識・処理されるようになることで、PR CI の信頼性向上に貢献します。


#129226 [clr-ios] Disable failing tests and fix trimming in Apple CoreCLR mobile test suites

概要

Apple CoreCLR モバイルテストスイートの3つの既知の失敗をテストスキップで対応し、1つをトリマー設定で修正しました。Moq の RefEmit コード生成、FMA による浮動小数点演算の誤差、トリミング後のアセンブリ解決の問題に対処しています。

変更内容

  • InvokeWithRefLikeArgs.cs: AppleMobile + CoreCLR環境でのMoq/RefEmitベースの反射テストに [ActiveIssue(...)] を追加してスキップ
  • TensorPrimitives.Generic.cs: AppleMobile + CoreCLR環境での SpanDestinationFunctions_ValueRange テストに [ActiveIssue(...)] を追加してスキップ(arm64の FMA による Tan の数値誤差対応)
  • AssemblyTests.cs: AssemblyLoadWithPublicKey テストに [ActiveIssue(...)] を追加してスキップ
  • ILLink.Descriptors.xml: トリマー設定に System.Runtime ファサードアセンブリを明示的にルート化し、テストバンドルから削除されないように修正

パフォーマンスへの影響

影響なし

関連Issue

#124344

その他

この変更はテストの信頼性向上を目的とした修正で、公開API への変更はありません。Apple モバイルプラットフォーム(iOS/tvOS など)の CoreCLR テスト実行の安定性を改善します。


#129185 Enable LibraryImportGenerator.Tests on BSD/SunOS

概要

LibraryImportGenerator.Tests をBSD/SunOS プラットフォーム上で有効にするための変更です。ブートストラップテストビルドで動作するよう、toolchain.cmake のツールチェーン設定を修正し、DNNE プロジェクトが規約に従ってターゲット三連符(target-triplet)を設定できるようにしています。

変更内容

  • eng/common/cross/toolchain.cmake: ツールチェーン設定の調整(+7/-7)
  • src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets: Unix ネイティブビルド設定の微調整(+1/-1)
  • src/libraries/tests.proj: BSD/SunOS 向けテスト除外設定の削除(-21行)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

BSD/SunOS プラットフォームでのテスト実行が新たに可能になります。変更は主にクロスプラットフォームビルドシステムとネイティブツールチェーン設定に限定されています。


#129142 [release/10.0] : Change the PerfMap crst into an UNSAFE_ANYMODE crst

概要

PerfMap生成時のデッドロック問題を修正するバックポート(#129021からrelease/10.0へ)。PerfMapのロック(PerfMap::s_csPerfMap)をCRST_UNSAFE_ANYMODEに変更し、GCモード切り替え時のロック順序によるデッドロックを防止します。また、スタブロギングを無効化する環境変数(DOTNET_PerfMapGranularity=4)を追加し、問題を回避できるようにしています。

変更内容

  • perfmap.cpp/h: PerfMapロックをCRST_UNSAFE_ANYMODEに変更、s_LogStubs設定フラグを追加してスタブロギングの有無を制御
  • virtualcallstub.cpp: スタブ生成時にPerfMap有効時のGCモード切り替えを条件付きで実施、プローバーテーブル再初期化を追加
  • ds-rt-coreclr.h: PerfMap有効化パスのコントラクト更新
  • clrconfigvalues.h: PerfMapStubGranularityの説明文を更新(ビット4でスタブロギング無効化可能)

パフォーマンスへの影響

ロック保持中にファイルI/Oを実行するため、GCレイテンシスパイクが発生する可能性あり。ただし、新しい設定フラグ(DOTNET_PerfMapGranularity=4)でスタブロギングを無効化することで、この問題を完全に回避可能(ただしプロファイルデータの精度は低下)。

関連Issue

#128401、#129021(元PR)、#113943(回帰導入)

その他

  • 顧客報告: 本番環境でPerfMap生成時に起こるデッドロック問題が顧客から報告されていた
  • 適用対象: PerfMapを使用しているワークロードのみが影響を受ける
  • 回帰: #113943で導入されたデッドロック問題の修正
  • 検証: 解析によって修正が検証済み、環境変数による回避策も提供

#129134 [Wasm RyuJit] Enable native wasm fast tail calls

概要

WebAssembly上のRyuJIT JITコンパイラでネイティブなwasm高速末尾呼び出し(fast tail calls)を有効化するPRです。明示的な末尾呼び出しがreturn_call/return_call_indirectに低レベル化されるようになり、SP引数にタグを付けてコード生成で影プロローグ調整を取り消し、呼び出し先が正しい影スタックポインタを受け取るようにします。暗黙的な末尾呼び出しは現在のところ通常の呼び出しのままです。

変更内容

  • targetwasm.h: FEATURE_FASTTAILCALLとFEATURE_TAILCALL_OPTをwasm向けに有効化
  • regallocwasm.cpp: wasm影スタックポインタ引数に高速末尾呼び出し用のタグ付けを実装
  • morph.cpp: wasm向けに適用されないスタックベースの引数スペース制約チェックをスキップ
  • lir.h: 高速末尾呼び出し用SP引数をマークするwasm固有のLIRフラグを追加
  • codegenwasm.cpp: 末尾呼び出し「jmpエピローグ」ブロック用にINS_endを発行し、末尾呼び出しのSP引数と戻り値型の処理を調整
  • codegen.h: 関連する宣言追加

パフォーマンスへの影響

末尾呼び出し最適化により、末尾呼び出しの位置にあるメソッド呼び出しでスタックフレームの再利用が可能になり、スタックメモリ使用量の削減と呼び出しオーバーヘッドの低減が期待されます。ベンチマーク結果の記載はありません。

関連Issue

なし

その他

暗黙的な末尾呼び出し(implicit tail calls)はこのPRでは通常呼び出しのままであり、今後の改善が想定されています。


#129128 [release/10.0] Source code updates from dotnet/dotnet

概要

これはVMR(Virtual Mono Repository)からのコードフローアップデートです。dotnet/dotnetリポジトリからrelease/10.0.1xxブランチの最新コミット(fe7283f2)をruntime/10.0ブランチに統合し、複数の依存パッケージをアップデートします。

変更内容

  • NuGet.config: NuGetソース設定の更新
  • eng/Version.Details.props/xml: 依存パッケージバージョンの更新(29行分)
  • global.json: .NET SDKおよびツールチェーンバージョンの更新

主な依存パッケージアップデート:

  • Microsoft.CodeAnalysis関連: 5.0.0-2.26303.112 → 5.0.0-2.26307.103
  • Microsoft.DotNet.Arcade.Sdk他ビルドツール: 10.0.0-beta.26303.112 → 10.0.0-beta.26307.103
  • NuGet.Framework/Packaging/ProjectModel/Versioning: 7.0.3-rc.30412 → 7.0.3-rc.30803
  • Microsoft.DotNet.Cecil: 0.11.5-alpha.26303.112 → 0.11.5-alpha.26307.103
  • その他System.Text.Json、System.Reflection.Metadataなどのランタイム関連パッケージ

パフォーマンスへの影響

影響なし(コンパイラおよびビルドツール依存パッケージのアップデートのみ)

関連Issue

なし

その他

このPRは自動生成される定期的なコードフローアップデートです。複数のリポジトリ(arcade、efcore、emsdk、runtime、sdk、source-build-assets、sourcelink、templating、windowsdesktop、wpf)から関連変更が含まれます。


#129034 Remove NativeAOT debug handle tagging

概要

NativeAOT JIT インターフェースハンドルから、デバッグ専用の高ビットタグを削除し、タグビットが保持されないターゲット上での有効なハンドル拒否を防ぎます。また、既存テストから NativeAOT 回避措置を削除して、影響を受けた回帰テストカバレッジを再有効化します。

クロスターゲットシナリオ(例:64ビットホストが32ビットターゲットをコンパイル)において、ハンドル値がホストポインタサイズとして処理されるよう RyuJIT の定数/ハンドルパイピングを調整し、定数インポート/伝播時の上位ビット切り詰めを回避して不正な定数畳み込みを防止します。

変更内容

  • CorInfoImpl.cs: DEBUG不変条件チェックを追加し、切り詰められた/無効なハンドルを早期に検出
  • CorInfoImpl.RyuJit.cs: クロスターゲット正確性のためにオブジェクトハンドルバッファ処理を調整
  • importer.cpp: TYP_REF 静的読み取り専用定数に対してホストサイズバイト数をリクエストして切り詰めを回避
  • compiler.hpp: GCタイプ定数の「int32に収まる」アサーション誤判定を回避
  • assertionprop.cpp: VNがハンドルを表す場合、ホストサイズのハンドル定数/印字を保持
  • テスト修正: bug603649.cs と interfacestatics.ilproj から回避措置/スキップを削除して回帰テストを再有効化

パフォーマンスへの影響

影響なし

関連Issue

#129034

その他

この変更は以前のデバッグ用タグによるハンドル検証の削除に伴うもので、異なるアーキテクチャ間のコンパイル時にハンドル値の完全性を保証する更新です。Copilot レビューアが7ファイル中7ファイルを確認しました。


#128374 Fix clobbering of RhpInterfaceDispatchSlow arguments on riscv64

概要

RISC-V 64ビット環境でRhpInterfaceDispatchSlowの引数が破損する問題を修正しました。tail疑似命令の展開時にt1レジスタが使用され、ターゲット関数のパラメータが上書きされていたため、アドレス計算用に別のスクラッチレジスタを使用するよう変更しました。

変更内容

  • src/coreclr/runtime/riscv64/StubDispatch.S: RhpUniversalTransitionTailCallのアドレス計算に使用するスクラッチレジスタを変更(+3/-1)

パフォーマンスへの影響

影響なし

関連Issue

#128374

その他

  • スタブディスパッチのランタイム実装(ネイティブアセンブリ)の修正
  • RISC-V 64の内部実装変更で、公開APIへの影響なし

#128279 Fix incorrect operand size for long-form IL local/argument instructions in InstructionEncoder

概要

InstructionEncoderの長形式ローカル/引数命令(ldloc、stloc、ldloca、ldarg、ldarga、starg)がECMA-335に違反して4バイトのint32オペランドを出力していた問題を修正。これらの命令は2バイトのushortオペランドを使用すべきです。例えば、StoreLocal(256)はFE 0E 00 01 00 00(6バイト)ではなくFE 0E 00 01(4バイト)を出力すべきものでした。

変更内容

  • InstructionEncoder.cs — 6つのLoad/Storeローカル/引数メソッド:

    • WriteInt32(slotIndex) → WriteUInt16((ushort)slotIndex)に変更(長形式ブランチ)
    • 範囲チェック:slotIndex > 0 → unchecked((uint)slotIndex) <= ushort.MaxValueに変更。65535を超えるインデックスはArgumentOutOfRangeExceptionをスロー
    • XML docの<exception>コメントを新しい上限に対応するよう更新
  • InstructionEncoderTests.cs — 6つの対応するテストメソッド:

    • il.XXX(int.MaxValue) → il.XXX(ushort.MaxValue)に変更
    • 期待されるバイト配列を6バイトから4バイトシーケンスに修正(例:0xFE, 0x0E, 0xFF, 0xFF, 0xFF, 0x7Fから0xFE, 0x0E, 0xFF, 0xFFへ)
    • ushort.MaxValue + 1およびint.MaxValueに対するArgumentOutOfRangeExceptionテストを追加

パフォーマンスへの影響

バイト列出力の削減により、メモリ消費量が減少(各命令につき2バイト削減)。影響なし(パフォーマンス改善)

関連Issue

#128279

その他

  • 互換性への影響:破壊的変更。65535を超えるローカル/引数インデックスを使用するコードは、以前は誤ったバイト列を出力していましたが、今後は例外をスローします。
  • API変更:公開メソッドのシグネチャは変わりませんが、入力値の有効範囲がより厳格になります。
  • 修正により、ECMA-335標準に準拠した正確なILエンコーディングが実現されます。

#128218 [automated] Merge branch 'release/8.0' => 'release/8.0-staging'

概要

release/8.0ブランチからrelease/8.0-stagingブランチへの自動マージです。hoyosjsによるコミットが含まれており、NativeAOTのInterop関連の修正、System.Formats.Tarのセキュリティ脆弱性対応、およびMarshalAPI関連の改善が統合されます。

変更内容

  • 依存関係更新: NuGet.config、eng/Version.Details.xml、eng/Versions.props、global.jsonの更新
  • NativeAOT Interop改善:
    • InteropHelpers.cs: PInvoke関連のヘルパーロジック改善
    • PInvokeMarshal.cs: P/Invoke構造体マーシャリング処理の強化(20行追加)
  • System.Formats.Tar脆弱性対応: TarEntry.csで大幅な機能追加(99行追加)、Tar抽出時の安全性向上に関するテスト追加(計118行のテスト追加)
  • Marshal API改善: StructureToPtrTests.csで新しいテストケース追加(54行追加)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRは自動生成されたマージリクエストです。マージ時には「Create a merge commit」を使用し、squashまたはrebaseコミットは避けるよう指示されています。System.Formats.Tarへのセキュリティ関連の変更が含まれており、Tar圧縮ファイル抽出機能のセキュリティが強化されています。


#128216 [automated] Merge branch 'release/9.0' => 'release/9.0-staging'

概要

release/9.0ブランチのコミットをrelease/9.0-stagingブランチに統合する自動マージPRです。hoyosjによるコミットが含まれており、NuGet依存関係の更新、NativeAOT PInvoke マーシャリング機能の改善、System.Formats.Tarライブラリのセキュリティ強化が主な変更です。

変更内容

  • ビルド設定: NuGet.config、eng/Version.Details.xml、eng/Versions.props、global.jsonの更新(依存関係バージョン更新)
  • NativeAOT PInvoke マーシャリング: InteropHelpers.cs、PInvokeMarshal.csの改善(ネイティブ相互運用性の強化)
  • System.Formats.Tar: TarEntry.csにセキュリティ関連の機能追加(99行追加)
  • テスト追加: TarFile.ExtractToDirectory関連テスト(ファイル・ストリーム・非同期)、Marshal.StructureToPtr関連テスト(54行追加)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRは自動生成されたマージPRであり、手動マージが必須です。マージはgit merge --no-ffを使用してマージコミットを作成する必要があります。マージ競合が発生する場合は手動で解決が必要です。


#126110 Update code-review workflow and standardize AI disclosure

  • 作成者: @stephentoub
  • 作成日時: 2026年03月25日 17:49:28(UTC)
  • マージ日時: 2026年06月15日 11:36:56(UTC)
  • ラベル: area-skills

概要

dotnet/runtimeリポジトリのAIエージェント向けコードレビューワークフローの更新と、AI生成コンテンツの開示テキストの標準化。ワークフロートリガーをslash_command(/code-reviewコメント)に変更し、手動トリガー、タイムアウト延長、同時実行制御、空PRガード機能を追加。複数のスキルおよびcopilot-instructions.md全体でAI開示表記を統一。

変更内容

  • .github/workflows/code-review.md — トリガー方式をslash_commandとworkflow_dispatchに変更、タイムアウトを45分に延長、同時実行時の前の実行をキャンセル、空PRチェックロジックをプロンプトに追加
  • .github/workflows/code-review.lock.yml — コンパイル済みワークフローを新しいトリガーと設定に対応
  • .github/skills/*/SKILL.md(複数ファイル) — AI開示ガイダンスを統一(bot除外設定、配置位置を"コンテンツ下部"に指定)
  • .github/copilot-instructions.md — リポジトリ全体のAI開示ガイダンスを更新
  • .github/dependabot.yml、.github/aw/actions-lock.json — 依存関連設定の更新

パフォーマンスへの影響

影響なし。本変更はワークフロー実行トリガー条件と実行時間制限(タイムアウト)の調整であり、実際のコード分析パフォーマンスには影響しません。

関連Issue

なし

その他

注意点: Copilotのレビューで5件の低信頼度コメントが報告されており、github.event.inputs.pr-numberのハイフンを含む入力名に関する潜在的な問題が指摘されています。GitHubワークフロー式の評価で失敗する可能性があるため、github.event.inputs['pr-number'](ブラケット記法)への修正またはハイフンなし命名への変更が推奨されます。また、空PR検出がプロンプト命令のみで実装されているため、確実にコメント投稿を防ぐには明示的なワークフローレベルチェック追加を検討する価値があります。


目次