Pull Request on 2026年08月05日

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

注意点

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


目次

  1. #131883 [browser][CoreCLR] Restore R2R coverage and gate unsupported priority-1 tests
  2. #131865 Fix broken relative links in docs
  3. #131864 Bump the Helix Job Monitor
  4. #131863 [browser] Package CoreCLR browser-wasm native relink headers in the runtime pack
  5. #131857 Keep accepted sockets alive in TlsSession tests
  6. #131845 Fix integer overflow in BufferBuilder.EnsureBuffer size calculation
  7. #131844 Fold clr.featuremultithreading.props into clr.featuredefines.props; use ConditionalFact for FeatureMultithreading test skips
  8. #131837 [cDAC] Unwrap legacy AppDomain for method enumeration
  9. #131836 [cDAC] Preserve basic object type input
  10. #131830 Fix handling of inability to get free region in thread_final_regions
  11. #131829 Exclude rundownvalidation from crossgen tests
  12. #131827 Use inline arrays in GCMemoryInfoData.
  13. #131819 Improve watchdog child exit status check
  14. #131816 Disable GetGeneration test under interpreter (InterpreterIncompatible)
  15. #131810 [release/10.0] JIT: bail out of CEA cloning if alloc block has multiple successors
  16. #131797 Suppress union ambiguity warning when a global classified is specified at compile time
  17. #131796 [s390x] add in-process crash reporter for s390x
  18. #131795 [release/10.0] Update dependencies from dotnet/hotreload-utils, dotnet/runtime-assets
  19. #131790 Remove development-only contract versions
  20. #131786 [clr-interp] Fix DAC access to interpreter frame data
  21. #131780 Add cDAC runtime version information
  22. #131777 [cDAC] Remove IterateMethodInstances legacy fallback
  23. #131753 Invalidate metadata table lookup hashes when an EnC delta adds records
  24. #131750 JIT: expand multi-dimensional array intrinsics for large and struct elements
  25. #131729 Run large array test exclusively
  26. #131723 Fix CMAKE_LINKER definition
  27. #131719 Audit CoreLib for members that stay safe under unsafe-v2
  28. #131645 interp: don't alias a call's return buffer with its own arguments
  29. #131493 Enable System.Private.CoreLib for testing in CoreRun scenarios
  30. #131468 Use native SDK for arm64 Apple simulator tests
  31. #131354 [wasm][R2R] Request flat layout for composite image on WebAssembly
  32. #131138 Strictly require CRLF when parsing HTTP/1.1 chunked encoding lines

#131883 [browser][CoreCLR] Restore R2R coverage and gate unsupported priority-1 tests

概要

PR #131110で有効化されたCoreRLR browser-WASM out-of-processランタイムテストにおける8つのテスト失敗に対処するPRです。4つはWebCIL/ReadyToRun複合エラーで、PR #131354のfix後にActiveIssueアノテーションとCrossgen2バイパスを削除してR2Rカバレッジを復元します。残り4つのテストについては、ブラウザ環境のマルチスレッド非対応やServer GC非対応に対応した選別的ゲートを適用します。

変更内容

  • ReadyToRun関連テストの復元: DynamicMethodGCStress、GenericCycleDetection(Breadth1Test、Depth1Test)、fieldlayoutのActiveIssueアノテーションと.csproj内のCrossgen2バイパス設定を削除(4ファイル)
  • マルチスレッド非対応対応:
    • GetTotalMemoryConcurrentにConditionalFactでマルチスレッド判定を追加
    • foreground-shutdownにPlatformDetection.IsMultithreadingSupportedチェックを追加し、非対応環境ではスレッド生成前に成功終了
  • Server GC非対応対応: GetTotalAllocatedBytesServerGCをCoreRLR browserで除外
  • インタプリタワークロード除外: jit64/regress/ddb/113574をCoreRLR browserで除外(JIT最適化ワークロードがCI タイムアウト超過)
  • TieredCompilation設定変更: BasicTest*.csprojのR2R関連設定を調整

パフォーマンスへの影響

影響なし

関連Issue

その他

テスト結果:完全なpriority-1 browser-WASM Nodeスイート実行で14,745テスト中、失敗0件、スキップ922件、合格13,823件。out-of-processサブセット(672テスト)では失敗0件。従前のWebCIL/R2R失敗テスト4件がすべて合格に復帰しました。


#131865 Fix broken relative links in docs

概要

ドキュメント内の相対パスリンク8箇所を修正するドキュメント更新です。すべてのリンクターゲットはリポジトリに存在していますが、相対パスの指定が誤っていました。例えば、ディレクトリ階層の誤算や、ファイル名のスペルミス(アンダースコアとハイフンの混在)、Windowsバックスラッシュの使用などが原因でした。

変更内容

  • docs/workflow/wasm-documentation.md: 相対パスの階層誤り(../../design/ → ../design/、../testing/ → testing/)を2箇所修正
  • docs/workflow/debugging/mono/wasm-debugging.md: 階層誤りを3箇所修正(../testing/ → ../../testing/、../../src/mono/ → ../../../../src/、debugging/libraries/ → ../libraries/)
  • docs/design/datacontracts/data_descriptor.md: ファイル名スペルミス(contract_descriptor.md → contract-descriptor.md)を1箇所修正
  • docs/design/datacontracts/datacontracts_design.md: ファイル名スペルミス(contract_descriptor.md → contract-descriptor.md)を1箇所修正
  • docs/design/features/globalization-icu-wasm.md: パス形式誤り(docs\workflow\ → ../../workflow/)を1箇所修正

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 変更は documentation のみで、コードおよびビルド変更なし
  • 全8箇所の修正リンクについて、ローカルリポジトリで検証済み
  • 検出時に39の候補が見つかりましたが、ターゲットが存在しない、外部から輸入されたコンテンツ、または実際にはリンクではない31箇所は修正対象外とし、確実に修正できる8箇所のみを対象としました
  • data_descriptor.md の2つのアンカー(#Compatible_contracts と #Contract_descriptor)はGitHubが生成するヘッディングと完全には一致していませんが、ページロード自体は修正されているため変更対象外としました

#131864 Bump the Helix Job Monitor

  • 作成者: @premun
  • 作成日時: 2026年08月05日 09:09:59(UTC)
  • マージ日時: 2026年08月05日 09:28:48(UTC)
  • ラベル: area-codeflow

概要

Helix Job Monitor依存ライブラリをより新しいArcade buildバージョンに更新するPRです。依存メタデータ、ローカルdotnetツールマニフェスト、プロパティ定義を同期し、重複したプロパティ定義も削除しています。

変更内容

  • eng/Version.Details.xml: JobMonitor依存ライブラリのバージョンとSHAを新しいArcade buildに更新
  • eng/Version.Details.props: MicrosoftDotNetHelixJobMonitorPackageVersionを更新し、重複していたMicrosoftDotNetHelixSdkPackageVersionプロパティ定義を削除(MSBuildが使用する有効値を修正)
  • .config/dotnet-tools.json: ローカルdotnetツールマニフェストのmicrosoft.dotnet.helix.jobmonitorツールバージョンを同じく更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRは開発インフラストラクチャの依存ライブラリ更新に関するもので、ビルドシステムの一貫性を保つため、複数の設定ファイルで同じバージョンに統一されています。重複プロパティ定義の削除により、MSBuildのプロパティ解決ロジックがより明確になります。


#131863 [browser] Package CoreCLR browser-wasm native relink headers in the runtime pack

概要

browser-wasm向けのCoreClR native relink機能が、復元/パッケージ化されたSDKから正常に動作するよう、VM/minipalヘッダーファイル(callhelpers.hpp、minipal/entrypoints.h、minipal/utils.h)をランタイムパックに正しく含める修正です。

前回のPR #131646では、ヘッダーはホスト共有フレームワークに配置されたものの、ランタイムパックへの収集メカニズムが不足していたため、パッケージに含まれていませんでした。本PRでは、標準的な収集メカニズム(LibrariesRuntimeFilesとCopyWasmNativeFiles)を使用してヘッダーをランタイムパックに正しく含めます。

変更内容

  • eng/liveBuilds.targets — LibrariesRuntimeFilesにNativeSubDirectory="include"とNativeSubDirectory="include\minipal"を使用してヘッダーを追加。nupkgへの収集メカニズムを整備しました。
  • src/native/corehost/corehost.proj — CopyWasmNativeFilesタスクにヘッダーのステージング処理を追加。インツリーランタイムパックレイアウト(MicrosoftNetCoreAppRuntimePackNativeDir)内に他のブラウザホストファイルと並べて配置します。

修正後、以下の3つの場所にヘッダーが正しく配置されます:

  • ホスト共有フレームワーク(CMake install)
  • インツリーランタイムパックレイアウト
  • 出荷nupkg(runtimes/browser-wasm/native/include/以下、ディレクトリ構造を保持)

パフォーマンスへの影響

影響なし

関連Issue

#131646、#128362

その他

  • WASI CoreCLR relink についても同様の潜在的ギャップが存在し、別途対応可能です。
  • CopyWasmNativeFiles(レイアウト)とLibrariesRuntimeFiles(nupkg)は現在ブラウザホストファイルリストを重複管理しており、統一はフォローアップとして検討される予定です。

#131857 Keep accepted sockets alive in TlsSession tests

  • 作成者: @wfurt
  • 作成日時: 2026年08月05日 08:03:39(UTC)
  • マージ日時: 2026年08月05日 11:47:35(UTC)
  • ラベル: area-System.Net.Security

概要

TlsSessionテストにおいて、受け入れたサーバーSocketをusing宣言で管理し、対応するTlsSocketSessionのライフタイム全体で確定的に破棄されるようにしました。これにより、macOSで報告されていた断続的なリセット問題の根本原因と考えられるソケットのライフタイム管理の問題を解決します。

変更内容

  • src/libraries/System.Net.Security/tests/FunctionalTests/TlsSessionTests.cs
    • 8つのソケットバウンドテストケースで、受け入れたサーバーSocketをusing Socket serverSocket = await listener.AcceptAsync();に変更
    • セッションが所有権を解放してから元のソケットラッパーが破棄される宣言順序を確保
    • ライフタイム/クリーンアップパターンを8つのテストケース全体で一貫性を持たせた

パフォーマンスへの影響

影響なし

関連Issue

#131798

その他

  • 検証: #131798で報告されていた2つのテストが成功(2 passed, 0 failed)
  • System.Net.Security機能テストプロジェクト全体も成功(5,017 passed, 29 skipped, 0 failed)
  • ローカル環境では断続的なmacOSリセット問題の再現ができなかったため、確認された問題ではなく疑わしいライフタイム問題を予防的に解決する変更

#131845 Fix integer overflow in BufferBuilder.EnsureBuffer size calculation

  • 作成者: @Copilot
  • 作成日時: 2026年08月05日 01:58:00(UTC)
  • マージ日時: 2026年08月05日 11:16:50(UTC)
  • ラベル: area-System.Net

概要

BufferBuilder.EnsureBufferのバッファサイズ計算で符号付き整数のオーバーフローが発生していた問題を修正します。約1.5GB以上のバッファサイズで計算がオーバーフローし、割り当てサイズが不足して診断困難な例外が発生していました。符号なし整数演算に切り替え、倍化処理をArray.MaxLengthでクランプすることで、オーバーフローを防止します。

修正前後の計算ロジック:

// 修正前:符号付きint演算でオーバーフロー可能
byte[] newBuffer = new byte[((_buffer.Length * 2) > (_buffer.Length + count)) ? (_buffer.Length * 2) : (_buffer.Length + count)];

// 修正後:uint演算 + Array.MaxLength制限
byte[] newBuffer = new byte[Math.Max((uint)_buffer.Length + (uint)count, Math.Min((uint)Array.MaxLength, 2 * (uint)_buffer.Length))];

変更内容

  • src/libraries/System.Net.Mail/src/System/Net/BufferBuilder.cs
    • EnsureBufferメソッドのバッファサイズ計算ロジックを修正
    • 符号付きint演算から符号なしuint演算に変更
    • バッファサイズの倍化時にArray.MaxLengthでクランプ処理を追加

パフォーマンスへの影響

オーバーフロー閾値未満での動作変更なし。オーバーフロー閾値以上でのみ、正確な例外処理が実現されます。

関連Issue

#131824

その他

  • セキュリティ上の問題はなし(すべてセーフコード)
  • 静的解析ツールによる警告も解決
  • Copilot指摘:大規模バッファ(GB単位)を実際に割り当てずに、リフレクションを使用した単体テストの追加が推奨されています

#131844 Fold clr.featuremultithreading.props into clr.featuredefines.props; use ConditionalFact for FeatureMultithreading test skips

概要

CoreCLRのマルチスレッド機能定義をMSBuild設定に統合し、テストスキップをMSBuild時からランタイムチェックに移行するリファクタリングです。clr.featuremultithreading.propsを削除してclr.featuredefines.propsに統合し、テストの条件付きスキップをConditionalFact属性またはMainメソッド内のランタイムチェックに置き換えました。

変更内容

  • MSBuild設定の統合: src/coreclr/clr.featuremultithreading.propsを削除し、FeatureMultithreadingプロパティをclr.featuredefines.propsに統合。src/tests/Directory.Build.propsから不要なインポート宣言を削除。
  • テストのランタイムチェック化:
    • [Fact]属性を持つテストは[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsMultithreadingSupported))]に変更
    • static int Main(...)エントリーポイントを持つテストは、メソッド冒頭にif (!PlatformDetection.IsMultithreadingSupported) { ...; return 100; }のチェックを追加
  • TestLibraryプロジェクト参照の追加: PlatformDetectionを使用するテストに対して、TestLibrary参照とusing TestLibrary;を追加
  • 原始ファイルレベルの条件は維持: System.Private.CoreLib.Shared.projitemsなどのソースファイル選択やコンパイル定数に関わるFeatureMultithreading条件は変更していない

パフォーマンスへの影響

影響なし

関連Issue

#131110

その他

  • 変更は40ファイルに及び、MSBuildベースの静的スキップからランタイムベースのスキップへの系統的な移行となっています
  • ソースファイルのセレクション(コンパイル時)とテスト実行ゲーティング(ランタイム時)の関心の分離が進みました
  • PR説明と変更はGitHub Copilotによって生成されたものです

#131837 [cDAC] Unwrap legacy AppDomain for method enumeration

  • 作成者: @rcj1
  • 作成日時: 2026年08月04日 22:54:16(UTC)
  • マージ日時: 2026年08月05日 01:22:15(UTC)
  • ラベル: area-Diagnostics-cdac

概要

cDAC(Common Data Access Component)の診断パスで、IXCLRDataProcess.StartEnumMethodInstancesByAddressを呼び出す際に、cDAC側のClrDataAppDomainラッパーを適切にアンラップし、基盤となるレガシーIXCLRDataAppDomain実装をレガシーDACに渡すようにしました。これにより、メソッドインスタンスの列挙時にレガシー検証が正しく機能することを保証します。

変更内容

  • ClrDataAppDomain.cs: レガシーAppDomain実装へのアクセスを可能にするため、LegacyImplプロパティをinternalアクセッサとして追加
  • SOSDacImpl.IXCLRDataProcess.cs: ClrDataAppDomainを基盤となるレガシーIXCLRDataAppDomainにアンラップした上で、_legacyProcess.StartEnumMethodInstancesByAddressに渡すよう修正

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 変更は内部実装(internalプロパティ)に留まるため、公開API互換性への影響はありません
  • レガシーDACとの相互運用性を改善する修正であり、診断ツール(SOS、WinDBG等)の正常な動作に関わります

#131836 [cDAC] Preserve basic object type input

  • 作成者: @rcj1
  • 作成日時: 2026年08月04日 22:40:54(UTC)
  • マージ日時: 2026年08月05日 01:23:14(UTC)
  • ラベル: area-Diagnostics-cdac

概要

GetBasicObjectInfoメソッドのpObjTypeDataパラメータをin/outパラメータとして正しく扱うよう修正しました。無効なオブジェクト参照など失敗時に、呼び出し元が提供した構造体の内容を保持するようにしました。この修正は内部診断テストのアサーションを通じて発見されました。

変更内容

  • DacDbiImpl.cs: 関数開始時の*pObjTypeDataのゼロ初期化を削除し、無効なオブジェクト参照の場合でも呼び出し元が初期化した型情報を保持するように変更
  • dacdbi.idl: IDL署名のpObjTypeDataを[out]から[in, out]に変更してAPI契約を更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

互換性への影響: APIコントラクトの変更ですが、内部APIであるため外部への影響はありません。

注記: Copilotのレビュー指摘により、C++ インターフェース署名(dacdbiinterface.h)のpObjTypeDataは依然としてOUTアノテーション付きのままであり、IDL/コメントと矛盾した状態です。完全な修正にはこの C++ 署名も in/out を反映するよう更新が必要な可能性があります。


#131830 Fix handling of inability to get free region in thread_final_regions

  • 作成者: @janvorli
  • 作成日時: 2026年08月04日 20:36:25(UTC)
  • マージ日時: 2026年08月05日 15:17:05(UTC)
  • ラベル: area-GC-coreclr

概要

ガベージコレクタのリージョンスレッド処理において、get_free_regionがNULLを返す場合のエラーハンドリングを改善しました。デバッグビルドのアサートではなくFATAL_GC_ERRORを使用することで、リリースビルドでも一貫した失敗処理(fail-fast)を実現します。この変更により、メモリ不足(OOM)による回復不可能なエラーを適切に報告します。

変更内容

  • src/coreclr/gc/plan_phase.cpp: gc_heap::thread_final_regionsメソッド内のassert(start_region)をNULLチェックとFATAL_GC_ERROR()呼び出しに置き換え(+5行/-1行)

パフォーマンスへの影響

影響なし

関連Issue

#131818

その他

  • この変更はランタイムのGC(ガベージコレクション)コンポーネントの内部実装に関するもので、公開APIへの影響はありません
  • デバッグビルドとリリースビルド間の動作の一貫性を向上させる修正です

#131829 Exclude rundownvalidation from crossgen tests

  • 作成者: @jtschuster
  • 作成日時: 2026年08月04日 19:40:15(UTC)
  • マージ日時: 2026年08月05日 06:10:12(UTC)
  • ラベル: area-ReadyToRun

概要

rundownvalidationテストをCrossGen2/ReadyToRun(R2R)コンパイルから除外するための設定変更です。このテストはMethodILToNativeMapランダウンイベントを必要とし、このイベントはJIT コンパイルされたメソッドに対してのみ発行されます。完全なcomposite ReadyToRunフレームワークではtiered compilationが無効な場合にJIT フォールバックが発生しないため、テストの信頼性が損なわれます。テスト アセンブリをIL状態で保つことで、JIT-onlyイベントの検証を確実に実行できます。

変更内容

  • src/tests/tracing/eventpipe/rundownvalidation/rundownvalidation.csproj:<CrossGenTest>false</CrossGenTest>を追加して、CrossGen2コンパイルを無効化
  • 除外理由を説明するインラインコメントを追加

パフォーマンスへの影響

影響なし

関連Issue

#131662(修正対象) #131282(原因となった変更)

その他

  • Windows x64 CheckedビルドでDOTNET_TieredCompilation=0、--composite、--inputbubbleオプションを使用した検証済み
  • テストをCrossGen除外後、hasMethodILToNativeMap=Trueで正常に動作し、IL-CG2出力が生成されないことを確認

#131827 Use inline arrays in GCMemoryInfoData.

概要

GCMemoryInfoDataがインラインを配列を使用するように更新されました。MemoryMarshal.CreateReadOnlySpanの2つの使用を削除し、世代情報とポーズ時間をより効率的にReadOnlySpan<T>として公開します。

変更内容

  • System/GCMemoryInfo.cs: 世代情報とポーズ時間の個別バッキングフィールドをInlineArray5<GCGenerationInfo>とInlineArray2<TimeSpan>に置き換え。PauseDurationsとGenerationInfoプロパティをインライン配列フィールドから直接スパンを返すように更新。System.Runtime.CompilerServicesのusingディレクティブを追加
  • comutilnative.h / corelib.h: ネイティブ側の対応するヘッダー定義を更新
  • comutilnative.cpp / GCHelpers.cpp: ネイティブ側の実装を調整

パフォーマンスへの影響

改善が期待されます。MemoryMarshal.CreateReadOnlySpan呼び出しが排除され、インラインアレイから直接スパンを生成できるため、GC情報アクセス時のオーバーヘッドが削減されます。ただしベンチマーク数値の記載なし。

関連Issue

#131827

その他

インラインアレイ(InlineArray属性)は.NET 8+で利用可能な機能で、スタック上に連続したメモリを効率的に確保できます。この変化はパブリックAPI(GCMemoryInfo)に影響を与えないため、互換性への懸念はありません。


#131819 Improve watchdog child exit status check

  • 作成者: @janvorli
  • 作成日時: 2026年08月04日 17:33:21(UTC)
  • マージ日時: 2026年08月05日 15:12:22(UTC)
  • ラベル: area-Infrastructure

概要

watchdog(監視プロセス)がシグナルで終了した子プロセスの状態を適切に検出できない問題を修正します。従来はWIFEXITED(正常終了)のみチェックしており、SIGKILLなどのシグナルで終了した場合はタイムアウトになっていました。本修正によりWIFSIGNALED(シグナルで終了)も処理し、シグナル受信時に意味のあるステータス値(128 + signal)を返すようにします。またwaitpid失敗時の診断情報(errno)の出力も追加します。

変更内容

  • src/native/watchdog/watchdog.cpp:
    • WIFSIGNALEDマクロを使用してシグナルによる子プロセス終了を検出
    • シグナルで終了した場合、128 + signalの値をステータスとして返す
    • waitpidの失敗時にerrnoの詳細情報をログ出力

パフォーマンスへの影響

影響なし(診断ロジックの追加のみ)

関連Issue

#131819

その他

なし


#131816 Disable GetGeneration test under interpreter (InterpreterIncompatible)

概要

インタープリタ実行時の不正確なローカル変数レポーティングによるテスト失敗に対応するため、GetGenerationテストにインタープリタ互換性フラグを追加しました。テストが期待するオブジェクトのジェネレーション昇格後の検証が、インタープリタではローカル変数がピン留めとして報告されることでジェネレーション0に降格されるため実行できなくなります。

変更内容

  • src/tests/GC/API/GC/GetGeneration.csproj: InterpreterIncompatible属性をtrueに設定し、インタープリタ設定でのテスト実行をスキップするように指定

パフォーマンスへの影響

影響なし

関連Issue

#131542

その他

  • インタープリタでのローカル変数レポーティングの精度向上が将来的に必要です
  • テストスキップは一時的な回避策であり、将来の修正によって改善される見通しです

#131810 [release/10.0] JIT: bail out of CEA cloning if alloc block has multiple successors

概要

.NET 10の#117222による制約緩和に伴い、条件付きエスケープ分析(CEA)のクローニング処理が不適切に最適化されるリグレッション問題を修正します。割り当てブロックが複数の後続ブロックを持つ場合にCEAクローニングをベイルアウトするようにしました。

変更内容

  • src/coreclr/jit/objectalloc.cpp: CEAクローニング処理に条件判定を追加し、割り当てブロックが複数の後続ブロックを持つ場合の最適化をスキップ
  • src/tests/JIT/opt/ObjectStackAllocation/Runtime_131713.cs: リグレッション再現ケースおよびテストケースを追加
  • src/tests/JIT/opt/ObjectStackAllocation/Runtime_131713.csproj: テストプロジェクト設定ファイルを追加

パフォーマンスへの影響

影響なし。本修正はリグレッション問題を回避し、不適切な最適化を防ぐものであり、SPMI(Static Per-Method Inlining)diffs によるパフォーマンス変化は報告されていません。

関連Issue

#131713(顧客報告) #117222(CEA制約緩和に関連) #131762(オリジナルPR)

その他

  • 本PRは release/10.0 ブランチへのバックポート版です
  • リスク評価:Low。最適化を適切に回避するため、副作用は最小限です
  • .NET 10での リグレッション対応です

#131797 Suppress union ambiguity warning when a global classified is specified at compile time

概要

System.Text.Json ソースジェネレーターの共用体(Union)曖昧性警告ロジックを更新しました。オプションレベルで指定されたグローバル型分類器(JsonSourceGenerationOptionsAttribute.TypeClassifiers)を設定済みの分類器サポートとして扱うことで、SYSLIB1227診断が不適切に発行される問題を修正します。

変更内容

  • JsonSourceGenerator.Parser.cs: 「分類器が設定済み」フラグをオプションレベルのTypeClassifiersから初期化するロジックを追加。これにより、グローバル分類器が登録されている場合、共用体の曖昧性診断が発行されなくなります(内部実装の変更)
  • JsonSourceGeneratorDiagnosticsTests.cs: SYSLIB1227診断テストを更新し、オプションレベルの分類器登録時に警告が発行されないことを検証

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 既存のソースジェネレーター診断テストは、共用体単位と共用体グローバル構成の両方をカバーするよう更新されました
  • build.cmd clr+libs -rc releaseと全System.Text.Jsonテストプロジェクト(130,518実行、失敗0件)で検証済み

#131796 [s390x] add in-process crash reporter for s390x

概要

linux-s390xプラットフォーム向けにインプロセスクラッシュレポーター機能を追加するPull Requestです。#131604で導入されたビルドエラーを修正し、s390xアーキテクチャに対応させます。

変更内容

  • src/coreclr/debug/crashreport/inproccrashreporter.cpp: s390xアーキテクチャ固有のマクロ定義(CRASH_MCREG_PC、CRASH_MCREG_SP、CRASH_MCREG_FP)とスタックフレーム関連の構造体を追加しました。これにより、s390xでのクラッシュレポート生成時に必要なレジスタアクセスと例外時の制御フロー情報を適切に取得できるようになります。

パフォーマンスへの影響

影響なし

関連Issue

#131535 #131604

その他

この変更は内部実装(デバッグ・クラッシュレポート機能)に限定される修正で、公開APIには影響ありません。s390xプラットフォームのビルド成功を目的とした変更です。


#131795 [release/10.0] Update dependencies from dotnet/hotreload-utils, dotnet/runtime-assets

概要

dotnet/runtime-assetsおよびdotnet/hotreload-utilsからの依存関係を更新する自動アップデートです。release/10.0ブランチを対象に、テストデータアセットおよびホットリロードユーティリティのバージョンを最新版に引き上げています。

変更内容

  • eng/Version.Details.props: 依存関係バージョン情報の更新
  • eng/Version.Details.xml: 依存関係バージョン情報の更新

更新内容:

  • dotnet/runtime-assetsから15個のテストデータ・アセットパッケージを10.0.0-beta.25418.1から10.0.0-beta.26404.2へ更新
    • Microsoft.DotNet.CilStrip.Sources、Microsoft.NET.HostModel.TestData、System.ComponentModel.TypeConverter.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.TimeZoneData、System.Security.Cryptography.X509Certificates.TestDataなど
  • dotnet/hotreload-utilsから Microsoft.DotNet.HotReload.Utils.Generator.BuildToolを10.0.0-alpha.0.25479.2から10.0.0-alpha.0.26202.1へ更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRは自動依存関係更新ツール(dotnet-maestro)により生成されています。release/10.0ブランチの定期メンテナンスの一環です。


#131790 Remove development-only contract versions

概要

開発段階でのみ使用されていたデータコントラクト(Data Contracts)の複数バージョン(c2、c3)を削除し、各コントラクトを単一バージョン(c1)に統一する変更です。PrecodeStubs、DebugInfo、ExecutionManager、StressLogなど複数のコントラクトについて、最新のセマンティクスをc1実装に移行し、開発用バージョンを廃止します。これはコントラクト仕様の確定化に向けた準備作業です。

変更内容

  • コントラクト実装の削除:PrecodeStubs_2.cs、PrecodeStubs_3.cs、DebugInfo_2.cs、ExecutionManager_2.csを削除
  • c1実装の更新:PrecodeStubs_1.cs、DebugInfo_1.cs、ExecutionManager_1.csを最新セマンティクスで置き換え
  • ExecutionManager:線形探索(NibbleMapLinearLookup)から定時間探索(NibbleMapConstantLookup)アルゴリズムに統一
  • StressLog:古い小規模リーダーパスを削除し、StressLog_1で新しいメッセージエンコーディングを採用
  • CoreCLRコントラクト登録:datadescriptor.incでコントラクトバージョン参照をc1に統一
  • ドキュメント更新:複数バージョン説明を削除し、単一c1仕様に簡潔化
  • テスト更新:複数バージョンのテストカバレッジを削除し、c1のみのテストに統一

パフォーマンスへの影響

ExecutionManagerでアルゴリズムを線形探索から定時間探索に統一することにより、ルックアップパフォーマンスが向上します。

関連Issue

なし

その他

  • このPRは後続のPR(全コントラクトバージョンを1に統一)への準備段階です
  • StressLogコントラクトはStressLogAnalyzerツールからの使用があるため、複数バージョンの存在を維持予定(後続PRで対応)
  • 今後、開発段階でのコントラクトバージョニング規則が適用されるため、このような一括削除は予定されていません

#131786 [clr-interp] Fix DAC access to interpreter frame data

概要

DAC(Data Access Component)がインタープリタフレームのGC参照を列挙する際に発生していたポインタマーシャリングエラーを修正します。InterpreterFrame::m_continuationのホストメモリへのアクセス方法とInterpMethodContextFrameのターゲットメモリアクセス方法を改正し、DAC境界を正しく超えるようにしました。

変更内容

  • src/coreclr/vm/frames.h: m_continuationフィールドのマーシャリング方法を修正(PTR_HOST_MEMBER_TADDR使用)
  • src/coreclr/vm/gcinfodecoder.cpp: InterpMethodContextFrameのアクセス方法を修正(PTR_InterpMethodContextFrame経由のアクセスに変更)

パフォーマンスへの影響

影響なし。バグ修正のため、既存のポインタアクセス処理をDAC的に正しい方法に訂正しただけです。

関連Issue

なし

その他

  • 対象コンポーネント: CLR インタープリタ、DAC(デバッグ支援)
  • 公開API影響: なし(内部実装修正)
  • 検証状況: Inspection.MemoryDiagnosticsテストが macOS arm64/x64環境で通過。DAC coding error、SIGSEGV、セグメンテーション違反なし

#131780 Add cDAC runtime version information

概要

cDAC (Component Data Access Contract) の RuntimeInfo コントラクトを拡張し、ランタイムのビルド/バージョン情報(ファイルバージョンコンポーネント、プロダクトバージョン文字列)を公開する新しいメソッドを追加しました。これにより、ランタイムのバージョン情報を表示したり、出荷後に発見されたランタイムバグの対応に活用できます。

変更内容

  • IRuntimeInfo コントラクト(公開API): GetRuntimeFileVersion() と GetRuntimeProductVersion() メソッドを追加
  • RuntimeInfo_1 実装: 新規メソッドの実装とバージョン情報のキャッシング機能を追加
  • cDAC グローバル定数: RuntimeFileVersion* と RuntimeProductVersionString を Constants.cs に追加
  • CoreCLR データディスクリプタ: 新規グローバルをデータディスクリプタに統合し、runtime_version.h をインクルード
  • NativeAOT データディスクリプタ: CoreCLR と同様にバージョン情報グローバルを公開
  • ドキュメント: RuntimeInfo.md とデータディスクリプタ仕様書を更新
  • テスト: キャッシング動作とフラッシュ機能を検証するユニットテストを拡張

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 破壊的変更なし。新しいコントラクトメソッドの追加のため、既存のコードは影響を受けません
  • cDAC は診断・デバッグ用途の内部インフラストラクチャであり、ランタイムの外部仕様に直接影響しません

#131777 [cDAC] Remove IterateMethodInstances legacy fallback

  • 作成者: @rcj1
  • 作成日時: 2026年08月03日 22:52:57(UTC)
  • マージ日時: 2026年08月05日 19:58:03(UTC)
  • ラベル: area-Diagnostics-cdac

概要

cDAC(Compact Data Access Component)のIterateMethodInstancesレガシーフォールバック機能を削除するPRです。SOS テスト内で、レガシーフォールバックが使用されていた理由となるテスト失敗が解決されたため、この削除が可能になりました。

変更内容

  • SOSDacImpl.IXCLRDataProcess.cs: IXCLRDataProcess.EnumMethodInstanceByAddress内の例外処理を変更し、レガシーDAC フォールバック動作を削除。例外発生時は例外のHRESULTを直接返却するように変更。
  • ClrDataMethodDefinition.cs: IXCLRDataMethodDefinition.EnumInstanceのDEBUG-only HRESULT検証モードを緩和。レガシーDAC失敗時のcDAC成功を許容(AllowCdacSuccess)するよう設定。

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

注意事項: 本変更はレガシーフォールバック機能を無条件に削除しており、以下の潜在的な問題が指摘されています:

  • CDAC_NO_FALLBACK環境変数が設定されていない場合でもフォールバックがスキップされる
  • DEBUG ビルドにおいて、cDACが例外をスローするもレガシーDAC が成功する場合にDebug.ValidateHResultの不一致を引き起こす可能性がある

今後の改善として、LegacyFallbackHelper.CanFallback()を使用してCDAC_NO_FALLBACK設定を条件付きで尊重する方法が提案されています。


#131753 Invalidate metadata table lookup hashes when an EnC delta adds records

概要

Edit and Continue (EnC) でメタデータテーブルのルックアップハッシュが無効化されないバグを修正。EnCデルタが行を追加した際、ハッシュテーブルが再構築されずに、追加された行がメタデータ検索で見落とされる問題を解決します。特にFieldRVAテーブルで問題が顕著で、生成2以降のホットリロードが失敗していました。

変更内容

  • src/coreclr/md/enc/metamodelenc.cpp: CMiniMdRW::ApplyTableDeltaのレコード追加時に、テーブルのルックアップハッシュを無効化するコード追加(+12行)
    • ハッシュが構築済みのテーブルに対してEnCデルタで行が追加される際、m_pLookUpHashesを無効化
    • 次のルックアップ時にGenericFindWithHash→GenericBuildHashTableで完全なテーブルに対してハッシュを再構築

パフォーマンスへの影響

影響あり(改善)。テーブルサイズが大きくなった際の再構築コストは初回ビルド時に既に支払済みであるため、EnCの適用パスでは影響最小限。ただしEnCを適用するたびにテーブルが25行を超えた場合は再構築が発生。

関連Issue

#131752

その他

  • 問題はConstant、FieldMarshal、ClassLayout、FieldLayout、ImplMap、FieldRVA、NestedClassの7テーブルに存在
  • .NET 10の新機能AddFieldRvaにより、編集済みメソッド本体にarray initializer/u8 literalsがある場合、生成ごとにFieldRVAが追加されるため、生成2(baseline FieldRVA行数≥25の場合)で必ず失敗していた
  • Uno Platformのホットリロードセッション(baseline FieldRVA=22、4デルタチェーン)で検証済み
  • 代替案として、既存ハッシュに新規レコードを段階的に挿入する方法も存在するが、最小かつ明確に正しい無効化方式を採用

#131750 JIT: expand multi-dimensional array intrinsics for large and struct elements

  • 作成者: @Copilot
  • 作成日時: 2026年08月03日 14:30:42(UTC)
  • マージ日時: 2026年08月05日 16:26:23(UTC)
  • ラベル: area-CodeGen-coreclr

概要

JITが多次元配列の組み込み関数展開を改善し、大きなサイズの要素型と構造体型の要素を扱えるようにしました。これにより、iOS(R2R)のようなJITが無いプラットフォームで、不要なインタプリタへのフォールバックを削減します。

変更内容

  • GenTreeArrElem::gtArrElemSize の拡張: unsigned char から unsigned に型変更し、255バイトの制限を解除。JIT内の全ての参照元は既に unsigned として処理していました。
  • 構造体型の NI_Array_Set サポート: a[i, j, k] = someStruct のような代入がCEE_STOBJと同じ方式で処理されるように実装。構造体サイズに応じて STORE_BLK ノードで展開されます。
  • テスト追加: Runtime_131371テストケースで小規模構造体(rank-2/3配列)、304バイト構造体、GC参照を含む304バイト構造体について、get/set/addressの動作と境界チェック検証を実施。

パフォーマンスへの影響

304バイト要素型の配列操作が、従来のインタプリタへの呼び出しではなくSTORE_BLK struct命令として直接JIT展開されるため、呼び出しオーバーヘッドが削減されます。linux-x64上で JitStress (1/2/0x1F/0x3F) および GCStress=0xC で検証済み。

関連Issue

#131371

その他

  • ARM64およびiOSでの検証は未実施
  • 既存のJIT/Methodicalテストグループ(MDArray関連を含む)は合格
  • 値型配列の不変性により、共変性チェックは不要とされています

#131729 Run large array test exclusively

  • 作成者: @kkokosa
  • 作成日時: 2026年08月03日 09:59:07(UTC)
  • マージ日時: 2026年08月05日 00:04:26(UTC)
  • ラベル: area-GC-coreclr

概要

largearraytestをGC merged runnerから分離し、独立したmerged-runner work itemとして実行するようにテストインフラストラクチャを調整。これにより、メモリ消費量の大きいこのテストが他のGCテストとのメモリ競合を避けられます。

変更内容

  • src/tests/GC/GC.csproj: LargeMemory/Regressions/largearraytest.csprojをGC merged wrapperの参照から除外
  • src/tests/GC/LargeMemory/Regressions/largearraytest.csproj: HasMergedInTestsを有効化し、MergedTestRunner.targetsをインポートして、独立したmerged-runner projectに変換

パフォーマンスへの影響

メモリ競合の軽減。largearraytestが単独のwork itemで実行されることにより、大規模配列テスト時に他のGCテストとのメモリ争奪が回避されます。

関連Issue

#114222

その他

なし


#131723 Fix CMAKE_LINKER definition

概要

Unix環境におけるCMAKE_LINKERの定義を修正するPRです。linkコマンドはファイルシステムのハードリンクツールであり、llvm-linkはLLVMのビットコードリンカーであるため、いずれも正しいリンカーではありません。本来のCMAKE_LINKERはldまたはld.lldであり、これは既にinit-compiler.shで設定されています。NativeAOTで最近追加された回避策を削除し、またOpenBSDでのネイティブマシンビルド対応(llvmプレフィックスなしのツール)も修正しています。

変更内容

  • eng/native/configuretools.cmake: CMAKE_LINKERの不正な定義を削除(5行削除、1行追加)
  • src/coreclr/nativeaot/Runtime/Full/CMakeLists.txt: NativeAOTの回避策を削除(22行削除、1行追加)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

OpenBSDでのネイティブビルド時に、LLVMツールチェーンが提供されていてもllvmプレフィックスが付かないケースに対応しています。


#131719 Audit CoreLib for members that stay safe under unsafe-v2

概要

unsafe-v2マイグレーションへの準備として、System.Private.CoreLibをメンバーの安全性監査で装備するPRです。<safety> XML文書コメントとsafe修飾子(明示的/拡張レイアウト構造体のフィールド、およびexternメソッド)を追加し、マイグレーションツールが不要なunsafeを自動付与するのを防ぎます。

変更内容

ILLink分析ツール・コード修正ツール

  • UnsafeMigrationSyntaxHelpers.cs: <safety>文書検出の共有ヘルパー追加
  • AddUnsafeToLibraryImportCodeFixProvider.cs: IL5007に加えSYSLIB1064を対応
  • RemoveInvalidUnsafeCodeFixProvider.cs: 部分型の複数パーツ処理を改善(CS9377の13件を修正)
  • UnsafeModifierCodeFixHelpers.cs: <safety>の有無に応じてsafe/unsafeを選択的に出力

CoreLibのメンバー監査

  • 約50ファイルで、ポインタ操作・FCall/QCall・explicit-layoutフィールドなど安全性が明らかなメンバーに<safety>とsafeを適用
  • 対象: IntPtr/UIntPtr、Math/MathF、GC、Marshal、互換性ラッパー(ComTypes、Marshalling)、内部ヘルパー類など

コード解析設定

  • CodeAnalysis.src.globalconfig: SA1206(safe修飾子の順序)をCoreLib限定で抑制

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 互換性への影響: なし(内部実装変更、公開APIの動作変更なし)
  • セキュリティ: 脆弱性修正ではなく、unsafe-v2マイグレーション対応の前準備
  • 注記: StyleCop SA1206はsafeキーワード非対応のため、キーワード対応後にCoreLib限定の抑制は削除可能

#131645 interp: don't alias a call's return buffer with its own arguments

概要

インタープリタのスタックレイアウトバグを修正しました。呼び出しの戻り値バッファが別の呼び出しの引数領域とメモリ上で重複する問題を解決します。戻り値バッファは、コンパイル済みの呼び出し先によってスクラッチメモリとして扱われる可能性があり、重複時に引数を破損させていました。

変更内容

  • src/coreclr/interpreter/compileropt.cpp: AllocOffsets関数でオフセット割り当てのタイミングを調整し、現在の呼び出しを終了する前に宛先呼び出しを「アクティブ」状態にマーク。これにより、呼び出し引数領域と戻り値バッファの重複を防止
  • src/coreclr/interpreter/compiler.cpp: マネージド呼び出し規約の戻り値バッファ非エイリアシング規則に関するコメントを更新
  • src/tests/JIT/SIMD/Matrix4x4.cs: Matrix4x4テストの条件付きActiveIssueスキップを削除し、インタープリタモードでのテスト実行を有効化

パフォーマンスへの影響

影響なし

関連Issue

#123104、#131014

その他

マネージド呼び出し規約は、戻り値バッファが呼び出し引数とメモリ上で重複しないことを要求しており、本修正はこの要件を遵守するものです(clr-abi.md参照)。


#131493 Enable System.Private.CoreLib for testing in CoreRun scenarios

概要

System.Private.CoreLibをCoreRunシナリオでのテスト対応に向けて調整するPRです。WASM環境でのアセンブリ解決とCoreLibの出力ファイル名を改善し、R2RおよびWASMテストスイートの動作検証を実施します。

変更内容

  • src/coreclr/hosts/corerun/corerun.cpp: TARGET_BROWSERプローブパスを追加し、ブラウザホストが登録したアセット(CORE_LIBRARIES/CORE_ROOT下のアセンブリ)からのアセンブリ解決に対応
  • src/coreclr/crossgen-corelib.proj: WASM環境でのCoreLib crossgen出力ファイル名をSystem.Private.CoreLib.NotReadyYet.wasmからSystem.Private.CoreLib.wasmに変更

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

本PRは複数のテストスイートでの動作確認を目的としており、既知で合格するスイートが少なくとも1つ存在することが確認されています。WASMコンテナ形式とブラウザホストプローブの改善により、CoreRun環境でのSystem.Private.CoreLibテスト実行のサポート体制が向上します。


#131468 Use native SDK for arm64 Apple simulator tests

概要

Apple シミュレータおよび Mac Catalyst テストが arm64 をターゲットとする場合に、ネイティブな osx-arm64 .NET SDK を使用するように Helix テストジョブの SDK 選択を更新しました。これにより、arm64 Helix マシン上で MSBuild および crossgen2 が Rosetta エミュレーション下で実行されることを回避できます。x64 シミュレータと物理 iOS/tvOS デバイステストは Intel Helix ホストのため osx-x64 SDK を使い続けます。

変更内容

  • src/tests/Common/helixpublishwitharcade.proj: TargetsAppleMobile ジョブにおいて、TargetArchitecture=arm64 かつ TargetOS が iossimulator、tvossimulator、または maccatalyst の場合に、条件付きで DotNetCliRuntime=osx-arm64 を設定

パフォーマンスへの影響

Rosetta エミュレーション下での MSBuild および crossgen2 実行回避により、arm64 Helix マシン上でのテスト実行パフォーマンスが向上します。runtime-extra-platforms ビルド 1527467 で報告された Rosetta ハングの解決が期待されます。

関連Issue

runtime-extra-platforms build 1527467

その他

  • すべての影響を受ける Apple ターゲット/アーキテクチャ組み合わせについて、評価された DotNetCliRuntime を検証済み
  • 本 Pull Request は GitHub Copilot により作成されました

#131354 [wasm][R2R] Request flat layout for composite image on WebAssembly

概要

WebAssembly環境でのComposite R2R(Ready-to-Run)イメージ読み込みを改善。WebAssemblyはフラットレイアウトのみをサポートするため、NativeImage::OpenでComposite イメージのレイアウト取得時に明示的にLAYOUT_FLATをリクエストするよう修正。これにより、LAYOUT_LOADEDをリクエストした際に発生していたアサーション失敗を回避します。

変更内容

  • src/coreclr/vm/nativeimage.cpp: TARGET_WASM配下でComposite イメージのレイアウト取得時に、PEImage::GetOrCreateLayout(PEImageLayout::LAYOUT_LOADED)からPEImage::GetOrCreateLayout(PEImageLayout::LAYOUT_FLAT)に変更。Webcil Composite がOS読み込み/マップ可能なレイアウトを持たないため、フラットレイアウトを明示的にリクエストする必要があります。

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 変更は#ifdef TARGET_WASMでガード化されているため、WebAssembly以外のプラットフォームへの動作影響はありません。
  • GitHub Copilotの支援を受けて作成されたPull Requestです。

#131138 Strictly require CRLF when parsing HTTP/1.1 chunked encoding lines

  • 作成者: @Copilot
  • 作成日時: 2026年07月21日 10:27:47(UTC)
  • マージ日時: 2026年08月05日 11:31:16(UTC)
  • ラベル: area-System.Net.Http

概要

RFC 9112に準拠するため、HTTP/1.1チャンク転送エンコーディングのパース処理を厳密化しました。これまでSocketsHttpHandlerはチャンクサイズ行とチャンク終端に単一のLF(改行のみ)を許容していましたが、仕様によりCRLF(改行+キャリッジリターン)を厳密に要求するように変更しました。

変更内容

  • HttpConnection.TryReadNextChunkedLine:チャンクサイズ行とチャンク終端でCRLFを厳密に要求するよう実装変更。単一のLFやバイト列末のCR(LFに続かない)を検出時は拒否。MaxChunkBytesAllowedの制限と部分バッファ処理は変わらず。
  • Strings.resx:新しいエラーメッセージリソースnet_http_invalid_response_chunk_line_endingを追加。不正なチャンク行終端時にHttpIOException(InvalidResponse)として投げられます。
  • テスト:新規テストクラスSocketsHttpHandler_ChunkedEncodingParsing_Testで有効なCRLFパターン(チャンク拡張、トレーラー含む)と、複数位置での単一LF拒否、サイズ行/拡張内のバイトCR拒否をカバー。

パフォーマンスへの影響

影響なし。チャンク行の終端検出ロジック最適化の一環ですが、パフォーマンス上の改善は明記されていません。

関連Issue

#131138

その他

チャンクトレーラー(0\r\n後)はヘッダーパーサーで処理され、仕様に準じて従来通りの寛容な解析が継続されます(本変更はチャンクサイズ行と終端のみに適用)。これは破壊的変更となり、単一LF終端のチャンク応答を送信するレガシーサーバーからのレスポンスは拒否されるようになります。


目次