Pull Request on 2026年02月07日

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

注意点

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



#124126 Fix Helix file URIs for subdirectory artifacts (xharness-output)

  • 作成者: @lewing
  • 作成日時: 2026年02月07日 05:19:14(UTC)
  • マージ日時: 2026年02月07日 16:25:35(UTC)
  • ラベル: area-skills

概要

Helix CI分析スキルの2つの改善を実施しています。1つ目は、サブディレクトリ内のアーティファクト(例:xharness-output/wasm-console.log)に対するHelix APIの不正なURI返却に対応する修正です。2つ目は、スキルの適用範囲をCI失敗分析から一般的なCI状態分析へ拡大し、ビルド完全成功時や未実行時の情報も正確に表示するようになりました。

変更内容

  • Get-HelixFailures.ps1: ファイルパスに/が含まれる場合、FileNameから正しいURIを再構築するロジックを追加(+52行)。ジョブサマリーの表示形式を「Failed jobs: N」から「Jobs: X total (Y passed, Z failed)」に変更。
  • SKILL.md: スキル説明とトリガーフレーズを更新し、失敗分析だけでなく一般的なCI状態確認(「CIが成功しているか?」など)もカバーするよう拡大。
  • helix-artifacts.md: ドキュメント更新(詳細は提供情報から不明)。

パフォーマンスへの影響

影響なし。本変更はCI分析の出力精度向上とスキル適用範囲の拡大に関するものであり、ランタイムパフォーマンスへの直接的な影響はありません。

関連Issue

dotnet/dnceng#6072(Helix APIのサブディレクトリファイルURI不正返却に関するIssue)

その他

本変更はGitHub Copilot AIアシスタント機能の改善であり、dotnet/runtimeリポジトリのCI/CD実行基盤に関連する更新です。スキルの汎用性向上により、Copilotが様々なCI状態確認クエリに対応できるようになります。


#124115 [Wasm Ryujit] Wasm SP is implicitly referenced

  • 作成者: @AndyAyersMS
  • 作成日時: 2026年02月07日 00:26:18(UTC)
  • マージ日時: 2026年02月07日 20:07:59(UTC)
  • ラベル: arch-wasm area-CodeGen-coreclr

概要

WebAssemblyのJIT (Ryujit)コンパイル時に、スタックポインタ (SP)ローカル変数が後から参照される場合(例:throw helper内)に、未使用と判定されてしまう問題を修正します。スタックポインタローカル変数を暗黙的に参照されるものとしてマークすることで、適切に保持されるようになります。

変更内容

  • src/coreclr/jit/lclvars.cpp: Wasmスタックポインタ引数ローカル変数 (lvaWasmSpArg)をlvImplicitlyReferencedフラグでマークするよう変更
  • Reverse P/Invoke用のWasmスタックポインタ一時変数も、割り当て時にlvImplicitlyReferencedとしてマークする

これにより、コンパイルの後期に追加される参照(例:throw helper呼び出し)が導入されても、スタックポインタが誤って未使用と判定されなくなります。

パフォーマンスへの影響

影響なし

変数のマーク方法変更のみであり、コード生成やランタイム実行に対する性能上の影響はありません。

関連Issue

なし

その他

  • 互換性への影響: Webassemblyターゲットの内部実装の修正であり、公開APIへの影響なし
  • 修正前後の動作: 修正前はスタックポインタが不正に削除される可能性があり、修正後は確実に保持される

#124113 [Wasm RyuJit] Ind write barriers, direct helper calls, more

  • 作成者: @AndyAyersMS
  • 作成日時: 2026年02月06日 23:40:38(UTC)
  • マージ日時: 2026年02月07日 19:16:28(UTC)
  • ラベル: arch-wasm area-CodeGen-coreclr

概要

WebAssembly(Wasm)RyuJit コンパイラにおいて、Write Barrier ヘルパー呼び出しのコード生成実装と、ヘルパー関数への直接呼び出しをサポートするための改善です。ダンプおよび逆アセンブリ出力に呼び出し対象の記号名を付与し、デバッグ時の可視性を向上させています。

変更内容

  • src/coreclr/jit/codegencommon.cpp: Write Barrier ヘルパー呼び出しのコード生成ロジック追加(+7行)
  • src/coreclr/jit/codegenwasm.cpp: Wasm プラットフォーム向けの write barrier 処理実装変更(+8/-9行)
  • src/coreclr/jit/emit.cpp: Wasm 環境でのヘルパー関数への直接呼び出しサポート実装(+3/-1行)
  • src/coreclr/jit/emitwasm.cpp: Wasm エミッタにおいて呼び出し対象の記号名装飾処理を追加(+11/-1行)

パフォーマンスへの影響

影響なし。本変更は write barrier のコード生成ロジックと呼び出し機構の改善であり、ランタイム動作やメモリ使用量への直接的なパフォーマンス変化は予測されません。記号名装飾はデバッグ出力に限定されるため実行時オーバーヘッドはありません。

関連Issue

なし

その他

  • 本変更は Wasm プラットフォーム向けの RyuJit コンパイラ機能強化の一部です
  • ダンプおよび逆アセンブリ出力の可読性向上により、Wasm JIT コンパイル結果の解析やデバッグが容易になります
  • Write Barrier はガベージコレクション時にヒープ参照の追跡に使用される重要な機構であり、その正確なコード生成は GC の動作保証に関わります

#124109 Add vmr-codeflow-status Copilot skill

  • 作成者: @lewing
  • 作成日時: 2026年02月06日 22:15:53(UTC)
  • マージ日時: 2026年02月07日 03:37:06(UTC)
  • ラベル: area-skills

概要

dotnet/runtime リポジトリに VMR(Vendor Managed Repository)コードフローの健全性を自動分析する新しい Copilot Agent Skill を追加します。このスキルは、バックフロー(VMR → 製品リポ)とフォワードフロー(製品リポ → VMR)の両方に対応し、PR メタデータの解析、スナップショットの検証、鮮度チェック、競合検出、修正トレースなどを実行して、推奨アクション(force trigger、close/reopen など)と実行可能な darc コマンドを提供します。

変更内容

  • SKILL.md (+114 行) — Copilot Agent Skill 定義とメタデータ
  • Get-CodeflowStatus.ps1 (+994 行) — メイン分析スクリプト(PR 分析モード、Missing Backflow モード)
    • PR メタデータの解析(VMR コミット、subscription ID、ビルド情報抽出)
    • スナップショット検証と鮮度チェック(HEAD との差分検出)
    • Maestro "codeflow cannot continue" 警告と競合検出
    • PR コミット分類(自動更新 vs 手動)
    • 修正 PR のコードフロー追跡(オプション)
    • バックフロー購読ブランチの自動検出と分析
  • vmr-codeflow-reference.md (+144 行) — VMR 概念、darc CLI、API エンドポイントのリファレンス

パフォーマンスへの影響

影響なし(開発支援ツールの追加であり、ランタイムやコンパイラのコード変更ではありません)

関連Issue

なし

その他

  • 複数リポジトリ(dotnet/sdk、dotnet/runtime、dotnet/roslyn、dotnet/aspnetcore、dotnet/dotnet)の 10+ 個のコードフロー PR で検証済み
  • 複数ブランチ(main、preview1、release/10.0.x)に対応
  • PowerShell スクリプト(~750 行)により、VMR の鮮度調査や競合解決といった開発者の定型作業を自動化

#124108 Fix reported string issue in ildasm

  • 作成者: @AaronRobinsonMSFT
  • 作成日時: 2026年02月06日 21:38:58(UTC)
  • マージ日時: 2026年02月07日 01:27:39(UTC)
  • ラベル: area-ILTools-coreclr

概要

ildasm(IL Disassembler)ツール内の文字列処理の問題を修正しました。PR #78894で導入されたバグを解決するもので、mdinfo.cpp内の1行を修正しています。

変更内容

  • src/coreclr/tools/metainfo/mdinfo.cpp: 1行の追加、1行の削除(計2行の変更)

パフォーマンスへの影響

影響なし

関連Issue

  • #124073(このPRで修正する報告済みの問題)
  • #78894(問題を導入した関連PR)

その他

なし


#124102 Fix ilink XML docs

  • 作成者: @gewarren
  • 作成日時: 2026年02月06日 19:36:56(UTC)
  • マージ日時: 2026年02月07日 00:44:37(UTC)
  • ラベル: linkable-framework area-Tools-ILLink

概要

ILLink trim analysis ソースコード内の XML ドキュメンテーション コメントの不正な形式を修正し、XML ドキュメント出力を有効にしたビルドが失敗しないようにしました。主な修正は、Nullable<T> テキストを Nullable{T} にエスケープし、<item> エントリを <list> ブロックで適切にラップすることです。

変更内容

  • RuntimeTypeHandleForNullableValueWithDynamicallyAccessedMembers.cs: XML ドキュメント内の Nullable<T>Nullable{T} にエスケープ
  • RuntimeTypeHandleForNullableSystemTypeValue.cs: XML ドキュメント内の Nullable<T>Nullable{T} にエスケープ
  • NullableValueWithDynamicallyAccessedMembers.cs: XML ドキュメント内の Nullable<T>Nullable{T} にエスケープ
  • NullableSystemTypeValue.cs: XML ドキュメント内の Nullable<T>Nullable{T} にエスケープ
  • IntrinsicId.cs: <list> ラッパーの追加、不正な <cref> 参照の修正、欠落していた <summary> ブロックの完成

パフォーマンスへの影響

影響なし

関連Issue

関連する Issue 情報は提供されていません。

その他

本修正は ILLink の trim 分析に関連するドキュメンテーション コメントの形式エラーに対応しており、XML ドキュメント出力機能を有効にしたビルドが失敗する問題を解決します。これはビルド時の問題であり、ランタイム動作には影響しません。修正対象ファイルはすべて ILLink.Shared/TrimAnalysis ディレクトリに集中しており、trim 分析機能に関連した修正です。


#124098 [release/11.0-preview1] Source code updates from dotnet/dotnet

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年02月06日 18:31:55(UTC)
  • マージ日時: 2026年02月07日 17:42:57(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

このPRは、dotnet/dotnetリポジトリから dotnet/runtime への自動コードフロー更新です。.NET 11.0 Preview 1リリース用に、複数の依存関係パッケージをビルド2895914(2026年2月5日)の最新版に更新しています。主な更新対象はRoslyn、Arcade、MSBuild、NuGetなどの重要なビルドツールセットです。

変更内容

  • eng/Version.Details.props: 依存関係の詳細バージョン情報を更新(39行追加/39行削除)
  • eng/Version.Details.xml: バージョン詳細設定を更新(79行追加/79行削除)
  • eng/common/core-templates/job/source-build.yml: ビルドテンプレート設定の軽微な更新(3行追加/3行削除)
  • global.json: グローバル設定ファイルの更新(4行追加/4行削除)

更新された主要依存関係:

  • Microsoft.CodeAnalysis系: 5.4.0-2.26076.102 → 5.4.0-2.26104.118
  • Microsoft.DotNet系ビルドタスク: 11.0.0-beta.26076.102 → 11.0.0-beta.26104.118
  • NuGet系パッケージ: 7.4.0-rc.7702 → 7.4.0-rc.10518
  • System.Text.Json、System.Reflection.Metadata等: 11.0.0-preview.1.26076.102 → 11.0.0-preview.1.26104.118

パフォーマンスへの影響

影響なし。これはメタデータと依存関係バージョンの更新のみで、ランタイムやライブラリ実装の変更ではありません。

関連Issue

なし

その他

  • コードフロー更新: dotnet/dotnetの自動化されたマエストロボットによるコードフロー更新
  • 関連リポジトリ: arcade、aspnetcore、roslyn、msbuild、nuget、sdk、wpfなど複数のソースリポジトリから変更を統合
  • 比較コマンド提供: PR内にdarc vmr diffコマンドが記載されており、VMR内の具体的な変更内容を確認可能

#124086 Fix #123950: Add missing HAVE_CLOCK_MONOTONIC to config.h.in

  • 作成者: @Copilot
  • 作成日時: 2026年02月06日 13:11:44(UTC)
  • マージ日時: 2026年02月07日 01:36:48(UTC)
  • ラベル: area-PAL-coreclr

概要

.NET 10 LinuxでTask.Delayがシステム時刻が逆方向にジャンプした時にフリーズする回帰バグを修正するPRです。CMakeはモノトニッククロック(CLOCK_MONOTONIC)サポートを検出していましたが、その結果がconfig.hに反映されず、ランタイムが壁時計時刻(CLOCK_REALTIME)にフォールバックしていたのが原因です。

// config.h.in に以下を追加
#cmakedefine01 HAVE_CLOCK_MONOTONIC

変更内容

ファイル 変更内容
src/coreclr/pal/src/config.h.in #cmakedefine01 HAVE_CLOCK_MONOTONICを追加(+1行)

パフォーマンスへの影響

改善点: ランタイムはLinux上の同期プリミティブとタイミング操作でモノトニッククロック(CLOCK_MONOTONIC)を使用できるようになります。これにより、システム時刻調整に対して耐性を持つようになり、Task.Delayのフリーズ問題が解決され、.NET 8/9の動作が復元されます。

パフォーマンス上の影響: タイミング操作がシステム時刻ジャンプの影響を受けなくなるため、より予測可能で安定した動作が期待できます。

関連Issue

  • Issue #123950: Task.Delay freezes when system time jumps backwards on .NET 10 Linux

その他


#124076 Disable runtime async feature on Apple mobile

  • 作成者: @kotlarmilos
  • 作成日時: 2026年02月06日 08:46:17(UTC)
  • マージ日時: 2026年02月07日 01:55:21(UTC)
  • ラベル: os-ios area-CodeGen-Interpreter-coreclr runtime-async

概要

Apple mobile(iOS/tvOS)プラットフォームでランタイムの非同期機能を無効化するPRです。Issue #124044で報告された問題に対応し、Apple mobile環境での非同期機能の実行を制限します。

変更内容

  • eng/testing/tests.targets (+1/-0): テストターゲット設定ファイルにApple mobile向けの非同期機能無効化フラグを追加
  • src/libraries/System.Diagnostics.StackTrace/tests/StackTraceTests.cs (+0/-1): スタックトレーステストから1行を削除(非同期機能関連のテストケースの削除と推測)

パフォーマンスへの影響

Apple mobile環境での非同期操作が無効化されるため、該当プラットフォーム上での非同期タスク実行パターンが利用不可になります。具体的なパフォーマンス数値は提供されていません。

関連Issue

#124044

その他

  • 最小限の変更セット(計2ファイル、実質2行の変更)で対応
  • Apple mobile特有の問題への限定的な修正であり、他のプラットフォームへの影響はなし

#124065 Remove O1K_BOUND_OPER_BND and O1K_BOUND_LOOP_BND

  • 作成者: @EgorBo
  • 作成日時: 2026年02月06日 02:21:22(UTC)
  • マージ日時: 2026年02月07日 17:19:12(UTC)
  • ラベル: area-CodeGen-coreclr

概要

JIT コンパイラの境界チェック最適化において、O1K_BOUND_OPER_BNDO1K_BOUND_LOOP_BND を削除し、統一された境界アサーション形式を導入しました。すべての境界関連アサーションが O1K_VN -- OAK_<relop> -- O2K_CHECKED_BOUND_ADD_CNS という単一形式に統一され、x < lenx < (len - 10) のような異なるパターンを均一に扱えるようになりました。

変更内容

  • assertionprop.cpp: アサーション伝播ロジックを簡略化(+115/-49)
  • compiler.h: バウンドチェック関連の構造体・定義を削除/更新(+70/-71)
  • rangecheck.cpp: 範囲チェック最適化コードを簡潔化(+28/-88)
  • valuenum.cpp: Value Numbering の複雑な分解ロジックを削除(+40/-187)
  • valuenum.h: 不要な定義を削除(+14/-59)

パフォーマンスへの影響

改善あり。作成者報告によると、複雑な relop VN の分解処理が削除されたことと、無駄な補完アサーション(例:X > BND)の生成を避けるチェックにより、全体的なパフォーマンス改善が見込まれます。また、スループット(TP)の向上が確認されています。具体的な数値は PR 内のベンチマーク結果を参照してください。

関連Issue

Issue #124065(このタイトルから推測)

その他

  • この変更は内部実装の最適化であり、公開 API への影響はありません
  • コード複雑度の低下により、将来の保守性が向上します
  • 統一されたアサーション形式により、境界チェック関連の検索・最適化が効率化されます

#124062 Fix TypeLoadException when async Task overrides Task

  • 作成者: @Copilot
  • 作成日時: 2026年02月06日 00:25:35(UTC)
  • マージ日時: 2026年02月07日 00:42:11(UTC)
  • ラベル: area-TypeSystem-coreclr runtime-async

概要

async Task がTask をオーバーライドする際に発生するTypeLoadExceptionを修正します。ランタイムが生成する非同期バリアント メソッド(アンラップされた戻り値型)が共変戻り値型の検証に不正に含まれていたことが原因です。

public abstract class Base {
    public abstract Task HandleAsync();
}

public class Derived : Base {
    // C#として有効だが、修正前はランタイムで拒否されていた
    public override async Task<string> HandleAsync() {
        await Task.Yield();
        return string.Empty;
    }
}

変更内容

  • src/coreclr/vm/class.cpp: ValidateMethodsWithCovariantReturnTypesで非同期バリアント メソッドをスキップ。派生クラス メソッド解決直後に早期チェックを実施し、親メソッドの不要な解決を回避。バリアント メソッドは他の非同期バリアント メソッドのみをオーバーライドすべきためです。
  • src/tests/.../AsyncCovariantReturn.cs: 型ロードが成功することを検証する回帰テスト。TypeLoadException がスローされないことを確認。

パフォーマンスへの影響

影響なし。変更は不正な検証を回避するもので、メモリ、実行速度、スループットへの影響はありません。むしろ不要な親メソッド解決を省略することで軽微な最適化効果があります。

関連Issue

なし

その他

修正パターンは既存のcodebase内の非同期バリアント処理(comdelegate.cpp:1046およびdispatchinfo.cpp:2585)と整合しています。SDK 11.0.100-preview.1 でのDevBetterWebのような実在するアプリケーションの互換性問題を解決します。


#124028 Wasm call fixes and more

  • 作成者: @AndyAyersMS
  • 作成日時: 2026年02月05日 02:11:59(UTC)
  • マージ日時: 2026年02月07日 16:03:35(UTC)
  • ラベル: arch-wasm area-CodeGen-coreclr

概要

WebAssembly(Wasm)のコール処理に関連した複数のコンパイラバグ修正を行うPull Requestです。境界チェック(GT_BOUNDS_CHECK)と生存期間管理(GT_KEEPALIVE)のコード生成修正、ヘルパー呼び出しの実装、デリゲート呼び出しのローリング処理の修正、配列アドレス最適化のarity検証修正、および値の番号付け(VN)でのヘルパー呼び出しarity問題の修正が含まれています。

変更内容

  • src/coreclr/jit/codegenwasm.cpp (+70/-29): Wasm向けのGT_BOUNDS_CHECKとGT_KEEPALIVE命令のコード生成処理を実装、ヘルパー呼び出しの発出処理を修正
  • src/coreclr/jit/lower.cpp (+28/-5): デリゲート呼び出しのローリング時におけるGT_PUTARGアサーション修正、arity検証の改善
  • src/coreclr/jit/morph.cpp (+12/-14): ARRADDR_ST最適化におけるarity チェックと引数フェッチの修正
  • src/coreclr/jit/valuenum.cpp (+17/-5): ヘルパー呼び出しのarity処理の修正
  • src/coreclr/jit/codegen.h (+4/-0): コード生成ヘッダーの定義追加

パフォーマンスへの影響

明示的なパフォーマンス改善数値の記載なし。修正の性質上、Wasm環境でのコード生成の正確性向上とヘルパー呼び出しの正確な実装による潜在的な安定性改善が期待されます。

関連Issue

明記なし

その他

  • 複数の異なるコンポーネント(codegen、lowering、morph、VN)にまたがる修正であり、JITコンパイラ全体の一貫性向上を目的としている
  • Wasmのランタイム実装に直接影響するため、WebAssemblyワークロードの正確性が向上する可能性あり

#124022 [release/10.0] Fix debugger hangs due to runtime deadlock by using patch DJI

  • 作成者: @github-actions[bot]
  • 作成日時: 2026年02月05日 01:02:18(UTC)
  • マージ日時: 2026年02月07日 00:00:33(UTC)
  • ラベル: Servicing-approved needs-area-label

概要

ReadyToRun メソッドのブレークポイント設定時にデバッガーがハングする競合状態を修正しました。複数スレッドがほぼ同時に実行される場合、デバッドジット情報(DJI)の不要な再検索を避けることで、ランタイムデッドロックを防止します。

変更内容

  • src/coreclr/debug/ee/controller.cpp: BindPatch メソッド内の DJI 検索ロジックを最適化(+3/-1行)
    • 既に取得済みの DJI を活用し、不要な再検索を排除

パフォーマンスへの影響

改善点: デバッグ中の不要なメモリ検索が削減され、デバッガーハングの回避によるスレッド効率改善。

影響: 最小限。DJI 検索の重複排除による軽微な最適化で、通常実行パスには影響なし。

関連Issue

  • #123651(元の PR)
  • #124022(このバックポート PR)

その他

  • リスク レベル: 低い
  • 破壊的変更: なし(BindPatch シグネチャは変更なし)
  • テスト: 手動で検証済み
  • 回帰リスク: なし
  • バックポート対象: release/10.0 ブランチ

発生条件: 以下の場合にハングが発生していました:

  1. 未実行の ReadyToRun メソッドにブレークポイント設定
  2. あるスレッドがステップ実行中に、別スレッドが初めてそのメソッドを実行

対応: 従来はデバッドジット情報を再度検索していましたが、既に保有している情報を活用することで、競合状態を排除し、IDE の強制終了やセッション状態の喪失を防止します。


#123792 [release/10.0] [Mono]: Fix stackwalk callbacks calling mono_jit_info_get_method in async signal safe mode.

  • 作成者: @github-actions[bot]
  • 作成日時: 2026年01月30日 10:42:51(UTC)
  • マージ日時: 2026年02月07日 02:23:28(UTC)
  • ラベル: Servicing-approved needs-area-label

概要

Mono のスタックウォーク処理でアサーション失敗を修正するバックポート。mono_jit_info_get_method がasync signal safe モード中に呼び出されるとアサーション例外が発生していた問題を、async 状態をチェックしてから呼び出すように修正しました。これにより get_thread_dump や AOT メソッドでの mono_handle_native_crash 時のクラッシュが解消されます。

変更内容

  • src/mono/mono/metadata/threads.c: スタックウォーク処理でのアサーション回避処理を追加(1行修正)
  • src/mono/mono/mini/mini-exceptions.c: 例外処理時のアサーション回避処理を追加(2行修正)

主な変更は、mono_jit_info_get_method 呼び出し前に (!ji->async) 状態を確認するようコードを調整し、async signal safe モード中の呼び出しを適切に処理しています。

パフォーマンスへの影響

影響なし。追加のチェックはごく軽量な条件判定のみで、パフォーマンスへの悪影響はありません。

関連Issue

その他

リスク評価: Low

  • 変更規模が極小(2ファイル、追加3行、削除3行)
  • .NET 10 の回帰修正(async signal safe シナリオを追加したコミットで発生)
  • 手動検証済み
  • 顧客報告の問題を解決

目次