Pull Request on 2026年04月03日

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

注意点

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



#126523 Clarify baseline build guidance for update-os-coverage skill

  • 作成者: @richlander
  • 作成日時: 2026年04月03日 23:22:48(UTC)
  • マージ日時: 2026年04月03日 23:38:42(UTC)
  • ラベル: area-skills

概要

update-os-coverageスキルのドキュメントにPrerequisitesセクションを追加し、YAML/ドキュメントのみの変更(Helixキュー・イメージ参照の更新)には repo-wide baseline buildが不要であることを明確化しました。製品コード変更が必要になる場合のみ copilot-instructions.md を参照するよう指示を改善しています。

変更内容

  • .github/skills/update-os-coverage/SKILL.md: Prerequisites セクションを追加(+4行)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

ドキュメント変更のみ(テスト不要)。開発者向けの運用ガイダンスの明確化です。


#126508 Exclude workflow lock files from Dependabot updates

  • 作成者: @akoeplinger
  • 作成日時: 2026年04月03日 16:41:27(UTC)
  • マージ日時: 2026年04月03日 18:57:32(UTC)
  • ラベル: area-Infrastructure

概要

DependabotがGitHub Actions workflow向けに自動生成される.github/workflows/*.lock.ymlファイルのバージョン更新を行わないようにするため、Dependabot設定に除外パターンを追加しました。これにより、生成されたロックファイルに対する不要なPull Requestの発生を防ぎます。

変更内容

  • .github/dependabot.yml: GitHub Actions用Dependabot設定に".github/workflows/*.lock.yml"の除外パターンを追加(+2/-0)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このChange は、ワークフロー生成の成果物に対する自動化されたバージョン更新を制御する設定変更で、開発体験の向上を目的としています。


#126507 Fix STJ source gen missing type parameter constraints on generic accessor wrappers

  • 作成者: @eiriktsarpalis
  • 作成日時: 2026年04月03日 15:19:25(UTC)
  • マージ日時: 2026年04月03日 21:34:15(UTC)
  • ラベル: area-System.Text.Json source-generator

概要

System.Text.Json ソースジェネレータが汎用型の UnsafeAccessor ラッパークラスを生成する際、型パラメータの制約を伝播していなかった問題を修正します。制約(例:where TResponse : notnull, AuthenticatorResponse)が欠落していると、ダウンストリーム(AspNetCore)でCS0314コンパイルエラーが発生していました。

修正により、生成されるジェネリックアクセサクラスに型パラメータ制約が正しく付加されます:

// 修正後
private static class __GenericAccessors_MyType<TResponse> 
    where TResponse : notnull, global::AuthenticatorResponse
{
    [UnsafeAccessor(...)]
    public static extern ... __get_...(PublicKeyCredential<TResponse> obj);
}

変更内容

  • PropertyGenerationSpec.csDeclaringTypeParameterConstraintClauses プロパティを追加し、制約情報を保持
  • JsonSourceGenerator.Parser.csGetTypeParameterConstraintClause() および GetTypeParameterConstraintsCombined() メソッドを追加し、ITypeParameterSymbol から structclassnotnullunmanaged、基底型、インターフェース、new() などすべての制約を抽出
  • JsonSourceGenerator.Emitter.cs — 抽出された制約をジェネリックラッパークラス宣言に追加
  • テストファイル — 制約付きジェネリック型でのコンパイル確認(単体テスト)と、シリアライゼーション/デシリアライゼーションのエンドツーエンド検証(ランタイムテスト)を追加

パフォーマンスへの影響

影響なし

関連Issue

#126507dotnet/dotnet#5880 の AspNetCore ビルド失敗修正

その他

  • #124650 の回帰を修正
  • 単体テスト194件すべてパス、PropertyVisibilityランタイムテスト378件すべてパス
  • GitHub Copilot の支援により生成されたPR

#126498 Revert "Rewrite UTF8 string marshalling test suite with Theory methods and bool-returning native functions"

  • 作成者: @MichalStrehovsky
  • 作成日時: 2026年04月03日 05:25:17(UTC)
  • マージ日時: 2026年04月03日 13:15:50(UTC)
  • ラベル: area-Interop-coreclr

概要

UTF-8文字列マーシャリング相互運用テストスイートの前回の書き直しを戻すPRです。xUnit Theory/MemberDataベースのテスト構造をシングルアウターループエントリーポイントに戻し、outerloopの実行失敗を解決します。PR #126366の変更を完全に戻します。

変更内容

  • src/tests/Interop/StringMarshalling/UTF8/UTF8Test.cs: テスト構造をxUnit Theory/MemberDataから単一のアウターループエントリーポイント(テストケースを反復)に戻す。P/Invoke署名とネイティブ関数呼び出しパターンを更新。
  • src/tests/Interop/StringMarshalling/UTF8/UTF8TestNative.cpp: エクスポートされたネイティブテストヘルパーの署名を戻す(BOOLvoid)。変換/検証ロジックの失敗パスを修正(throw;の使用を複数箇所で追加)。

パフォーマンスへの影響

影響なし

関連Issue

#126366(このPRで戻される変更)

その他

これはリバートPRです。前回の書き直しがouterloop実行を破損したため、テストスイートを元の実装形式に復帰させています。内部テストコード変更のため、公開APIへの影響はありません。


#126491 JIT: Funclet iterators

  • 作成者: @AndyAyersMS
  • 作成日時: 2026年04月02日 22:36:51(UTC)
  • マージ日時: 2026年04月03日 14:39:05(UTC)
  • ラベル: area-CodeGen-coreclr

概要

JITコンパイラにおいて、funclet(例外処理や遅延処理のコード領域)とそこに含まれるブロックに対してrange-based forループでの反復処理をサポートするようにしました。これにより、コード可読性と保守性が向上します。

変更内容

  • compiler.h: 新しいイテレータ実装を追加(+195行)。funcletおよびfunclet内のブロックを対象とした範囲ベースのfor迴処理をサポート
  • unwind関連ファイル群: unwind.cpp及びプラットフォーム固有の実装(amd64/armarch/loongarch64/riscv64/x86)で、従来の明示的なループをrange-based forに置き換え(合計△28行)
  • codegencommon.cpp, emit.cpp: 小規模な調整(△10行、+1行)

パフォーマンスへの影響

影響なし。これはコード生成メカニズムではなくコンパイラ内部のイテレータ処理の改善であり、JIT出力やランタイム性能には直接的な影響を与えません。

関連Issue

なし

その他

このPRは内部実装の改善であり、公開APIには影響しません。複数のプラットフォーム実装(AMD64、ARM、LoongArch64、RISC-V、x86)が一貫性のある方式で更新されています。


#126488 Increase Playwright timeouts in Blazor counter test to reduce CI flakes

  • 作成者: @lewing
  • 作成日時: 2026年04月02日 20:58:14(UTC)
  • マージ日時: 2026年04月03日 16:19:07(UTC)
  • ラベル: area-Build-mono

概要

Blazor WASMテストにおいて、遅延したWindows Helix Docker環境でのPlaywrightタイムアウトを削減するため、要素操作前に明示的なWaitForAsync(Visible)呼び出しを追加し、ClickAsyncのタイムアウトをデフォルトの30秒から60秒に増加させました。遅いCI環境でのCSS遷移やレイアウトの再フローが原因で、要素が「安定した」と判定されないことによるタイムアウト例外を回避します。

変更内容

  • src/mono/wasm/Wasm.Build.Tests/Blazor/BlazorWasmTestBase.cs
    • _executeAfterLoadedコールバック内のPlaywright要素操作に対して、各ClickAsync呼び出し前にWaitForAsync(State = Visible, Timeout = 60s)を追加
    • ClickAsyncのタイムアウトを30秒から60秒に増加(ページロードタイムアウトと統一)
    • Counter リンク、ステータス段落、「Click me」ボタンのLocator参照をキャッシュしてDOM再クエリを避ける

パフォーマンスへの影響

テストインフラストラクチャのタイムアウト変更のみで、テスト対象の動作に変更なし。CI環境でのタイムアウト例外の頻度低減により、テスト成功率向上が期待されます。

関連Issue

#94240#99961#107865

その他

この変更は動作テストのみに関連し、Blazor機能の実装に対する変更ではありません。


#126487 Make ICorProfiler support optional via FEATURE_CORPROFILER

  • 作成者: @AaronRobinsonMSFT
  • 作成日時: 2026年04月02日 20:52:27(UTC)
  • マージ日時: 2026年04月03日 23:26:53(UTC)
  • ラベル: area-VM-coreclr

概要

FEATURE_CORPROFILER ビルド時フラグを導入し、ICorProfiler サポート(PROFILING_SUPPORTEDPROFILING_SUPPORTED_DATAFEATURE_PROFAPI_ATTACH_DETACH)をオプション化しました。WASM ターゲットでは無意味であるため FEATURE_CORPROFILER を 0 に設定し、プロファイリング機能を完全に無効化します。これにより、非プロファイリング対応ビルドのコードサイズと複雑さを削減できます。

変更内容

  • ビルドシステム: clrfeatures.cmakeFEATURE_CORPROFILER をデフォルト 1、WASM で 0 に設定。clrdefinitions.cmakePROFILING_SUPPORTED* 定義を FEATURE_CORPROFILER でゲート。clr.featuredefines.props で WASM ビルドの ProfilingSupportedBuild を false に設定
  • VM コード: プロファイラー関連の実装を #ifdef PROFILING_SUPPORTED で保護(asynccontinuations.cpp、ceeload.cpp、comdependenthandle.cpp、exceptionhandling.cpp、gcenv.ee.cpp、jitinterface.cpp、prestub.cpp、readytoruninfo.cpp、runtimehandles.cpp、threads.cpp/h、eetoprofinterfaceimpl.h)
  • cDAC: datadescriptor.inc で ProfControlBlockProfilerFilterContext フィールド、ProfilerControlBlock グローバルを条件付きで出力。Thread.cs で TryGetValue を使用し、非プロファイリング対象で該当フィールドが存在しない場合に対応

パフォーマンスへの影響

影響なし。本変更は条件付きコンパイルによる無効化であり、ランタイム実行時のパフォーマンス上の変化はありません。WASM ビルドではプロファイラー関連コードが完全に除外され、バイナリサイズが削減される可能性があります。

関連Issue

なし

その他

  • 互換性: 内部実装の変更であり、パブリック API には影響なし
  • cDAC の堅牢性向上: プロファイリングサポート有無の別に関わらず、データコントラクト読者が安全に動作するよう設計(従来の TEB パターンに倣い、欠落フィールドを TryGetValue で処理)
  • テスト追加: MockDescriptors.Thread.cs、ThreadTests.cs で cDAC のプロファイリング関連フィールドの有無テストを追加

#126477 Fix quotientBuffer being returned to ArrayPool while in use

  • 作成者: @vcsjones
  • 作成日時: 2026年04月02日 17:34:04(UTC)
  • マージ日時: 2026年04月03日 14:49:44(UTC)
  • ラベル: area-System.Numerics

概要

BigInteger.DivRemメソッドのuse-after-return バグを修正します。ArrayPool<nuint>.SharedからレンタルされたquotientBufferが、BigIntegerコンストラクタがその内容をコピーする前に返却される問題がありました。この修正により、バッファの返却前にquotient値がコピーされるようにしています。

変更内容

  • src/libraries/System.Runtime.Numerics/src/System/Numerics/BigInteger.cs
    • DivRemメソッドのtrivialDivisorパス内で、quotientBufferDispose呼び出し(ArrayPoolへの返却)前にBigIntegerコンストラクタを実行
    • バッファからのレンタル値の使用が全て完了した後にDisposeを呼び出すよう順序を変更

パフォーマンスへの影響

影響なし

関連Issue

#126477

その他

  • BigInteger再実装時に導入されたバグで、リリース済みの.NETバージョンに影響なし
  • メモリ安全性に関わる重要な修正(use-after-return防止)

#126451 Align OTel names with general conventions.

  • 作成者: @cincuranet
  • 作成日時: 2026年04月02日 08:14:25(UTC)
  • マージ日時: 2026年04月03日 17:07:13(UTC)
  • ラベル: area-Extensions-Caching

概要

Microsoft.Extensions.Caching.MemoryのOpenTelemetryメトリクス名とタグ名をdotnet.cache.*命名規則に統一する変更です。メトリクス計測器名とタグキーをリネームし、複数形から単数形への単位文字列調整も含まれます。

変更内容

  • MemoryCache.cs: キャッシュメトリクス計測器名をcache.requestsdotnet.cache.requestsへリネーム、タグキー名をcache.name/cache.request.typedotnet.cache.name/dotnet.cache.request.typeへ変更。メトリクス単位文字列の複数形を単数形に調整(11行の追加/削除)
  • MemoryCacheMetricsTests.cs: OpenTelemetryメトリクス検証テストの期待値を新しい命名規則に対応させるよう更新(14行の追加/削除)

パフォーマンスへの影響

影響なし

関連Issue

#126146(前提となるPR)

その他

このPRはOpenTelemetry互換性の改善であり、既存のメトリクス名参照があるコードは該当の新しい命名規則への対応が必要となります。


#126449 Process.Linux/OSX: avoid loading full ProcessInfo for ProcessName and ToString.

  • 作成者: @tmds
  • 作成日時: 2026年04月02日 05:46:10(UTC)
  • マージ日時: 2026年04月03日 14:27:48(UTC)
  • ラベル: area-System.Diagnostics.Process community-contribution

概要

System.Diagnostics.ProcessProcessNameプロパティとToString()メソッドで、Linux/macOS上で完全なProcessInfoの構築を避けることで パフォーマンスを改善します。また、ProcessInfoを必要としないAPIのみを使用する場合、トリミング時にProcessInfo関連コードを削除できるようにします。

変更内容

  • Process.cs: ProcessNameプロパティの実装を共通化し、_processNameキャッシュとGetProcessInfo()ヘルパーを追加。ToString()を軽量なプロセス名取得パスに対応。
  • ProcessManager各プラットフォーム: 各プラットフォーム(Windows、Linux、OSX、FreeBSD、SunOS、iOS)にGetProcessName(..., ref ProcessInfo?)メソッドを追加し、軽量なプロセス名取得を実装。
    • Linux: /procstat ファイルから直接プロセス名を読み取り、ProcessInfo構築なしで取得
    • OSX: 軽量パスを追加し、必要な場合のみproc_taskallinfoを使用
    • Windows/FreeBSD/SunOS: オプショナルなProcessInfo ref パラメータ経由で高速パスとProcessInfoフォールバックを実装
    • iOS: プラットフォーム非対応としてPlatformNotSupportedExceptionをスロー
  • Process.Unix.cs/Process.Windows.cs: プラットフォーム固有のProcessName実装を削除し、共通実装に統一

パフォーマンスへの影響

ProcessNameToString()の呼び出しで、完全なProcessInfoの構築をスキップできるため、メモリ割り当てと初期化コストを削減。特にLinuxで/procファイルの部分的な読み取りで済むため、システムコール削減につながります。

関連Issue

#126449

その他

この変更により、AOT/トリミングシナリオでProcessInfo関連のコードを除去でき、アセンブリサイズの削減が期待できます。


#126446 [main] Source code updates from dotnet/dotnet

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年04月02日 02:09:42(UTC)
  • マージ日時: 2026年04月03日 21:37:18(UTC)
  • ラベル: area-codeflow

概要

VMR(Virtual Mono Repository)の dotnet/dotnet からのコードフロー更新です。Microsoft.CodeAnalysis、NuGet、System.Text.Json など複数の依存パッケージと、Arcade、ASP.NET Core、EF Core、F#、Roslyn、SDK など複数のリポジトリからのソースコード変更が含まれています。

変更内容

  • バージョンファイル: eng/Version.Details.props、eng/Version.Details.xml、eng/Versions.props、global.json を更新
  • CI/CDテンプレート: eng/common 配下の複数のビルドおよびパブリッシュテンプレートを更新
  • 依存パッケージ更新:
    • Microsoft.CodeAnalysis: 5.6.0 → 5.7.0
    • Microsoft.CodeAnalysis.NetAnalyzers: 11.0.100-preview.3 → 11.0.100-preview.4
    • Microsoft.DotNet.Arcade.Sdk および関連ビルドタスク: 11.0.0-beta.26176.106 → 11.0.0-beta.26201.113
    • NuGet.* パッケージ: 7.6.0-rc.17706 → 7.6.0-rc.20213
    • System.Text.Json、System.Reflection.Metadata: 11.0.0-preview.3 → 11.0.0-preview.4
    • System.CommandLine: 3.0.0-preview.3 → 3.0.0-preview.4
    • JIT Tools、LLVM Tools、Wasm Node Transport(複数プラットフォーム): 19.1.0/11.0.0-alpha 系の小バージョン更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 本PRは自動的に生成されたコードフロー更新です(dotnet-maestro[bot]によるもの)
  • 複数のリポジトリからの変更が統合されています(Arcade、ASP.NET Core、EF Core、F#、NuGet.Client、Razor、Roslyn、Runtime、SDK、Templating、WinForms)
  • 関連するソースレポジトリの比較は PR 説明のアソシエーション変更セクションで確認可能です

#126436 WIP Apply Base Relocs For Webcil in Wasm CoreCLR

  • 作成者: @adamperlin
  • 作成日時: 2026年04月01日 23:15:14(UTC)
  • マージ日時: 2026年04月03日 17:55:14(UTC)
  • ラベル: area-VM-coreclr

概要

WebCilランタイムの基本再配置スキーム実装です。WasmObjectWriterがPEスタイルの基本再配置をWebcilのrelocセクションに出力し、CoreCLRのWebcilローダーがこれらの再配置を適用するよう更新されました。標準的なイメージベース再配置に加えて、Wasm関数ポインタテーブルベース用の新しい再配置タイプ(wasm32/wasm64対応)が追加されています。

変更内容

  • WasmObjectWriter.cs: PE形式の再配置ブロックをWebcilペイロードに出力し、再配置エントリ(Wasm関数ポインタテーブルベース向けの新タイプを含む)を記録
  • peimagelayout.cpp: Webcil画像に対してApplyBaseRelocationsを実行し、イメージベース再配置とテーブルベース再配置の両方を適用
  • webcildecoder.cpp/h: 基本再配置の有無を公開し、BASERELOC形式でのアクセスをサポート
  • ntimage.h: Wasm関数ポインタテーブルベース用の新しい再配置タイプコード定義
  • Relocation.cs: Webci再配置タイプの追加とWasmテーブルインデックス再配置のマッピング
  • peimagelayout.inl/h: PE/Webcil向けの再配置ヘルパー関数(SetRelocatedHasBaseRelocationsなど)を追加
  • webcildecoder.h: 再配置状態追跡とWebcil向けHasBaseRelocations APIを追加
  • webcil.md: Reserved0フィールドの再配置セクション用途とブロック/エントリエンコーディング形式を文書化

パフォーマンスへの影響

影響なし(本PR時点では未テスト実装のため、パフォーマンスベンチマークは提供されていません)

関連Issue

#126388

その他

本PRは現在未テスト状態のWIP実装です。実際のテーブルベースはまだロード時に設定されておらず、将来的にはWebcilヘッダー内のフィールドとして設定される予定(#126388に依存)。


#126429 Fix composite crossgen2 crash: "Multiple nodes of this type are not supported" in TypeMap nodes

  • 作成者: @Copilot
  • 作成日時: 2026年04月01日 19:08:09(UTC)
  • マージ日時: 2026年04月03日 16:18:33(UTC)
  • ラベル: area-crossgen2-coreclr

概要

Composite R2R モード(複合ReadyToRun)でのcrossgen2クラッシュを修正します。複数のTypeMapノードが同一のClassCodeを持つ場合、CompareToImplが未実装であるため、依存関係グラフソーターが"Multiple nodes of this type are not supported"例外をスローしていました。本修正では、TypeMapノードにモジュール認識機能を追加し、モジュール単位で一意なノードを生成することで、決定的なソート順序を確立します。

変更内容

  • TypeMapManager(内部実装): AssociatedModuleプロパティ追加(デフォルトでnull
  • TypeMapMetadata(内部実装): AssociatedModuleプロパティ追加、CreateFromAssemblyで初期化
  • ExternalTypeMapObjectNode / ProxyTypeMapObjectNode(内部実装): CompareToImpl実装、モジュール識別子をマングル名に包含
  • TypeMapAssemblyTargetsNode(ReadyToRun ツール): CompareToImplと名前生成ロジック実装、モジュール情報を反映
  • ReadyToRunTypeMapManager(ReadyToRun ツール): AssociatedModuleをオーバーライド、composite対応へ変更(モジュールごとにノード生成)

パフォーマンスへの影響

影響なし(バグ修正による機能復帰が目的)

関連Issue

#126429

その他

  • NativeAOT(UsageBasedTypeMapManager)は従来通り単一インスタンスのみ生成されるため、本修正の影響なし
  • cherry-pickされた修正で、Interop composite作業項目でのcrossgen2クラッシュを完全に解決
  • Public APIの変更なし、コンパイラツール側の内部実装のみ

#126387 Fix R2RDump ArgumentOutOfRangeException for composite LVB images

  • 作成者: @Copilot
  • 作成日時: 2026年04月01日 00:10:25(UTC)
  • マージ日時: 2026年04月03日 23:30:48(UTC)
  • ラベル: area-R2RDump-coreclr

概要

Large Version Bubble(LVB)複合R2Rイメージにおいて、ManifestReferenceAssembliesReadyToRunAssemblyHeadersよりも多くのエントリを含む場合に、R2RDumpツールがArgumentOutOfRangeExceptionで異常終了する問題を修正します。マニフェストに含まれるバージョンバブルアセンブリ参照が実際のコンポーネントアセンブリ数を上回る場合、イテレーション時にインデックスが範囲外になることを防ぎます。

変更内容

  • src/coreclr/tools/r2rdump/TextDumper.cs: TextDumper.DumpHeader内のコンポーネント処理ループに境界チェックを追加。assemblyIndexReadyToRunAssemblyHeaders.Countに達した時点でループを抜けるようにし、マニフェスト参照がアセンブリヘッダ数を超える場合の範囲外アクセスを防止。

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

本修正はR2RDumpツール(内部診断ツール)に対するもので、公開APIには影響しません。LVB複合イメージのダンプ出力に必要な修正です。


#126384 Add update-os-coverage skill for Helix queue OS version updates

  • 作成者: @richlander
  • 作成日時: 2026年03月31日 23:18:01(UTC)
  • マージ日時: 2026年04月03日 23:14:20(UTC)
  • ラベル: area-Infrastructure

概要

Helix キュー定義ファイルにおけるOS バージョン参照を自動更新するための新しい Copilot スキル(update-os-coverage)を追加します。このスキルは、コンテナイメージの可用性確認、EOL日付の確認、パイプラインファイル内の参照スキャン、バージョン更新の適用、陳旧化した参照の検証、リリースブランチの確認、および supported-os.json との照合を含む、OS バージョン更新の完全なプロセスを自動化します。

変更内容

  • .github/skills/update-os-coverage/SKILL.md (+291行)
    • 新しい Copilot スキル定義ドキュメントを追加
    • OS バージョン更新の エンドツーエンドワークフローを記述
    • 対象ファイル:eng/pipelines/helix-platforms.yml、複数の helix-queues-setup.ymlpipeline-with-resources.ymldocs/workflow/using-docker.md など
    • 入力、キーファイル、スキャン・更新ステップ、検証ステップ、オプションのクロスブランチ・サポートOS監査ガイダンスを記述

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • Fedora 43→44 更新に対するテストを実施し、スキルが Fedora 参照を含む 2 つのファイルを正しく更新し、イメージ可用性を確認、結果を検証することが確認されています
  • OS オンボーディングガイド をポリシーとプロセスの信頼できるソースとして参照しています
  • GitHub Copilot CLI の支援を受けて生成されたPR です

#126340 [main] Update dependencies from dotnet/icu, dotnet/runtime-assets

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年03月31日 02:01:36(UTC)
  • マージ日時: 2026年04月03日 21:38:56(UTC)
  • ラベル: area-codeflow

概要

dotnet/runtime-assetsおよびdotnet/icuリポジトリからの依存関係を自動更新するPull Requestです。runtime-assetsの複数のテストデータおよびリソースパッケージを11.0.0-beta.26173.1から11.0.0-beta.26180.1に、ICU Transport パッケージを11.0.0-alpha.1.26168.1から11.0.0-alpha.1.26181.1に更新します。

変更内容

  • eng/Version.Details.props: バージョン情報の更新(+17/-17行)
  • eng/Version.Details.xml: 依存関係の詳細情報更新(+34/-34行)

更新された依存関係:

  • dotnet/runtime-assets関連(16パッケージ):

    • Microsoft.DotNet.CilStrip.Sources
    • Microsoft.DotnetFuzzing.TestData
    • Microsoft.NET.HostModel.TestData
    • System.ComponentModel.TypeConverter.TestData
    • System.Data.Common.TestData
    • System.Drawing.Common.TestData
    • System.Formats.Tar.TestData
    • System.IO.Compression.TestData
    • System.IO.Packaging.TestData
    • System.Net.TestData
    • System.Private.Runtime.UnicodeData
    • System.Runtime.Numerics.TestData
    • System.Runtime.TimeZoneData
    • System.Security.Cryptography.X509Certificates.TestData
    • System.Text.RegularExpressions.TestData
    • System.Windows.Extensions.TestData
  • dotnet/icu関連:

    • Microsoft.NETCore.Runtime.ICU.Transport

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRはdotnet-maestro[bot]による自動依存関係更新です。主にテストデータとICUランタイムパッケージの定期的なメンテナンス更新です。


#126330 Migrate CLR to COM stubs to be IL stubs

  • 作成者: @jkoritzinsky
  • 作成日時: 2026年03月30日 20:36:48(UTC)
  • マージ日時: 2026年04月03日 03:30:26(UTC)
  • ラベル: os-windows area-Interop-coreclr

概要

CLR→COM イベント処理と遅延バインディング スタブを、レガシーな「汎用スタブ + CLRToCOMMethodFrame」モデルから IL スタブに移行します。これにより、CLR→COM 動作を既存の IL スタブ インフラストラクチャに統合し、デバッガ/スタックウォーク処理の特殊ケース対応を削減します。イベント処理スタブは基本的な IL スタブ インフラの上に実装され、遅延バインディング スタブは IL スタブ インフラストラクチャの拡張版として実装されます。

変更内容

  • IL スタブ インフラ拡張: ldstr(ユーザー文字列)、newarrstelem.i1/i4 命令サポートを追加し、マネージド リフレクション ヘルパーの呼び出しに対応
  • CLRToCOMMethodFrame 削除: ランタイム フレーム型から CLRToCOMMethodFrame を削除し、アーキテクチャ固有の GenericCLRToCOMCallStub 実装(x86/AMD64/ARM64)も削除
  • スタブ生成統一: clrtocomcall.cpp で IL スタブベースの eventing スタブ生成を実装、CLR→COM スタブ生成を IL スタブ経由に統一
  • 遅延バインディング リファクタリング: LateBoundCLRToCOM_ILStubState を導入し、遅延バインディング スタブが引数配列/型を構築して ForwardCallToInvokeMember へ呼び出し
  • デバッガ簡素化: CLRToCOMMethodFrame 関連のステップ抑制フラグ、スタックウォーク抑制ロジック、特殊な stepping suppression flag を削除
  • マネージド側変更: RuntimeType.CoreCLR.cs__ComObject.cs の非管理エントリ ラッパーを削除(IL スタブが直接マネージド メソッド呼び出し可能に)

パフォーマンスへの影響

影響なし

関連Issue

#126330(本 PR)、#126002(COM→CLR スタブの類似変更)

その他

  • 内部実装変更:FrameIterator.csstubmgr.cppilstubresolver.cpp など CDAC および stackwalk 処理更新
  • 削除ファイル:callsiteinspect.h/cpp(呼び出しサイト検査ヘルパー)、AMD64 用 GenericCLRToCOMCallStubs.asm
  • ビルド設定:CMakeLists.txt で obsolete なソース/ヘッダー削除、COM interop ビルドで clrtocomcall.* を正しく包含
  • ドキュメント更新:StackWalk data contract docs から CLRToCOMMethodFrame 参照削除

#126241 Use compiler-generated doc XML for PNSE builds

  • 作成者: @ericstj
  • 作成日時: 2026年03月28日 03:25:32(UTC)
  • マージ日時: 2026年04月03日 01:49:34(UTC)
  • ラベル: area-Infrastructure-libraries

概要

PNSE(Platform Not Supported Exception)アセンブリビルドにおいて、IntelliSenseパッケージに依存せず、互換性のある非PNSEシブリングターゲットフレームワークから生成されたコンパイラドキュメントXMLを再利用するようにビルドロジックを更新しました。これにより、PNSEビルドの外部依存性を削減します。

変更内容

  • IsCandidateCompilerGeneratedDocFile プロパティの追加: AdditionalTargetFrameworkInfoProperty経由でフローさせ、外側ビルドがPNSEドキュメントソースとして適切なシブリングTFMを選択できるようにしました
  • IsPlatformNotSupportedAssembly の再構成: ItemDefinitionGroup内のインライン計算から独立したプロパティに変更
  • IntellisensePackageXmlFilePath の名称変更: より汎用的な DocFileOverride に名称を変更(XMLドキュメントオーバーライドの出所を柔軟に対応)
  • 新規ビルドターゲット: GetPNSEDocTargetFramework、AddProjectReferenceToPNSEDocSource、SetDocFileOverrideFromPNSEDocSource を追加してシブリングドキュメントファイルを解決・適用
  • 警告の抑制: PNSEビルド向けの「欠落IntelliSenseファイル」警告を抑制

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRは、ライブラリのビルドシステム(eng/intellisense.targets)における内部実装の変更です。公開APIや互換性への影響はありません。IntelliSenseパッケージの依存性が削除されることで、ビルド依存グラフがシンプル化される利点があります。


#126164 [cDAC] Implement GetTieredVersions for cDAC

  • 作成者: @barosiak
  • 作成日時: 2026年03月26日 19:07:42(UTC)
  • マージ日時: 2026年04月03日 01:09:17(UTC)
  • ラベル: area-Diagnostics-coreclr

概要

cDAC(コンポーネント化DAC)に ISOSDacInterface5.GetTieredVersions を実装し、ネイティブコードバージョンの最適化ティアを分類するAPIを提供します。R2Rイメージの境界チェックとティアード・コンパイル適格性を確認して、各ネイティブコードバージョンを正しいティアに分類します。ティアされていないメソッドやコード生成がないメソッドはUnknownを報告し、コントラクト表面を最小限に保ちます。

変更内容

  • ネイティブ層(C++): NativeCodeVersionNodeMethodDescCodeDataOptimizationTierを公開し、request.cppの既存DAC実装を簡略化
  • 契約・抽象化レイヤー:
    • ICodeVersions: GetOptimizationTierメソッドとNativeCodeVersionOptimizationTier列挙型を追加
    • IRuntimeTypeSystem: GetMethodDescOptimizationTierIsEligibleForTieredCompilation、JIT最適化無効化検出API
    • ILoader: IsReadyToRun、デバッガー情報取得、モジュールフラグ機能
  • レガシーレイヤー: SOSDacImpl.GetTieredVersionsの完全実装と新規DacpTieredVersionData構造体、およびデバッグ時にレガシー実装との検証
  • データモデル: MethodDescCodeDataNativeCodeVersionNodeOptimizationTierフィールド、EEConfig新規データモデル
  • テスト: 明示的ハンドル(全ティア値)、合成ハンドル(RTS委譲)、R2R検出、バッファ切り詰め、無効入力、ティアされていないメソッドに対するパラメータ化テスト

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPRはデバッグ・プロファイリング・ティアード・コンパイル情報の読取を目的としたもので、ランタイム実行に直接的な影響はありません
  • #if DEBUG検証により、レガシー実装との互換性を確保しています
  • 18個の変更ファイルに対して包括的なテストカバレッジ(79行のCodeVersionsTests、302行のSOSDacInterface5Tests)が追加されています

#126163 [cDAC] Add data descriptor field type annotations

  • 作成者: @max-charlamb
  • 作成日時: 2026年03月26日 18:59:19(UTC)
  • マージ日時: 2026年04月03日 15:03:24(UTC)
  • ラベル: area-Diagnostics-coreclr

概要

cDAC(Compact Data Access Container)データディスクリプタ基盤に型システムを追加しました。従来はC言語のコメント(/*uint32*/)で指定されていたフィールド型を、プリプロセッサマクロ(T_UINT32T_POINTERTYPE(GCHandle)など)で明示的に表現するようにしました。これにより、型情報のコンパイル時検証が可能になります。

変更内容

  • ネイティブ側型定義 (wrappeddatadescriptor.inc):

    • プリミティブ型マクロ:T_UINT8T_UINT16T_UINT32T_UINT64T_INT8~T_INT64T_NUINTT_NINTT_POINTERT_BOOL
    • 構造体型:TYPE(name)(同じディスクリプタ内のCDAC_TYPE_BEGINで宣言された型向け)
    • クロスディスクリプタ参照:EXTERN_TYPE(name)
    • 配列型:T_ARRAY(type)
    • デバッグ/チェック済みビルドではブロブ内に型名文字列として展開、リリースビルドでは展開なし
  • コンパイル時検証 (cdactypevalidation.inc):

    • デバッグビルドにおいて、すべてのTYPE(name)参照がCDAC_TYPE_BEGIN宣言と一致することをstatic_assertで検証
    • 2パス方式:第1パスで宣言された型を収集、第2パスで参照を検証。前方参照に対応
  • ディスクリプタ更新

    • VM datadescriptor.inc:約200フィールドと約50グローバル変数を型定義に変換
    • GC datadescriptor.inc:すべてのフィールドとグローバル変数を変換、クロスディスクリプタ参照にEXTERN_TYPE(GCAllocContext)を使用

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 本変更は内部実装(ネイティブデバッグインフラストラクチャ)の改善で、公開APIに影響なし
  • cdac-build-toolContractDescriptorSourceFileEmitter.csも対応更新
  • READMEを更新し、新しい型アノテーションシステムを文書化

#126002 Rework built-in COM->CLR stubs to build on the UnmanagedCallersOnly model

  • 作成者: @jkoritzinsky
  • 作成日時: 2026年03月24日 00:20:12(UTC)
  • マージ日時: 2026年04月03日 00:24:08(UTC)
  • ラベル: os-windows area-Interop-coreclr

概要

COM→CLR スタブのアーキテクチャを Reverse P/Invoke(UnmanagedCallersOnly)モデルに統合し直すことで、レガシーな動的スタックレイアウト+直接 IL スタブ呼び出しのアプローチを廃止します。これにより、実行可能ヒープ上の ComMethodTable/ComCallMethodDesc の割り当てと手動アセンブリパッチングが不要になります。

変更内容

  • COM→CLR vtable エントリの UMEntryThunk ルーティング: COM シナリオ向けの ComCallUMThunkMarshInfo を導入し、Reverse P/Invoke インフラに統合(ネイティブ IUnknown* パラメータの処理を追加)
  • レガシーな COM ディスパッチロジックの削除: GenericComCallStubs、COM FP リターンヘルパー、プリパッド/パッチング関連のアセンブリコードを複数アーキテクチャ(AMD64、ARM、ARM64、RISC-V、LoongArch64)から削除
  • QCall ヘルパーの追加: COM→CLR "this" オブジェクト解決(CCW 取得)と COM 可視性検証用 QCall を StubHelpers に実装
  • COM プリスタブの再実装: AMD64/ARM64 プリスタブを新モデルに対応(UMEntryThunkData秘密引数による tailcall)
  • マーシャリングロジック調整: MarshalInfo::IsComScenario を追加し、COM シナリオでのリバースマーシャリング時に注入されたネイティブパラメータオフセットを考慮
  • クロスアーキテクチャ簡素化: COM 固有の emit ヘルパーとアセンブリ定数の削除、例外ハンドリングと stack walk ロジックの簡潔化

パフォーマンスへの影響

影響なし(提供された情報にパフォーマンス計測結果の記載がないため)

関連Issue

なし

その他

  • 互換性: この変更は COM 相互運用実装の内部リファクタリングであり、公開 API レベルの破壊的変更はありません
  • アーキテクチャサポート: AMD64、ARM、ARM64、RISC-V、LoongArch64 すべてで対応
  • ポーティングガイド更新: 削除された COM ヘルパーをドキュメントから除外

#116164 Make sure binder gets enumerated

  • 作成者: @hoyosjs
  • 作成日時: 2025年05月30日 23:08:19(UTC)
  • マージ日時: 2026年04月03日 13:01:56(UTC)
  • ラベル: area-Diagnostics-coreclr

概要

DAC(Debugging Assistant Component)メモリ列挙時に、バインダーが適切に列挙されていない問題を修正します。dumpobj実行時にRCWテーブルへのアクセスでDAC障害が発生する潜在的なバグを解決します。

変更内容

  • src/coreclr/debug/daccess/enummem.cpp: g_CoreLibに対してEnumMemoryRegionsを呼び出すロジックを追加し、バインダー経由の型名検索パスを適切に列挙対象に含めるように修正(+1/-0)

パフォーマンスへの影響

影響なし

関連Issue

#113907dotnet/diagnostics#5491

その他

この変更は内部的なDAC実装の修正であり、公開APIへの影響はありません。ランタイムデバッグ機能の安定性向上を目的としています。


目次