Pull Request on 2026年06月04日

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

注意点

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


目次

  1. #128965 Remove dead SIMD contiguous-args code in the JIT
  2. #128963 JIT: fix slow preheader EH bookkeeping in loop cloning
  3. #128959 JIT: Fix assertion failed 'genActualType(cmp->gtGetOp1()) == genActualType(cmp->gtGetOp2())'
  4. #128958 [Wasm] Fix FP-based stack slot lookup
  5. #128954 Remember the last received HTTP/2 SETTINGS_MAX_CONCURRENT_STREAMS for a given host
  6. #128951 JIT: fix profile likelihood and overflow UB in optimizebools
  7. #128940 [HTTP] Remove peer.address from connection OTel counters
  8. #128934 [release/9.0-staging] Update dependencies from dotnet/runtime-assets
  9. #128933 [release/8.0-staging] Update dependencies from dotnet/runtime-assets
  10. #128929 [main] Update dependencies from dotnet/runtime-assets
  11. #128896 [release/8.0] Bump to OSX.15 helix queues
  12. #128892 [Android] Disable X509 name-constraint violation tests on Android
  13. #128880 [release/9.0-staging] Update dependencies from dotnet/cecil
  14. #128863 [cDAC] Refactor cDAC test structure: extract reusable harness, organize under tests/
  15. #128860 GC info in webassembly R2R files was not found/decoded properly
  16. #128843 [release/10.0] Configurable EventPipe CPU sampling rate
  17. #128831 [release/8.0-staging] Update dependencies from dotnet/arcade
  18. #128738 [Diagnostics] In-Proc CrashReport lifecycle
  19. #128729 JIT: fix loop cloning type assumptions
  20. #128634 Track HTTP/3 response header budget per-header like HTTP/2
  21. #128579 [release/8.0-staging] [TestOnly] Fix NumberFormatInfoGroupSize test
  22. #128578 [release/9.0-staging] [TestOnly] Fix NumberFormatInfoGroupSize test
  23. #128560 Add use with trusted files remark to FileVersionInfo.GetVersionInfo
  24. #128533 JIT: Canonicalize '(A & pow2) == pow2' -> '(A & pow2) != 0'
  25. #128272 Mark descriptor-preserved members as reflection-visible
  26. #118616 Explicitly asserting CodeExporter beliefs about specific types of DataContracts

#128965 Remove dead SIMD contiguous-args code in the JIT

  • 作成者: @EgorBo
  • 作成日時: 2026年06月03日 23:05:33(UTC)
  • マージ日時: 2026年06月04日 16:10:03(UTC)
  • ラベル: area-CodeGen-coreclr

概要

JITコンパイラ内の複雑で到達不可能になったSIMD「連続引数(contiguous-args)」最適化パスを削除し、SIMD import/morphパイプラインを簡潔化します。この変換の複雑性に対して実際の効果が限定的であると判断された結果の削除です。

変更内容

  • src/coreclr/jit/simd.cpp: 連続引数・連続フィールド保存の検出ヘルパーと関連するアドレス構築・ステートメント結合コード(326行削除)
  • src/coreclr/jit/lclmorph.cpp: 連続SIMDフィールド保存を結合する局所morphパス(116行削除)
  • src/coreclr/jit/morph.cpp: getSIMDStructFromFieldヘルパー関数(64行削除)
  • src/coreclr/jit/importer.cpp: ステートメント単位で連続SIMDフィールド保存をマークするimporterフック(4行削除)
  • src/coreclr/jit/hwintrinsicxarch.cpp: Vector*.Create(...)の連続引数高速パスを削除し、常にHWIntrinsicノードを生成(27行削除)
  • src/coreclr/jit/hwintrinsicarm64.cpp: xarchと同様に連続引数高速パスを削除(27行削除)
  • src/coreclr/jit/compiler.h: 削除されたSIMD実装に関連する宣言・フィールド(19行削除)

パフォーマンスへの影響

現在のところベンチマーク結果の記載はありません。連続引数最適化パスの削除により、コンパイル時間の削減が期待されます。ランタイムパフォーマンスへの影響の詳細は提供情報には含まれていません。

関連Issue

なし

その他

合計624行のコード削除による大幅な簡潔化です。内部実装(JITコンパイラロジック)への変更であり、公開APIには影響しません。


#128963 JIT: fix slow preheader EH bookkeeping in loop cloning

概要

ループクローニング時に遅延パス(slow-path)プリヘッダーを挿入する際のEH(例外処理)領域ブックキーピングのバグを修正します。ループの字句的末尾と実際の挿入ポイントが異なる場合に、EH領域が不正に縮小されるのを防ぎます。現在のクローニングコードパスでは到達不可能ですが、より一般的なループアンスイッチングのプロトタイプ実装で発生していました。

変更内容

  • src/coreclr/jit/loopcloning.cpp: EH領域の拡張判定を、ループの字句的末尾(bottom)ではなく、実際の挿入ポイント(beforeSlowPreheader)を基準に変更。挿入ポイントで終了するEH句が確実に拡張されるようになります。また、DuplicateWithEH呼び出し前にEH領域を拡張する必要がある理由を説明するコメントを追加。

パフォーマンスへの影響

影響なし。これは正確性のバグ修正であり、コード生成時のパフォーマンスには影響しません。

関連Issue

なし

その他

このPRは将来のループアンスイッチング機能の拡張に対応するための先制的な修正です。JIT(Just-In-Time)コンパイラのループ最適化内部処理(loopcloning.cpp)に関する変更であり、公開APIには影響しません。


#128959 JIT: Fix assertion failed 'genActualType(cmp->gtGetOp1()) == genActualType(cmp->gtGetOp2())'

概要

JITコンパイラの型チェックアサーション失敗を修正します。異なる型のoperandを比較する場合(例:byref と long)でアサーションが発火していた問題を解決。アサーション条件をimporter.cppの既存検証ロジックに合わせて変更し、より広い範囲の有効なIR構造に対応します。

変更内容

  • src/coreclr/jit/morph.cpp: JIT morph処理における比較演算子(comparison operation)のアサーション条件を変更
    • 従来:genActualType(cmp->gtGetOp1()) == genActualType(cmp->gtGetOp2())(operandの型が完全に一致する必要があった)
    • 変更後:importer.cppの既存アサーション検証パターンに合わせて、より柔軟な型検証に変更

パフォーマンスへの影響

影響なし

関連Issue

#128947

その他

  • 変更は内部実装(JITコンパイラの型検証)に対するもので、公開APIに影響なし
  • アサーションロジックの修正のため、破壊的変更なし
  • importer.cppのアサーション検証と整合性を保つことで、一貫したIR検証を実現

#128958 [Wasm] Fix FP-based stack slot lookup

  • 作成者: @kg
  • 作成日時: 2026年06月03日 18:43:08(UTC)
  • マージ日時: 2026年06月04日 12:16:51(UTC)
  • ラベル: arch-wasm area-VM-coreclr

概要

WebAssembly上でGC情報デコーダーのスタックスロットアドレス計算を修正するもの。GC_FRAMEREG_RELスタックスロットを解決する際、エンコードされたスタックベースレジスタがREG_NAになる問題に対応します。

変更内容

  • src/coreclr/vm/gcinfodecoder.cpp:
    • TGcInfoDecoder<...>::GetStackSlotにWebAssembly固有のコードパスを追加
    • 現在のスタックポインタからフレームポインタを導出し、スタックスロットアドレスの計算に使用
    • GetWasmFramePointerFromStackPointerの前方宣言を追加して、vm/wasm/helpers.cppの実装を呼び出し可能に

パフォーマンスへの影響

影響なし

関連Issue

#128860

その他

このPRは#128860に依存しており、その修正が適用されることで機能するもの。WebAssemblyランタイムのガベージコレクション情報処理に関する内部実装の修正です。


#128954 Remember the last received HTTP/2 SETTINGS_MAX_CONCURRENT_STREAMS for a given host

  • 作成者: @Copilot
  • 作成日時: 2026年06月03日 17:02:33(UTC)
  • マージ日時: 2026年06月04日 10:19:11(UTC)
  • ラベル: area-System.Net.Http

概要

HTTP/2接続で、サーバーから受信したSETTINGS_MAX_CONCURRENT_STREAMSを同じホストの接続プール単位で記憶し、新規接続時にその値を初期値として使用するようにしました。これにより、サーバーが低いストリーム同時実行数制限を課す場合に、過度なストリーム数を送信して後続の再試行が必要になるシナリオを回避できます。

変更内容

  • HttpConnectionPool.cs: _lastSeenHttp2MaxConcurrentStreamsフィールドを追加し、ホールごとにサーバーから受け取った最後のストリーム制限値をキャッシュ
  • Http2Connection.cs: 新規接続時にプールのキャッシュ値から初期_maxConcurrentStreamsを設定し、SETTINGS受信時にキャッシュ値を更新
  • SocketsHttpHandlerTest.cs: 複数接続でのHTTP/2最大同時実行ストリーム制限をテストする機能テストを追加

パフォーマンスへの影響

改善あり。低いストリーム制限を持つサーバーへの大量リクエスト送信時に:

  • 改善前: 制限を超えたストリームの中止と再試行が繰り返される
  • 改善後: 2番目以降の接続では最初から正しい制限値を認識するため、不要な再試行を削減可能

ただし、再試行回数制限により前述のリソース#66944が未解決の場合、複数接続が順序待ち開設される可能性は残存。

関連Issue

#66944

その他

なし


#128951 JIT: fix profile likelihood and overflow UB in optimizebools

概要

JITのブール値最適化コードにおいて、プロファイル尤度計算とUB(未定義動作)の2つの問題を修正しました。

  • optOptimizeBoolsUpdateTreesでの分岐尤度計算式を修正(正確には(1-p1) * p2_true)
  • GetIntersectionでの符号付きオーバーフロー時のUBを防止
  • 存在しないフラグ参照コメントを更新

変更内容

src/coreclr/jit/optimizebools.cpp

  • OptBoolsDsc::optOptimizeBoolsUpdateTrees()の!sameTarget分岐における尤度計算を修正((1-p1) + p1*p2_false → (1-p1) * p2_true)。B1のフォールスルーとB2のジャンプを経由してB2の真ターゲットに到達する確率を正確に計算
  • GetIntersectionの正規化ラムダ関数にオーバーフロー防止ガードを追加。cns == SSIZE_T_MAXかつcmp == GT_GTの場合の符号付きオーバーフロー(C++のUB)を除去。正規化失敗をboolで明示的にシグナル
  • optIsBoolComp内の存在しないGTF_BOOLEANフラグを参照する不正確なコメントを修正

パフォーマンスへの影響

影響なし。修正は正確性とUB除去が主で、性能への直接的な影響はありません。

関連Issue

なし

その他

なし


#128940 [HTTP] Remove peer.address from connection OTel counters

  • 作成者: @ManickaP
  • 作成日時: 2026年06月03日 09:25:46(UTC)
  • マージ日時: 2026年06月04日 17:04:58(UTC)
  • ラベル: area-System.Net.Http

概要

OpenTelemetry仕様の更新に対応して、HTTP接続メトリクスからnetwork.peer.addressタグを削除しました。このタグはOTelで「Opt-In」属性に変更されたため、.NETではサポート対象外として削除されています。これによりメトリクスのカーディナリティ圧力を軽減します。

変更内容

  • ConnectionMetrics.cs: SocketsHttpHandlerの接続メトリクスTagListからnetwork.peer.addressを削除
  • HttpConnectionBase.cs: ピアアドレス関連の実装を削除(3行中1行追加、2行削除)
  • MetricsTest.cs: メトリクス機能テストの検証ロジックからピアアドレス検証を削除(22行削除)

パフォーマンスへの影響

メトリクスのカーディナリティ(ディメンション数)を削減することで、メトリクス収集・保存のオーバーヘッドが低減される可能性があります。

関連Issue

#122752

その他

  • OpenTelemetry仕様への準拠変更(https://github.com/open-telemetry/semantic-conventions/pull/3759)
  • Copilotが低信頼度で指摘している懸念点:validPeerAddressesパラメータがテストヘルパー関数で実質的に使用されなくなり、パラメータ名が誤解を招く可能性がある

#128934 [release/9.0-staging] Update dependencies from dotnet/runtime-assets

概要

dotnet/runtime-assets リポジトリからの依存関係を更新するPRです。テストデータやランタイムリソース関連の複数のNuGetパッケージを9.0.0-beta.26267.3から9.0.0-beta.26302.4にアップデートしています。

変更内容

  • eng/Version.Details.xml: バージョン定義ファイルの更新(28行追加/削除)
  • eng/Versions.props: バージョンプロパティの更新(14行追加/削除)

更新対象パッケージ(9.0.0-beta.26267.3 → 9.0.0-beta.26302.4):

  • Microsoft.DotNet.CilStrip.Sources
  • 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

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

本PRは自動依存更新(Maestro)により生成されたもので、release/9.0ブランチの定期的なメンテナンスです。


#128933 [release/8.0-staging] Update dependencies from dotnet/runtime-assets

概要

dotnet/runtime-assets リポジトリから複数のテストデータおよびランタイムアセットパッケージの依存関係を更新するプルリクエストです。バージョン 8.0.0-beta.26267.2 から 8.0.0-beta.26302.3 への更新です。

変更内容

  • eng/Version.Details.xml: 依存関係メタデータの更新(+28/-28)
  • eng/Versions.props: バージョン定義の更新(+14/-14)

更新対象パッケージ(release/8.0 ブランチ):

  • Microsoft.DotNet.CilStrip.Sources
  • 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

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このプルリクエストは dotnet-maestro[bot] による自動依存関係更新です(Subscription: 855db5a2-4d17-4346-a439-08dbcfd61a5a)。更新は release/8.0-staging ブランチに対するものであり、2026年6月2日にビルドされたアセットを反映しています。


#128929 [main] Update dependencies from dotnet/runtime-assets

概要

dotnet/runtime-assetsから依存関係を更新するPull Requestです。16個のテストデータおよびランタイム関連パッケージを11.0.0-beta.26276.1から11.0.0-beta.26302.1にアップグレードしています。

変更内容

  • eng/Version.Details.props: 依存関係バージョン情報を更新(+16/-16行)
  • eng/Version.Details.xml: 依存関係バージョン情報を更新(+32/-32行)

アップデート対象パッケージ:

  • 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

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

Maestroによる自動依存関係更新PR(2026年6月2日产生)です。変更内容はテストデータとランタイムアセットの参照更新であり、機能的な変更は含まれていません。


#128896 [release/8.0] Bump to OSX.15 helix queues

概要

macOS ヒーリックス (Helix) テスト キューを OSX.15 に統一するための変更。テスト環境の一貫性を確保するための構成更新です。

変更内容

  • eng/pipelines/coreclr/templates/helix-queues-setup.yml: macOS キュー設定を5行更新
  • eng/pipelines/libraries/helix-queues-setup.yml: macOS キュー設定を3行更新
  • src/libraries/System.Net.Sockets/tests/FunctionalTests/SendTo.cs: テスト関連の1行を修正

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

なし


#128892 [Android] Disable X509 name-constraint violation tests on Android

概要

Android プラットフォームにおいて X.509 チェーン構築時の名前制約違反の検証結果が、現在のテスト期待値と異なるため、該当するテストを ActiveIssue でマークしてスキップするようにしました。非 Android プラットフォームではテストカバレッジを維持します。

変更内容

  • src/libraries/System.Security.Cryptography/tests/X509Certificates/DynamicChainTests.cs
    • DNS 許可・除外名前制約違反テスト(2件)に [ActiveIssue("https://github.com/dotnet/runtime/issues/128890", TestPlatforms.Android)] を追加
    • UPN 許可・除外名前制約違反テスト(2件、ConditionalFact を含む)に同じ Android スコープの ActiveIssue を追加

パフォーマンスへの影響

影響なし

関連Issue

#128890

その他

  • テスト対象:System.Security.Cryptography ライブラリの X509 チェーン構築ロジック(テストコード)
  • 影響範囲:Android CoreCLR/Mono 環境での X.509 名前制約検証テスト
  • 他プラットフォーム(Windows、Linux など)では影響なし

#128880 [release/9.0-staging] Update dependencies from dotnet/cecil

概要

dotnet/cecilの依存ライブラリを更新するPull Request。Microsoft.SourceBuild.Intermediate.cecilおよびMicrosoft.DotNet.Cecilを0.11.5-alpha.26274.2から0.11.5-alpha.26281.4にバージョンアップします。

変更内容

  • eng/Version.Details.xml: dotnet/cecilの依存バージョン情報を更新(コミット:ad6296f3666c469ea14ed17889561c6f7463bba8)
  • eng/Versions.props: バージョンプロパティを更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • dotnet-maestroによる自動依存更新
  • release/9.0-stagingブランチ向けの更新
  • 対象ライブラリはメタデータ処理関連のCecil(IL処理ライブラリ)

#128863 [cDAC] Refactor cDAC test structure: extract reusable harness, organize under tests/

概要

cDACのテスト構造を再編成し、ユニットテストと再利用可能なテスト基盤を明確に分離する変更です。テスト基盤(MockMemorySpace、ContractDescriptorBuilder、DumpTestBase、属性フィルタリングなど)を独立したライブラリプロジェクト TestInfrastructure として抽出し、NuGetパッケージとして配布可能にしました。これにより、ダウンストリームプロジェクトがInternalsVisibleToなしで公開APIベースのテストハーネスを活用できます。

変更内容

  • テストレイアウトの再編成: ユニットテストプロジェクトを src/native/managed/cdac/tests/UnitTests/ に移動し、DumpTests、StressTests、DataGenerator と同じ構造に統一
  • TestInfrastructureライブラリの抽出: MockMemorySpace、ContractDescriptorBuilder、DumpTestBase、SkipOn属性、TestHelpers、Layout/TypedViewなどを新規プロジェクト src/native/managed/cdac/tests/TestInfrastructure/ に集約
  • プロジェクト参照の更新: Tests と DumpTests が TestInfrastructure を ProjectReference として参照し、Compile Include での重複を廃止
  • パッケージング対応: TestInfrastructure を tools.cdac サブセットに追加し、NuGet配布対象化
  • csproj・ビルド設定の更新: cdac.slnx、eng/Subsets.props の パス更新、DumpTests の冗長な PackageReference 削除
  • Nullable有効化: TestInfrastructure.csproj で <Nullable>enable</Nullable> を設定し、アナライザー規則に整合

パフォーマンスへの影響

影響なし。構成変更のみで実行時動作変化なし。

関連Issue

なし

その他

  • テストビルド結果: 0エラー、0警告、2429ユニットテスト合格(16スキップ、0失敗)
  • 変更の大半は git mv によるファイル移動で、実質的な編集は csproj、slnx、Subsets.props に限定
  • InternalsVisibleTo 新規付与なし
  • Copilot指摘: TypedView.Init は protected internal が推奨(現在 public)

#128860 GC info in webassembly R2R files was not found/decoded properly

概要

WebAssembly R2R ファイル内の GC 情報エンコード/デコードの不整合を修正しました。ライター側の不要な 4 バイト アライメントを削除し、リーダー側が WebAssembly 固有の GC 情報フォーマットを正しく処理するようにしました。併せて R2RDump の診断機能を強化しました。

変更内容

  • GC 情報エンコード修正(MethodGCInfoNode.cs): WebAssembly(Wasm32)における固定スタック パラメータ スクラッチ エリアの 4 バイト アライメント/パディングをスキップするよう変更
  • GC 情報デコード修正(GcInfo.cs、GCInfoTypes.cs): アーキテクチャごとのフラグを追加し、Wasm32 では固定スタック パラメータ スクラッチ エリアのデコードをスキップ
  • R2RDump 診断強化: 新たに --dump-rva スイッチを追加し、指定した RVA から任意サイズの生バイト列をダンプ可能に(Wasm R2R ファイルの診断に有用)
  • Debug 情報処理修正(DebugInfo.cs): Wasm32 でのデバッグ レジスタ名デコードで例外をスロー回避、代わりに未実装プレースホルダを返却

パフォーマンスへの影響

影響なし

関連Issue

#128860

その他

  • WebAssembly R2R ファイルのデバッグ データ処理に根本的な課題が残存(今後の対応予定)
  • Copilot レビューで、CalculateFuncletOffsets と EncodeDataCore のオフセット計算に Wasm32 向けの追加調整が必要である可能性を指摘(コールド funclet のパーソナリティ ルーチン予約との不一致)

#128843 [release/10.0] Configurable EventPipe CPU sampling rate

概要

EventPipeの CPU サンプリングレートを設定可能にするバックポート。DOTNET_EventPipeThreadSamplingRate 環境変数で、デフォルトの 1ms から任意のサンプリング間隔(ms単位)にオーバーライドできます。Cosmicが報告した高いオーバーヘッドに対応するため、main からの変更をrelease/10.0にバックポートしました。

変更内容

  • CoreCLR設定値追加: clrconfigvalues.h に INTERNAL_EventPipeThreadSamplingRate を登録
  • CoreCLR実装: ep-rt-coreclr.h でサンプリングレート取得機能を実装し、profiler-provider通知ガードを調整
  • NativeAOT実装: ep-rt-aot.h で RhConfig::Environment::TryGetIntegerValue 経由でサンプリングレート取得を実装
  • 共有ランタイム抽象化: ep-rt.h に ep_rt_config_value_get_sampling_rate() を宣言
  • EventPipe初期化: ep.c で設定値を読み込み、ミリ秒からナノ秒に変換して適用(未設定時はプラットフォームデフォルト)
  • Mono実装: ep-rt-mono.h に Mono向けの実装を追加(ビルド互換性確保)
  • 機能テスト: サンプリングレート変更が正しく反映されることを検証するテストを追加

パフォーマンスへの影響

改善: サンプリングレートを低く設定することで、プロファイラー有効時のオーバーヘッドを削減できます(Cosmicが報告した劇的なオーバーヘッドに対応)。 懸念点なし: この機能は DOTNET_EventPipeThreadSamplingRate 環境変数が設定された場合のみ動作するため、既存のデフォルト動作への影響はありません。

関連Issue

#127292

その他

  • 本変更は CoreCLR/NativeAOT 部分のみのバックポートです
  • リスク評価:低(環境変数が設定された場合のみアクティブ)
  • 回帰テスト結果:回帰なし
  • 非破壊的変更(デフォルト動作は変わらず、設定可能オプションの追加)

#128831 [release/8.0-staging] Update dependencies from dotnet/arcade

概要

dotnet/arcadeリポジトリの依存関係を更新するPull Request。ビルドツール、SDKおよび関連ユーティリティパッケージを8.0.0-beta.26224.3から8.0.0-beta.26278.3へアップグレードしています。

変更内容

  • eng/Version.Details.xml: 17個のMicrosoft.DotNet.*パッケージとMicrosoft.DotNet.XUnitConsoleRunnerのバージョン情報を更新(36行削除/36行追加)
  • eng/Versions.props: バージョン定義を更新(15行削除/15行追加)
  • global.json: グローバルバージョン設定を更新(3行削除/3行追加)

更新対象パッケージ:

  • Microsoft.DotNet.Arcade.Sdk
  • Microsoft.DotNet.Build.Tasks.* (Archives、Feed、Installers、Packaging、TargetFramework、Templating、Workloads)
  • Microsoft.DotNet.CodeAnalysis、GenAPI、GenFacades、PackageTesting
  • Microsoft.DotNet.Helix.Sdk、RemoteExecutor、SharedFramework.Sdk、VersionTools.Tasks、XUnitExtensions
  • Microsoft.DotNet.XUnitConsoleRunner (2.5.1系統)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • Maestro自動依存更新システムによる自動生成PR(dotnet-maestro[bot]が作成者)
  • 対象ブランチ:release/8.0-staging
  • 上流の変更日時:2026年5月28日 21:35:33 UTC
  • 上流コミット:4b95fb1a9307265eb75f62d4937be50e6786e94e(dotnet/arcade release/8.0ブランチ)

#128738 [Diagnostics] In-Proc CrashReport lifecycle

概要

AndroidおよびApple mobileプラットフォーム上で、createdumpがヘルパープロセスをフォークできない場合のクラッシュレポート出力を管理する生涯管理機能を追加します。このPRは、クラッシュレポートを境界のある回転ディレクトリに保存し、保持ポリシーを適用することで、アプリのプライベートストレージに無限に蓄積されるのを防ぎます。

変更内容

  • inproccrashreportlifecycle.h/cpp: 新しいライフサイクル管理クラスを実装。ディレクトリセットアップ、タイムスタンプベースの古いレポート削除、安全な一時ファイルから最終ファイルへのパブリッシング(同ディレクトリ内のrename操作)を提供
  • inproccrashreporter.h/cpp: 既存のインプロセスクラッシュレポーターにライフサイクル管理統合。DbgMiniDumpName設定との後方互換性を維持
  • crashreportstringutils.h/cpp: シグナルセーフな文字列操作ユーティリティを追加
  • clrconfigvalues.h: DOTNET_CrashReportRootPathおよびDOTNET_CrashReportMaxFileCount設定エントリを追加
  • crashreportstackwalker.cpp: 新しいライフサイクル設定を読み込みレポーター設定に渡す
  • design.md: 設計根拠と保持モデルを文書化

設定オプション:

  • DOTNET_EnableCrashReport - オプト イン(既存)
  • DOTNET_CrashReportRootPath - 管理対象レポートツリーのルートディレクトリ(新規)
  • DOTNET_CrashReportMaxFileCount - 保持制限(デフォルト32、正の整数)

パフォーマンスへの影響

影響なし。ライフサイクル管理はシグナルセーフなプリミティブ(rename、delete)を使用し、クラッシュパスでの操作は最小限に設計されています。

関連Issue

なし

その他

  • ディレクトリレイアウト: <root>/.dotnet/crash-reports/report-<timestampNs>-<pid>.crashreport.json
  • 保持ポリシーは、タイムスタンプに基づいて最も古いレポートから削除し、最大N件保持(新レポート用スロット確保)
  • 上書き防止: 完了したレポートは一時ファイルから最終ファイルへ同ディレクトリ内でrename( async-signal-safe)
  • 初期化時の機能プローブ: スタートアップ時にディレクトリが作成+rename+削除を許可するか検証。サンドボックスが拒否した場合はクラッシュ時に無音で失敗するのではなく、起動時に明確な診断を出力して無効化
  • Android x64エミュレーターで検証済み:保持ポリシーが機能、有効なJSON出力、上書き防止が保証、初期プローブがアーティファクト残存なし

#128729 JIT: fix loop cloning type assumptions

概要

JIT ループクローニング最適化において、配列参照の型を正確に追跡するように修正しました。従来はすべての配列参照を TYP_REF と仮定していましたが、スタック割り当てされた配列など TYP_I_IMPL や TYP_BYREF として参照される場合に対応します。抽出時に観察された実際の参照型とローカル型を保持し、ループクローニング条件の新しいIRノード生成時に使用することで、型安全性を確保します。

変更内容

  • loopcloning.h: ループクローニングのシンボリック表現に型フィールド(arrType、lclType)を追加し、同一性比較を厳格化
  • loopcloning.cpp: 新しいIRノード構築時(gtNewLclvNodeなど)に保持した型情報を使用し、クローニング条件の型安全性を確保。混合型のnull比較を防ぐロジックを追加
  • flowgraph.cpp: a.Length型のループ反復情報抽出時に配列参照型をキャプチャ

パフォーマンスへの影響

影響なし

関連Issue

#115663

その他

なし


#128634 Track HTTP/3 response header budget per-header like HTTP/2

  • 作成者: @Copilot
  • 作成日時: 2026年05月27日 10:27:51(UTC)
  • マージ日時: 2026年06月04日 10:24:38(UTC)
  • ラベル: area-System.Net.Http

概要

HTTP/3のレスポンスヘッダ予算追跡ロジックをHTTP/2と一致させるよう改善しました。従来のHEADERSフレームペイロードサイズに基づく予算チェックから、デコードされた各ヘッダエントリ(名前長+値長)ごとの追跡に変更し、MaxResponseHeadersLengthの適切な実装を実現しています。

変更内容

src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http3RequestStream.cs

  • ReadHeadersAsync内の圧縮HEADERSフレームペイロード長ベースの予算チェック/減算を削除
  • OnHeader内でQPACKデコード時に応答ヘッダ予算を実装し、各ヘッダごとに_headerBudgetRemainingをデクリメント
  • 予算超過時にQUIC読み取り方向をH3_EXCESSIVE_LOADで中止

パフォーマンスへの影響

影響なし(アカウンティングロジックの改善であり、パフォーマンス特性への変更なし)

関連Issue

なし

その他

既存のSocketsHttpHandler_HttpClientHandler_MaxResponseHeadersLength_Http3テストがこのコードパスをカバーしており、変更の動作確認が可能です。


#128579 [release/8.0-staging] [TestOnly] Fix NumberFormatInfoGroupSize test

概要

System.GlobalizationのNumberFormatInfoグループサイズテストを修正し、プラットフォーム固有のグローバライゼーションデータの違いに対応するようにしました。本修正は9.0-stagingで発生したテスト失敗の修正をrelease/8.0-stagingにバックポートしたものです(#120546からのバックポート)。

変更内容

  • src/libraries/System.Globalization/tests/NumberFormatInfo/NumberFormatInfoNumberGroupSizes.cs
    • NumberGroupSizes_TestDataにカルチャ名と代替期待値オプションを追加
    • アサーション更新:主要な期待値または代替期待値の両方を受け入れるように変更
    • テスト失敗時に文化コンテキスト情報を含めた出力に改善

パフォーマンスへの影響

影響なし(テストのみの変更)

関連Issue

#120546

その他

  • リスク度:低(テストのみの変更、新しいデータの処理)
  • 回帰なし
  • 特にur-IN(ウルドゥー語(インド))のカルチャにおけるプラットフォーム間のグローバライゼーションデータ差異に対応

#128578 [release/9.0-staging] [TestOnly] Fix NumberFormatInfoGroupSize test

概要

release/9.0-stagingで失敗していたNumberFormatInfo.NumberGroupSizesテストを修正するバックポート(#120546より)。Apple OS の最新グローバライゼーションデータによって、ur-INカルチャのグループサイズが変更されたため、テストが複数の有効な値を受け入れるように更新されました。

変更内容

  • System.Globalization.Tests/NumberFormatInfo/NumberFormatInfoNumberGroupSizes.cs
    • NumberGroupSizes_TestDataテスト行を拡張し、カルチャ名と2番目の許容可能な期待値配列を追加
    • NumberGroupSizes_Get_ReturnsExpectedテストメソッドを書き直し、2つの期待値配列のいずれかを受け入れるように対応
    • ur-INカルチャについて、NumberFormatInfoData.UrINNumberGroupSizes()と{ 3, 2 }の両方を有効な結果として許容

パフォーマンスへの影響

影響なし(テストのみの変更)

関連Issue

#120546

その他

  • テストのみの変更で、新しいデータに対応するため低リスク
  • mainで検証済み、release/9.0-stagingでも同じテスト失敗が確認されている

#128560 Add use with trusted files remark to FileVersionInfo.GetVersionInfo

概要

FileVersionInfo.GetVersionInfo(string) メソッドのXML ドキュメンテーションに、信頼できるファイルのみを使用すべき旨の注意書きを追加しました。悪意のある、または不正な形式のファイル入力に起因するリスクについて、呼び出し側に警告します。

変更内容

  • src/libraries/System.Diagnostics.FileVersionInfo/src/System/Diagnostics/FileVersionInfo.cs: GetVersionInfo(string) メソッドのXML ドキュメンテーションに <remarks> セクションを追加し、信頼できないファイルからのバージョン情報抽出に対する注意を記載(+5行)

パフォーマンスへの影響

影響なし(ドキュメンテーション変更のみ)

関連Issue

#128560

その他

なし


#128533 JIT: Canonicalize '(A & pow2) == pow2' -> '(A & pow2) != 0'

概要

JIT最適化として、ビットマスク比較を正規化する変換を追加しました。(A & pow2) == pow2 を (A & pow2) != 0 に、(A & pow2) != pow2 を (A & pow2) == 0 に統一します。右辺が常に0になるこの正規形により、後続の最適化(optimizeBools、分配変換など)がより効果的に機能するようになります。

// 正規化前後の例
static bool Example(int foo)
{
    return ((foo & 4) == 4) || ((foo & 8) == 8);
}
// 正規化後: (foo & 12) != 0 相当に最適化される可能性

変更内容

  • src/coreclr/jit/morph.cpp: fgOptimizeRelationalComparison関数内に、(A & pow2) ==/!= pow2パターンの正規化ロジックを追加。マッチした場合、比較演算子を反転し右辺定数を0に変更、バリューナンバリング(VN)も同時に更新します。

パフォーマンスへの影響

改善あり。提供されたアセンブリの例では、複数のテスト命令が統合でき、より効率的なコード生成が期待できます。詳細なベンチマーク数値は記載されていませんが、後続のPR #126852と組み合わせることで test 12 のような単一命令への変換が可能になります。

関連Issue

#126852(関連する分配変換最適化)

その他

内部実装(コンパイラ/JITフェーズ)の変更であり、公開APIへの影響はありません。このパターン正規化は現在optimizeBoolsの効率向上に寄与し、将来的なさらなる最適化の基盤となります。


#128272 Mark descriptor-preserved members as reflection-visible

概要

ILLinkマーキングパイプラインを更新して、XML記述子によって保持されたメンバーをリフレクション可視として扱うようにします。さらに、それらの宣言型もリフレクション可視としてマークし、バリアント型キャストや明示的レイアウトフィールドなど、リフレクション依存のセマンティクスを保持します。

変更内容

  • Annotations.cs: descriptor保持メンバーをリフレクション可視処理用にスケジュールするための保留中コレクションとAPIを追加
  • MarkStep.cs: 保留中のリフレクション可視メンバーを処理し、メンバーと宣言型をリフレクション可視としてマーク(30行追加)
  • DescriptorMarker.cs: descriptor保持フィールド/メソッドをリフレクション可視処理用にスケジュール(16行追加)
  • 新規テストケース:
    • StaticAbstractMethodsPreservedViaDescriptor: descriptor経由で保持される静的抽象インターフェースメンバーの回帰テスト
    • DescriptorPreservedTypeIsReflectionVisible: descriptor保持型がリフレクション可視として完全に処理されることを検証(バリアント型キャスト、明示的レイアウトフィールドを含む)
  • 既存テスト修正: NoInstanceCtorAndTypePreserveMethodsWithInterfacesMarked.csの修正、予期される失敗を追加

パフォーマンスへの影響

影響なし

関連Issue

#128120

その他

内部実装(ILLink linker)の変更。このPRは、descriptor経由で保持されたメンバーに対してリフレクション可視性を適切に処理することで、AOT/トリミング時のリフレクション動作の正確性を向上させます。


#118616 Explicitly asserting CodeExporter beliefs about specific types of DataContracts

概要

CodeExporter.csにDebug.Assert文を追加し、DataContractの特定のサブタイプについてコードが暗黙的に仮定していた内容を明示的に検証するようにしました。NetFx時代の内部可視コードから外部アセンブリへの移行に伴い、DataContractの内部構造へのアクセスが制限されたため、事前条件の検証を強化するものです。

変更内容

src/libraries/System.Runtime.Serialization.Schema/src/System/Runtime/Serialization/Schema/CodeExporter.cs

  • TypeDeclarationとTypeReferenceがnullでないことを検証するDebug.Assertを追加(ネストされた型生成、クラスコントラクト出力、シリアル化可能なコントラクト出力時)
  • CollectionDataContractとEnumDataContractシナリオにおいてBaseContractがnullでないことを検証するAssertを追加
  • コード属性生成時にアセンブリ名がnullでないこと、コレクションデータコントラクト出力時にベース型参照とアイテム名が存在することを確認するAssertを追加

パフォーマンスへの影響

影響なし(Debug.Assertはリリースビルドでは削除されます)

関連Issue

#78704

その他

この変更は実行時動作を変更せず、開発時のデバッグを容易にし、予期しないnull値と無効な状態を早期に捕捉することを目的としています。内部実装の強化であり、公開APIへの影響はありません。


目次