Pull Request on 2026年07月22日

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

注意点

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


目次

  1. #131217 [wasm] Ensure R2R entry-point PEP is callable in RunMain
  2. #131185 Remove K&R style parameter declaration
  3. #131182 Remove unnecessary layers of indirection in PreallocatedOverlapped.
  4. #131180 [release/9.0-staging] Update dependencies from dotnet/icu
  5. #131179 [release/9.0-staging] Update dependencies from dotnet/arcade
  6. #131176 Make MethodDataObject::FillEntryDataForAncestor lazy per-level
  7. #131173 Merge Runtime_131137 into the shared regression runner
  8. #131169 [cDAC] Implement GetMetadata for cDAC
  9. #131164 JIT: don't let tail-merge try and remove the OSR-protected entry block
  10. #131156 Fix agentic threat-detection auth by recompiling pat_pool workflows with gh-aw v0.82.6
  11. #131150 Remove dead NativeAOT dynamic-delegate path from System.Delegate
  12. #131149 [release/9.0-staging] Fix flaky MalformedPacketsDuringHandshake test
  13. #131148 [release/8.0-staging] Fix flaky MalformedPacketsDuringHandshake test
  14. #131144 Throw PNSE for Extended Protection on unsupported platforms
  15. #131139 Disable new test on clr interpreter
  16. #131113 [Wasm RyuJit] HW Intrinsic Regalloc: Properly consume temporary from addr operand
  17. #131105 Bump actions/setup-python from 6 to 7
  18. #131087 Support IEEE 754 decimals in TotalOrderIeee754Comparer and fast-path the built-in types
  19. #131079 Fix exception check .NET 9
  20. #131078 Fix exception check
  21. #131067 Update container image digests
  22. #130983 Use MSVC_DEBUG_INFORMATION_FORMAT for CoreCLR object libraries
  23. #130969 Compare full HMAC against full SignatureValue in SignedXml.CheckSignedInfo
  24. #130968 Improve perf of attribute duplicate check
  25. #130866 Materialize Vector128<T> as a wasm v128 in the codegen ABI
  26. #130863 Add a spec augment on escaping value type instances based on RefSafetyRulesAttribute
  27. #130825 Update BootJsonData generation to account for runtimeconfig.dev.json
  28. #130813 [wasm] Model class-init helper as value-returning in the JIT
  29. #130762 Add Stub IXCLRDataFunctionTableAccess to cDAC
  30. #130645 Make cDAC generated IData classes read fields lazily
  31. #130344 Fix failing symlink tests (10.0)
  32. #130062 [main] Update dependencies from dotnet/icu, dotnet/runtime-assets
  33. #129867 [release/10.0] Update Alpine infra images to 3.24
  34. #128326 Arm64: Improve support for HW_Flag_ReturnsPerElementMask
  35. #116166 Fix building the sanitizer instrumentation and hooking it into the hosts

#131217 [wasm] Ensure R2R entry-point PEP is callable in RunMain

  • 作成者: @lewing
  • 作成日時: 2026年07月22日 14:02:18(UTC)
  • マージ日時: 2026年07月22日 20:23:59(UTC)
  • ラベル: area-VM-coreclr

概要

WebAssembly環境において、R2R(ReadyToRun)コンパイル済みコードから呼び出されるマネージドプログラムのエントリーポイントが未初期化のPortableEntryPoint(PEP)に解決される場合、間接呼び出しが失敗してトラップするか、全プログラムのインタープリータフォールバックが発生する問題を修正します。RunMainInternal内でエントリーポイントアドレスを取得した直後にMethodDesc::EnsurePortableEntryPointIsCallableFromR2Rを呼び出し、PEPをネイティブR2Rコードまたは正しく型付けされたインタープリータサンク(thunk)に確実に発行します。

// RunMainInternal内での追加コード
pParam->pFD->EnsureActive();
PCODE entryPoint = pParam->pFD->GetSingleCallableAddrOfCode();
#ifdef FEATURE_PORTABLE_ENTRYPOINTS
MethodDesc::EnsurePortableEntryPointIsCallableFromR2R(entryPoint);
#endif // FEATURE_PORTABLE_ENTRYPOINTS

変更内容

  • src/coreclr/vm/assembly.cpp:RunMainInternal内でエントリーポイント取得直後にEnsurePortableEntryPointIsCallableFromR2R呼び出しを追加(+6行)

パフォーマンスへの影響

検証対象(composite R2R WASI "Hello world")での測定結果:

  • 修正前:String..ctor R2R実行回数 0、Memmove R2R実行回数 0、TryPublishR2R FAILED件数 5
  • 修正後:String..ctor R2R実行回数 7、Memmove R2R実行回数 8、TryPublishR2R FAILED件数 0

修正により、R2Rネイティブコード実行が確実になり、インタープリータフォールバック診断が完全に消失します。

関連Issue

#130386、#130841

その他

  • 影響範囲:FEATURE_PORTABLE_ENTRYPOINTSフラグ(WASM環境のみ)に限定され、非WASMターゲットには影響なし
  • 既存ハード:既存のヘルパーメソッドを利用し、新規API追加なし
  • パターン整合性:#130386・#130841で導入された既存のEnsurePortableEntryPointIsCallableFromR2R呼び出しパターンに準拠
  • リスク評価:低リスク(WASM限定、6行の追加、既存パターンに従う)

#131185 Remove K&R style parameter declaration

概要

Windows zlib アロケーター実装における K&R スタイルの関数パラメータ宣言を標準 C 関数プロトタイプに置き換え、modern コンパイラとの互換性を向上させました。z_custom_calloc と z_custom_cfree 関数が対象です。

変更内容

  • src/native/libs/System.IO.Compression.Native/zlib_allocator_win.c
    • z_custom_calloc と z_custom_cfree の K&R スタイルパラメータ宣言を標準 C プロトタイプ形式に更新
    • 変更行数: +2/-7

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このコードは Windows プラットフォーム上の System.IO.Compression ネイティブライブラリの一部(zlib ラッパー)に関連します
  • K&R スタイルの関数宣言は C89 以前の古い記法であり、modern コンパイラ(clang など)では互換性の問題が生じるため、ANSI C プロトタイプ形式への統一により開発効率が向上します

#131182 Remove unnecessary layers of indirection in PreallocatedOverlapped.

概要

PreallocatedOverlappedクラスにおいて、ポータブルスレッドプールとWindowsスレッドプール向けの実装が同一であるメソッドの不要な層を削除しました。外部向けエントリーポイントから直接処理をルーティングするよう整理し、コードの重複を排除しています。

変更内容

  • PreAllocatedOverlapped.Portable.cs: 不要なメソッドを削除(-19行)
  • PreAllocatedOverlapped.Windows.cs: スレッドプール実装の統合により、メソッド数を削減(+5/-21行)
  • PreAllocatedOverlapped.WindowsThreadPool.cs: 統合されたメソッドを削除(-19行)

計3ファイルで合計64行削除され、コードの複雑さが低減されました。

パフォーマンスへの影響

影響なし(リファクタリングであり、機能的な動作は変わりません)

関連Issue

#131182

その他

なし


#131180 [release/9.0-staging] Update dependencies from dotnet/icu

概要

dotnet/icu リポジトリの依存関係を更新するPull Requestです。Microsoft.NETCore.Runtime.ICU.Transport パッケージをバージョン 9.0.0-rtm.26370.1 から 9.0.0-rtm.26371.1 にアップデートします。

変更内容

  • eng/Version.Details.xml: Microsoft.NETCore.Runtime.ICU.Transport の詳細バージョン情報を更新(+2/-2)
  • eng/Versions.props: Microsoft.NETCore.Runtime.ICU.Transport のバージョンプロパティを更新(+1/-1)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 自動化された依存関係更新PR(dotnet-maestro[bot]による作成)
  • dotnet/icu リポジトリの dotnet/release/9.0 ブランチから、2026年7月21日時点の最新コミット(a4dc69b0ee1b95a5a937595d89b3d0cd3d092179)への更新

#131179 [release/9.0-staging] Update dependencies from dotnet/arcade

概要

dotnet/arcadeへの依存パッケージの定期的な更新です。.NET 9.0-staging ブランチ向けに、アーケード関連のビルドタスク、SDK、ツール、テストユーティリティなど計21個のパッケージをベータ版からマイナー更新しています。

変更内容

  • eng/Version.Details.xml: 依存パッケージのメタデータ更新(9.0.0-beta.26366.5 → 9.0.0-beta.26371.3、2.9.0-beta.26366.5 → 2.9.0-beta.26371.3)
  • eng/Versions.props: バージョン指定の更新
  • global.json: ツール バージョン情報の更新

更新対象パッケージ:

  • Microsoft.DotNet.Arcade.Sdk、Build.Tasks.*(Archives、Feed、Installers、Packaging等)
  • Microsoft.DotNet.CodeAnalysis、GenAPI、GenFacades
  • Microsoft.DotNet.Helix.Sdk、PackageTesting、RemoteExecutor
  • Microsoft.DotNet.VersionTools.Tasks、XliffTasks、XUnitExtensions、XUnitAssert、XUnitConsoleRunner
  • Microsoft.SourceBuild.Intermediate.arcade、Microsoft.DotNet.SharedFramework.Sdk

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 自動依存更新(dotnet-maestro[bot]による)
  • 出典:dotnet/arcade の release/9.0 ブランチ(コミット: cbbdb81eb86e96536be289b03d96b605c47932e1)
  • ビルド日時:2026年7月21日 UTC
  • 破壊的変更やAPIの非推奨化に関する情報は提供されていません

#131176 Make MethodDataObject::FillEntryDataForAncestor lazy per-level

  • 作成者: @davidwrighton
  • 作成日時: 2026年07月21日 23:17:46(UTC)
  • マージ日時: 2026年07月22日 22:20:24(UTC)
  • ラベル: area-VM-coreclr

概要

MethodDataObject::FillEntryDataForAncestorの最適化(#130151の後続PR)で導入された「NULL終端スロットの事前解決」による性能改善を保持しつつ、クラスの本来的な遅延設計(PopulateNextLevelで1レベルずつ処理)を復元する変更です。従来の実装では継承チェーン全体を即座に走査していたため、テーリング遅延を増加させていました。この変更により、スロットごとの判定をレベル単位で遅延実行に改め、メモリ割り当てなしで同一の結果を実現します。

変更内容

src/coreclr/vm/methodtable.cpp

  • 継承チェーン全体を走査する事前ループを削除
  • NULL スロットビットマップと関連するヒープ割り当てを削除
  • m_containsMethodImplが true の場合、各レベルでは現在のレベルで導入された仮想スロットに対してのみ「最終vtableエントリがm_pDeclMTの正規mtで NULL か」を問い合わせ
  • m_containsMethodImplは most-derived → base 走査で単調であり、各レベルでそのレベルのMethodImpl影響範囲を正確に反映
  • コード行数:-167 / +36(純減少)

パフォーマンスへの影響

改善:

  • WPF アプリスタートアップ:最大値が3191msから1431msに短縮(テーリング遅延の大幅改善)
  • 中央値:1407.0ms → 1395.7ms(ほぼ同等で若干向上)
  • 平均値:1435.1ms → 1395.1ms(分布が安定化)
  • ヒープ割り当てを廃止し、LIMITED_METHOD_CONTRACT下でメモリ効率向上

関連Issue

#130151、dotnet/wpf#11740

その他

  • CoreCLR Debug/Release(Windows x64)のビルド確認完了
  • .NET 10 アプリを .NET 11 ランタイム上で実行し、WPF レンダリング動作を検証
  • 特に深い継承階層で多くのオーバーライドされていない仮想メソッドが存在する場合(WPF スタートアップの典型的なパターン)での尾部遅延を効果的に削減

#131173 Merge Runtime_131137 into the shared regression runner

概要

Runtime_131137 JIT回帰テストを、不要なプロセス分離設定から統合済みの共有リグレッションテストランナー Regression_ro_2.csproj にマージします。このテストは環境変数設定、ホストコンフィグ、プロセス全体の状態変更を行わないため、requiresprocessisolation.md のプロセス分離ルールに該当しません。

変更内容

  • Regression_ro_2.csproj: JitBlue\Runtime_131137\Runtime_131137.cs を統合テストランナーのコンパイルリストに追加
  • Runtime_131137.csproj: 不要なスタンドアロンテストプロジェクト(RequiresProcessIsolation=true 設定付き)を削除

パフォーマンスへの影響

影響なし

関連Issue

#131155 のフォローアップ

その他

作成者は他の最近追加された JitBlue テストも監査し、Runtime_130844/130845/130846 は環境変数設定、他のISO設定テストはプロセス分離が必要な理由があることを確認。Runtime_8980 はxunitラッパー生成を無効化しています。本PRでは Runtime_131137 がスタンドアロン化の正当な理由を持たない唯一のテストとして特定されました。


#131169 [cDAC] Implement GetMetadata for cDAC

  • 作成者: @barosiak
  • 作成日時: 2026年07月21日 21:23:32(UTC)
  • マージ日時: 2026年07月22日 17:56:31(UTC)
  • ラベル: area-Diagnostics-cdac

概要

cDAC(Compact Debugger Access Component)のレガシーDbi層にDacDbiImpl.GetMetadataを実装しました。このメソッドは、IEcmaMetadataコントラクトを使用してターゲットメタデータスパンを取得します。通常のモジュールは読み取り専用メタデータを、Reflection.Emitまたは動的生成されたモジュールは保存された読み取り/書き込みメタデータを返します。

変更内容

  • DacDbiImpl.cs - GetMetadataの実装。LoaderおよびIEcmaMetadataコントラクトを使用してモジュールフラグに基づき適切なメタデータスパンを選択
  • CorDbHResults.cs - 新しいHRESULT定数CORDBG_E_MISSING_METADATAを追加
  • IEcmaMetadata.cs、EcmaMetadata_1.cs - Reflection.Emit モジュール向けにGetReadWriteSavedMetadataAddressをコントラクトに公開
  • EcmaMetadata.md - 新しいコントラクトAPIを文書化
  • DacDbiImplTests.cs - 非動的モジュール、動的モジュール、空メタデータ、nullバッファのケースをカバーする単体テストを追加(計99行)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

Copilotによるレビューで、GetMetadataの実装がポインタ検証前にpTargetBufferを参照解除している可能性が指摘されました。明示的な引数検証の追加と、null チェック後にのみpTargetBufferに書き込むことが推奨されています。


#131164 JIT: don't let tail-merge try and remove the OSR-protected entry block

概要

OSR(On-Stack Replacement)対応コードにおいて、fgHeadTailMergeがOSR保護されたエントリブロック(fgEntryBB)を、人工的なbbRefsインクリメントが適用されている間に削除しようとするのを防止します。これにより、削除対象ブロックにbbRefs == 0とbbPreds == nullptrを要求するfgRemoveBlockのアサーション違反を回避します。

変更内容

  • src/coreclr/jit/fgopt.cpp
    • fgHeadTailMergeにOSR固有のガード条件を追加
    • 元のメソッドエントリとして追跡されている間はfgEntryBBの削除をスキップ
    • OSRの人工的なbbRefsインクリメント/保護解除シーケンスを説明するコメントを追加

パフォーマンスへの影響

影響なし

関連Issue

#131056

その他

このPRはJITコンパイラの内部実装の修正であり、公開APIへの影響はありません。OSRシナリオにおける正確なブロック削除ロジックの修正です。


#131156 Fix agentic threat-detection auth by recompiling pat_pool workflows with gh-aw v0.82.6

概要

Agentic workflows内の脅威検出(threat-detection)機能における認証の失敗を修正するPRです。gh-aw v0.81.6で生成されたdetectionジョブのneeds:がpat_poolを含めていなかったため、COPILOT_GITHUB_TOKENが空になり503エラーが発生していました。gh-aw v0.82.6へのアップグレードで修正されたため、5つのagentic workflowを再コンパイルします。

変更内容

  • ワークフロー定義ファイル(.md): 5つのワークフロー(ci-failure-scan、ci-failure-scan-feedback、ci-failure-fix、closed-issue-reference-check、breaking-change-doc)におけるCOPILOT_GITHUB_TOKENの多行式を単一行に統一
  • コンパイル済みワークフロー(.lock.yml): gh-aw v0.82.6で再生成。各detectionジョブのneeds:にpat_poolを追加
  • ドキュメント更新: .github/workflows/shared/pat_pool.README.mdのCOPILOT_GITHUB_TOKEN例を単一行形式に更新
  • その他: agentics-maintenance.ymlをgh-awの新しいバージョン出力に対応させて再生成

パフォーマンスへの影響

影響なし

関連Issue

#131122

その他

  • この変更は.NETランタイムのビルド・テストインフラストラクチャに関するもので、ランタイムやコンパイラのコード自体には影響しません
  • 根本的な原因はGitHub Actions Workflows(gh-aw)ツールチェーンの古いバージョンにあり、holistic-reviewワークフローは既にv0.82.6で動作しています

#131150 Remove dead NativeAOT dynamic-delegate path from System.Delegate

  • 作成者: @Copilot
  • 作成日時: 2026年07月21日 14:08:29(UTC)
  • マージ日時: 2026年07月22日 01:13:12(UTC)
  • ラベル: area-NativeAOT-coreclr

概要

NativeAOT環境でSystem.Delegateに存在していた到達不可能なコードパスを削除するクリーンアップです。Delegate.IsDynamicDelegate()メソッドが不可能な条件(GetThunk(MulticastThunk) == IntPtr.Zero)をチェックしていたため、DynamicInvokeImplの動的デリゲートブランチが実行されることはありませんでした。本変更により、不要なロジックを削除し、DynamicInvokeを既存のリフレクションベースの呼び出しパスに統一します。

変更内容

  • Delegate.cs: IsDynamicDelegate()メソッドを削除
  • DynamicInvokeImpl: 到達不可能な動的デリゲート分岐を削除
  • CombineImpl: IsDynamicDelegate()に依存していた廃止予定の保護条件を削除
  • リフレクションベースのDynamicInvokeパス(ReflectionAugments.GetDelegateDynamicInvokeInfo)は保持、例外ラッピングとデバッガステップスルー動作も維持

パフォーマンスへの影響

影響なし。不要な分岐判定を削除するため、わずかなコード最適化が期待されますが、既存の活動パスに変更はありません。

関連Issue

なし

その他

  • 低リスク:到達不可能なロジックのみ削除するため、既存動作への影響はありません
  • デリゲートDynamicInvokeの動作が変わらないことを確認するテストが実施済み
  • CoreLib/NativeAOTビルドの検証も完了しています

#131149 [release/9.0-staging] Fix flaky MalformedPacketsDuringHandshake test

概要

release/9.0-stagingブランチにおいて、MalformedPacketsDuringHandshakeテストの不安定性を修正するテストのみの変更。テストをMalformedPacketsDuringRenegotiation_ThrowsAuthenticationExceptionに改名し、TLS 1.2での再ネゴシエーション動作を強制し、オフラインCI環境での証明書チェーン関連の失敗を回避するため証明書失効確認を無効化。mainブランチで既に検証済みの修正をバックポート。

変更内容

  • src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamStreamToStreamTest.cs
    • テストメソッド名をMalformedPacketsDuringHandshake_ThrowsAuthenticationExceptionからMalformedPacketsDuringRenegotiation_ThrowsAuthenticationExceptionに変更
    • クライアント/サーバー両エンドポイントでSslProtocols.Tls12を明示的に指定
    • 両エンドポイントでCertificateRevocationCheckMode = X509RevocationMode.NoCheckを設定

パフォーマンスへの影響

影響なし

関連Issue

#130887

その他

  • テストコード変更のみで、製品コードへの影響なし
  • mainブランチ(PR #130756)で既に同一の修正が統合・検証済み
  • TLS 1.3のpost-handshake認証ではなく、TLS 1.2再ネゴシエーションでテストを実行することで、不安定な動作を排除
  • CI環境でのオフライン状況下での証明書チェーンおよび失効チェック関連のPartialChainエラーを回避

#131148 [release/8.0-staging] Fix flaky MalformedPacketsDuringHandshake test

概要

System.Net.Securityテスト群の不安定性を解決するテスト修正です。MalformedPacketsDuringHandshakeテストがCI環境で間欠的に失敗する問題をmainブランチの修正(#130756)をバックポートすることで対応しました。テストをTLS 1.2での再ネゴシエーション動作に限定し、証明書チェーン検証を無効化することで、オフラインCI環境での失敗を排除します。

変更内容

  • SslStreamStreamToStreamTest.cs: テスト修正(+8/-3行)
    • テスト名をMalformedPacketsDuringHandshake_ThrowsAuthenticationExceptionからMalformedPacketsDuringRenegotiation_ThrowsAuthenticationExceptionに変更
    • クライアント・サーバー両側でSslProtocols.Tls12を強制指定
    • クライアント・サーバー両側でCertificateRevocationCheckMode = X509RevocationMode.NoCheckに設定

パフォーマンスへの影響

影響なし

関連Issue

#130887

その他

  • テストのみの変更で、プロダクトコードへの影響なし
  • mainブランチの修正(#130756)と同一の内容をバックポート
  • CI環境での失敗原因はSystem.Security.Authentication.AuthenticationException: The remote certificate is invalid because of errors in the certificate chain: PartialChain
  • TLS 1.3のハンドシェイク後認証ではなくTLS 1.2の再ネゴシエーション動作をテストすることが目的

#131144 Throw PNSE for Extended Protection on unsupported platforms

  • 作成者: @rzikm
  • 作成日時: 2026年07月21日 12:33:56(UTC)
  • マージ日時: 2026年07月22日 07:13:58(UTC)
  • ラベル: area-System.Net.Security

概要

System.Net.SecurityのNegotiateAuthenticationサーバーサイドコンストラクタにプラットフォームチェックを追加しました。Extended Protectionが有効(PolicyEnforcement.Always)でありながら、OSがExtended Protectionをサポートしていない場合にPlatformNotSupportedExceptionを投出するようになります。これにより、非Windows環境での予期しない動作を防ぎ、開発者に対して明確なエラーメッセージを提供します。

変更内容

  • NegotiateAuthentication.cs: サーバーコンストラクタにPolicyEnforcement.AlwaysとExtendedProtectionPolicy.OSSupportsExtendedProtectionの値をチェックするガード句を追加。条件を満たす場合はPlatformNotSupportedExceptionを投出
  • Strings.resx: 新しいローカライズ済みエラーメッセージ文字列を追加
  • NegotiateAuthenticationTests.cs: 非Windows環境でExtended Protection有効時に例外が投出されることを検証するユニットテストを追加

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

この変更は内部実装(ランタイム検証ロジック)への修正であり、公開APIの変更ではありません。ただし、既存コードがこの条件に該当する場合、実行時に例外が投出されるようになるため、非Windows環境でPolicyEnforcement.Alwaysを指定しているコードの動作が変わる可能性があります。


#131139 Disable new test on clr interpreter

概要

CLR インタプリタで非同期スタックトレース診断テストが失敗する問題に対応したもの。GetResult が例外をスロー する ValueTask ソースの場合、インタプリタ上ではスタックトレースが不正な位置(new 命令)を指すため、このテストケースをインタプリタでスキップするように隔離しました。

変更内容

  • src/libraries/System.Diagnostics.StackTrace/tests/StackTraceTests.cs
    • ThrowsSoonValueTaskSource テストを共有の非同期テストデータセットから除外
    • ThrowsSoonValueTaskSource 専用の [ConditionalFact] テストを追加し、[ActiveIssue] で CoreCLR インタプリタ上でのみスキップするよう設定

パフォーマンスへの影響

影響なし(テスト調整のみ)

関連Issue

#130777(テスト追加元)、#127469(根本原因の背景にある変更)

その他

  • 技術的背景: インタプリタでスタックトレースが不正になる根本原因は、IL スタックが空の位置のみで IL→ネイティブオフセットをレポートしているため、await 位置の情報がないこと。
  • 回避策: 完全な修正はコミット 460eae9b05f8f1fabdbb5318d573d1c00fcb5b1a で可能だが、#127469 の部分的な revert となるため他の診断テストでの回帰リスクがある。
  • 対応内容: テスト実行環境(インタプリタ)に応じた条件付きスキップで問題を回避。

#131113 [Wasm RyuJit] HW Intrinsic Regalloc: Properly consume temporary from addr operand

概要

WebAssembly RyuJIT レジスタアロケーションにおいて、PackedSimd load_lane/store_lane 型操作でのアドレス オペランドに対するnullチェック用テンポラリが正しく消費されていなかった問題を修正します。PR #130822 で導入されたバグを解決し、メモリ参照レポート中に未解放のテンポラリ割り当てが残るのを防ぎます。

変更内容

  • src/coreclr/jit/regallocwasm.cpp: WasmRegAlloc::CollectReferencesForHardwareIntrinsic に、複数回使用されるアドレス オペランドのテンポラリを消費するロジックを追加
  • src/coreclr/jit/rangecheck.h: RangeOps::Add 内の長いブール式をフォーマット(機能的な変更なし)

パフォーマンスへの影響

影響なし(レジスタアロケーションの正確性修正)

関連Issue

#130822

その他

  • この修正は Wasm プラットフォーム固有のレジスタアロケーション動作に限定されます
  • ハードウェア内在関数(HW Intrinsic)のメモリ参照処理における内部実装の修正です

#131105 Bump actions/setup-python from 6 to 7

  • 作成者: @dependabot[bot]
  • 作成日時: 2026年07月20日 21:23:40(UTC)
  • マージ日時: 2026年07月22日 08:41:27(UTC)
  • ラベル: area-codeflow

概要

GitHub Actions の actions/setup-python を v6 から v7 にアップグレードします。v7.0.0 では ESM への移行、依存関係の更新、pip-install 入力の削除、マニフェストフェッチの検証と再試行機能の追加が含まれています。

変更内容

  • .github/workflows/jit-format.yml: actions/setup-python のバージョンを v6 から v7 に更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

v7.0.0 の主な変更点:

  • ESM への移行と依存関係のアップグレード
  • pip-install 入力パラメータの削除(破壊的変更)
  • stderr 警告メッセージの分類修正
  • マニフェストフェッチの検証と再試行機能の追加
  • @actions/cache を 6.2.0 にアップグレード

pip-install 入力を使用していたワークフローは v7 では動作しなくなるため注意が必要です。


#131087 Support IEEE 754 decimals in TotalOrderIeee754Comparer and fast-path the built-in types

概要

TotalOrderIeee754Comparer<T>がIEEE 754 decimals (Decimal32/Decimal64/Decimal128)に対応し、正しくtotalOrder semanticsを実装するようになりました。また、組み込み型(BFloat16、NFloat、decimal型)に対するtypeof(T)高速パスを追加し、ジェネリック/インターフェースディスパッチのオーバーヘッドを削減します。

変更内容

  • TotalOrderIeee754Comparer.cs: 数値が等しいdecimal cohortメンバー(例: 1.0 vs 1.00)および同一符号ゼロ(指数が異なる場合)に対して、量子指数(unbiased exponent)の比較により正確なtotalOrder順序付けを実装。BFloat16、NFloat、Decimal32/Decimal64/Decimal128向けのtypeof(T)高速パスを追加し、符号-絶対値比較やdecimal専用ヘルパーCompareDecimal<TDecimal, TValue>経由で処理。
  • Decimal32/64/128.cs: 古い「decimalが追加される場合は再検討」TODOコメントを削除。
  • Number.Parsing.cs: 小規模な変更。
  • TotalOrderIeee754ComparerTests.cs: BFloat16およびIEEE 754 decimal型に対する包括的なテスト理論データを追加。decimal高速パスは100万個のランダムDecimal32/Decimal64ビットパターン(NaN/Inf/非正規形を含む)に対してオフラインで検証され、0件の不一致を確認。

パフォーマンスへの影響

高速パス導入により、BFloat16/NFloat/decimal型のアンパック操作が削減。特にdecimal型は従来のジェネリック実装の4回以上のアンパックから最大2回に削減。公開APIの変更なし(内部実装のみ)。

関連Issue

#131087

その他

Copilotのレビューで、テスト内のDecimal64.Parse()/Decimal128.Parse()が文化固有の設定に依存する可能性が指摘されています(例:小数点区切り文字)。不変フォーマットプロバイダーの使用が推奨されています。


#131079 Fix exception check .NET 9

概要

Windows環境でのタール展開テストの不安定性を修正するPR。ファイル型シンボリックリンクがディレクトリを指す場合、Windows buildの種類によってUnauthorizedAccessExceptionまたはIOExceptionのいずれかが発生する可能性があるため、例外チェックを拡大して両方の例外を許容するようにしました。ディレクトリトラバーサル拒否のテスト意図は維持されます。

変更内容

  • src/libraries/System.Formats.Tar/tests/TarFile/TarFile.ExtractToDirectory.File.Tests.cs
    • Windows固有のタール展開テストで、型不一致シンボリックリンク(ファイルシンボリックリンクがディレクトリを指す場合)の例外チェックを修正
    • UnauthorizedAccessExceptionのみでなくIOExceptionも受け入れるよう拡大
    • 異なるWindows buildで異なる例外型が発生する理由を明記するコメント追加

パフォーマンスへの影響

影響なし

関連Issue

#131053

その他

  • リグレッション原因: 同領域での先行変更による
  • リスク: 低
  • 内容: CI テストの失敗を再度有効化し、テストの信頼性を向上させます

#131078 Fix exception check

概要

Windows環境でのTarFile.ExtractToDirectoryテストの例外チェックを修正します。ディレクトリトラバーサルを試みるチェーンシンボリックリンクを含むアーカイブ抽出時に、Windowsのビルド環境によって発生する例外タイプが異なる問題に対応しました。同じ基本的な拒否動作でも、UnauthorizedAccessException(型不一致シンボリックリンク解決時の失敗)またはIOException(ファイルシンボリックリンク既存箇所へのディレクトリ作成失敗)のいずれかが発生する可能性があるため、テストを更新して両方の例外を受け入れるようにしています。

変更内容

  • src/libraries/System.Formats.Tar/tests/TarFile/TarFile.ExtractToDirectory.File.Tests.cs
    • Windows固有のアサーション条件を更新し、UnauthorizedAccessExceptionとIOExceptionの両方を例外として受け入れるよう修正
    • Windowsがシンボリックリンク処理で異なる例外を発生させる理由を説明する詳細コメントを追加

パフォーマンスへの影響

影響なし

関連Issue

#131053

その他

  • リスク度:低
  • テスト修正による信頼性向上:フレーキーなtar関連テストを安定化
  • 以前の変更による回帰を解決

#131067 Update container image digests

概要

ビルド基盤インフラストラクチャで使用されるコンテナイメージのダイジェスト値を自動更新するPRです。mcr.microsoft.com/dotnet-buildtools/prereqsコンテナイメージの複数のダイジェストハッシュが更新されており、ビルド環境の依存関係を最新の状態に保つものです。

変更内容

  • eng/pipelines/common/templates/pipeline-with-resources.yml:26行のコンテナイメージダイジェスト更新
  • eng/pipelines/coreclr/templates/helix-queues-setup.yml:10行のコンテナイメージダイジェスト更新
  • eng/pipelines/installer/helix-queues-setup.yml:4行のコンテナイメージダイジェスト更新
  • eng/pipelines/libraries/helix-queues-setup.yml:23行のコンテナイメージダイジェスト更新

合計43個のコンテナイメージダイジェストが新しいハッシュ値に置き換わっています。

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRは.NET Renovate Botにより自動生成されたもので、定期的なビルド依存関係の更新を目的としています。ビルドパイプラインで使用される前提条件コンテナイメージの更新であり、ランタイムやライブラリのコードそのものには直接の影響はありません。


#130983 Use MSVC_DEBUG_INFORMATION_FORMAT for CoreCLR object libraries

概要

CMake 3.26の最小要件に基づいて、CoreCLRおよびNativeAOTのWindows CMakebuild設定で/Z7コンパイルオプションをMSVC_DEBUG_INFORMATION_FORMAT Embedded target propertyに置き換え。これにより、object librariesにCodeViewデバッグ情報を埋め込み、外部のvc140.pdbへの参照を避けることができます。

変更内容

  • src/coreclr/nativeaot/Runtime/Full/CMakeLists.txt: NativeAOT GC OBJECT librariesのtarget_compile_options(... /Z7)をset_target_properties(... MSVC_DEBUG_INFORMATION_FORMAT Embedded)に置き換え
  • src/coreclr/clrdatadescriptors.cmake: cDAC data descriptor OBJECT libraryで/Z7コンパイルオプションと関連するPDB名設定をMSVC_DEBUG_INFORMATION_FORMAT Embeddedに置き換え

パフォーマンスへの影響

影響なし

関連Issue

#130933

その他

  • 前のPR(#130933)の後続変更
  • CMake 3.25で追加されたMSVC_DEBUG_INFORMATION_FORMATプロパティはリポジトリの最小要件がCMake 3.26に引き上げられたため、使用可能になった
  • cDAC descriptorについて、デバッグ情報がembeddedとなるためCOMPILE_PDB_NAMEの設定は不要になり、削除されている

#130969 Compare full HMAC against full SignatureValue in SignedXml.CheckSignedInfo

  • 作成者: @krwq
  • 作成日時: 2026年07月17日 13:23:39(UTC)
  • マージ日時: 2026年07月22日 10:52:55(UTC)
  • ラベル: area-System.Security

概要

SignedXml.CheckSignedInfo メソッドにおいて、HMAC署名検証時に全体的な比較を行うように修正されました。これは署名値の検証プロセスをより堅牢にするためのセキュリティ関連の変更です。

変更内容

  • System/Security/Cryptography/Xml/SignedXml.cs: CheckSignedInfo メソッド内のHMAC比較ロジックを修正(1行変更)
  • SignedXmlTest.cs: HMAC署名検証に関連する139行のテストケース追加

パフォーマンスへの影響

影響なし

関連Issue

#130969

その他

変更は System.Security.Cryptography.Xml ライブラリの内部実装(CheckSignedInfo メソッド)に対するもので、公開APIの変更ではありません。セキュリティに関連する署名検証ロジックの改善となります。


#130968 Improve perf of attribute duplicate check

  • 作成者: @krwq
  • 作成日時: 2026年07月17日 13:19:49(UTC)
  • マージ日時: 2026年07月22日 10:51:57(UTC)
  • ラベル: area-System.Xml

概要

XML解析時の属性重複チェック処理のパフォーマンスを改善しました。従来のソート+走査方式からHashSet<NodeData>とアトム化された名前比較器を使用した方式に変更し、属性が多いドキュメントでの処理効率を向上させています。また属性読み込みの非線形スケーリング回帰を検出するための性能テストを追加しました。

変更内容

  • XmlTextReaderImpl.cs: 属性重複チェックロジックを再利用可能なHashSetベースに変更、走査閾値定数を調整
  • XmlTextReaderImplHelpers.cs: NodeData向けのAtomizedNameEqualityComparerを新規追加(アトム化名のリファレンスベースのハッシング/等値比較に対応)
  • XPathNodeInfoAtom.cs: GetHashCode()メソッドを更新し、Equals実装とより正確に整合させる
  • AttributeReadingPerformanceTests.cs: 複数のリーダー入口ポイントにおける属性読み込みのスケーリング性能テストを新規追加
  • System.Private.Xml.Tests.csproj: 新規性能テストファイルをプロジェクトに組み込み

パフォーマンスへの影響

改善: ソート+走査方式(O(n log n))からハッシュセット方式(O(n))への変更により、属性が多いXMLドキュメントの解析時間を削減。特に属性数が増加する場合の非線形なパフォーマンス劣化を回避。

具体的なベンチマーク結果は提供されていませんが、性能テストの追加により今後の回帰を検出・防止できるようになります。

関連Issue

なし

その他

  • この変更はSystem.Private.Xml(内部ライブラリ)に限定されており、公開APIへの直接的な影響はありません
  • ハッシング戦略の改善(XPathNodeInfoAtom.GetHashCode())も含まれており、ハッシュコレクション全般のパフォーマンスが向上する可能性があります

#130866 Materialize Vector128<T> as a wasm v128 in the codegen ABI

概要

WebAssembly上でVector128<T>をネイティブなwasm v128値として扱うようにコード生成ABI(Application Binary Interface)を改善しました。従来は128ビットSIMD値がi32(byref ポインタ)として到着していたため、複数のコード生成パスでNYI_WASM_SIMDを発行してインタプリタにフォールバックしていました。本変更により、Vector128<T>はv128プリミティブとして物理値化され、SIMD演算が実際にwasm上で実行可能になります。

変更内容

  • WasmLowering.cs: Vector128<T>をCORINFO_WASM_TYPE_V128にマッピングし、署名文字列に'V'を出力。署名のラウンドトリップ機能を実装
  • targetwasm.cpp: CORINFO_WASM_TYPE_V128をTYP_SIMD16にマッピング
  • codegenwasm.cpp: SIMD パラメータホーミング、SIMD16ローカルフィールド読み込み、間接ストア、呼び出し引数、ローカル読み込みにおける5つのNYI_WASM_SIMDベイルアウトを削除
  • CorInfoImpl.cs: WasmValueType.V128をJIT向けCorInfoWasmTypeロウアリングにプラグイン
  • CompilerTypeSystemContext.Wasm.cs: 'V'署名ライジング用の代表的なv128型キャッシングを追加
  • WasmInterpreterToR2RThunkNode.cs: インタプリタ-to-R2Rサンク内のv128引数物理化サポートを追加
  • R2R テスト: WasmSimdModule.csを新規作成し、パラメータ/戻り値/ローカル/ストア/呼び出し引数フローをVector128<int>で検証。VectorFieldLayoutAlgorithm.csとR2RTestSuites.csも対応更新

パフォーマンスへの影響

影響なし(インタプリタへのフォールバックが削除されるため、実行時のオーバーヘッド削減が期待される。本変更はABI物理化の基盤整備であり、SIMD演算自体の高速化はABI側の準備完了後の将来のPRで実装予定)

関連Issue

なし

その他

  • 本変更はVector128<T>のみに対応。Vector64<T>(ARM64のみ)、Vector256<T>/Vector512<T>(x86/x64のみ)、System.Numericsベクトル型(複数フィールド、byref渡し)は既存の動作を維持し、フォローアップPRで対応予定
  • 'V'署名文字は常に16バイトなため、署名ラウンドトリップに混合幅オフセットの曖昧性なし
  • テストはILCompiler.ReadyToRun.Tests(フィルタWasm)で検証済み(2/2パス)
  • ドラフトPRとして開かれており、CI全体での検証待ち

#130863 Add a spec augment on escaping value type instances based on RefSafetyRulesAttribute

  • 作成者: @jakobbotsch
  • 作成日時: 2026年07月16日 11:26:15(UTC)
  • マージ日時: 2026年07月22日 12:39:05(UTC)
  • ラベル: area-Meta

概要

RefSafetyRulesAttributeに基づく値型インスタンスのエスケープ制限に関するIL妥当性仕様を、ECMA-335追補ドキュメントに追加します。アセンブリレベルでSystem.Runtime.CompilerServices.RefSafetyRulesAttributeを適用することで、値型インスタンスメソッドのthisがエスケープされる場合を制限する新しいオプトイン規則を定義し、安全なボクシング除去などの最適化を可能にします(Version 11+)。

変更内容

  • docs/design/specs/Ecma-335-Augments.md: 新セクション「III.1.7.7」を追加し、RefSafetyRulesAttributeに基づくオプトイン制限を記述
    • 値型インスタンスメソッドのthisエスケープに関するVersion 11+ルールを明記
    • アセンブリレベルのRefSafetyRulesAttribute適用時の動作仕様を定義

パフォーマンスへの影響

仕様定義のため、直接的なパフォーマンス改善・低下の報告はありません。ただし、この仕様に基づいて安全なボクシング除去などの最適化が可能になります。

関連Issue

#130185

その他

  • 主にjkotasによって作成され、小規模な適応が加えられています
  • JITチームおよび関連コントリビューターへのレビュー対象(@dotnet/jit-contrib, @davidwrighton)
  • この変更はECMA-335仕様の追補ドキュメント更新のため、コンパイラ/ランタイムの内部実装仕様を定義するものです

#130825 Update BootJsonData generation to account for runtimeconfig.dev.json

概要

WebAssembly ブートストラップ JSON 生成ロジックを更新し、runtimeconfig.dev.json ファイルのサポートを追加しました。従来は runtimeconfig.json のみを処理していましたが、SDK がデバッグビルドで Hot Reload スイッチを注入する際に使用する dev 設定ファイルを新たに考慮します。非公開ビルド時(!IsPublish)に dev 設定を メイン設定にマージし、dev 値がメイン設定値をオーバーライドします。

変更内容

  • GenerateWasmBootJson.cs: runtimeconfig.json の読み込み後、Path.ChangeExtension() を使用して companion dev config パス(例: App.runtimeconfig.json → App.runtimeconfig.dev.json)を導出。!IsPublish 時に dev config から configProperties をマージし、最終的に result.runtimeConfig を単一で割り当て
  • GenerateWasmBootJsonTests.cs: dev config マージ動作を検証する新規テストを 183 行追加
  • Microsoft.NET.Sdk.WebAssembly.Browser.targets: プロパティ定義を +2/-1 で更新
  • プロジェクトファイル: 必要なアセンブリ参照を追加

パフォーマンスへの影響

影響なし

関連Issue

#130825

その他

  • 変更は WebAssembly Pack タスク(ビルドタイム)の内部実装で、公開 API には影響なし
  • Copilot のレビューコメントで、RuntimeConfigDevJsonPath が未設定の場合にも dev config ファイルが存在していればフォールバック導出することが推奨されており、PR 説明の意図に沿った実装となっている

#130813 [wasm] Model class-init helper as value-returning in the JIT

概要

WebAssembly上の класс初期化JITヘルパー(CORINFO_HELP_INITCLASS / CORINFO_HELP_INITINSTCLASS)をJIT呼び出し側で値を返すタイプ(TYP_I_IMPL)としてモデル化し、wasm call_indirect署名とランタイムディスパッチの整合性を取る変更です。既にcorlib側はこれらのヘルパーをvoid*を返すよう更新されていますが、JIT呼び出し側がTYP_VOIDのままだったため、署名ミスマッチのトラップが発生していました。

変更内容

  • src/coreclr/jit/flowgraph.cpp: fgGetStaticsCCtorHelperでCORINFO_HELP_INITCLASSをwasm上でTYP_I_IMPLとしてモデル化
  • src/coreclr/jit/importer.cpp: impInitClassのランタイムルックアップパスで同様の変更を実施
  • src/coreclr/jit/morph.cpp: fgInitThisClassの3つのジェネリックルックアップケース(THISOBJ、CLASSPARAM、METHODPARAM)で同様の変更を実施
  • src/coreclr/jit/compiler.h: wasm固有ロジック用のサポート追加

すべての変更は#ifdef TARGET_WASMで保護されており、他のターゲットには影響なし。ヘルパー結果はwasm codgenの既存の未使用値dropを通じてプッシュと破棄が行われます。

パフォーマンスへの影響

影響なし(モデリングの修正であり、実行時の動作最適化ではない)

関連Issue

#129622、#130634

その他

重要な依存性: このPRはcorelib側の変更(InitHelpers.csでInitClass / InitInstantiatedClassがvoid*を返すようにする)に依存しており、両者は同時にマージされる必要があります。単独ではJIT側がi32返却をモデル化しても、実際のヘルパーがvoidのままであれば不正な状態になります。

検証: ローカルwasm R2R環境での動作確認により、クラス初期化の署名ミスマッチトラップが解決され、複数テストケース(conv_ovf、127931、indexMinusOneなど)が正常に動作することを確認済みです(従前はexit 1でトラップしていたが、exit 100で正常終了)。


#130762 Add Stub IXCLRDataFunctionTableAccess to cDAC

概要

WinDbgの診断機能を新しいcDAC(Compact Diagnostics Access Component)に移行するため、関数テーブルルックアップ機能用の新しいCOM インターフェース IXCLRDataFunctionTableAccess をスタブ実装として追加します。従来のDAC の OutOfProcessFunctionTableCallbackEx エクスポート関数に依存せず、汎用インターフェースとして設計されています。

変更内容

  • IXCLRData.cs: IXCLRDataProcess3 インターフェースを新規追加し、IXCLRDataFunctionTableAccess をGeneratedComInterfaceとして定義
  • SOSDacImpl.IXCLRDataProcess.cs: SOSDacImpl に IXCLRDataFunctionTableAccess の実装を追加。GetFunctionTable() メソッドは E_NOTIMPL を返すスタブ実装
  • xclrdata.idl: IDL定義に新インターフェースとメソッドを追加(+32行)
  • xclrdata.h: プリビルド ヘッダを更新し、C++およびCスタイルインターフェース定義を追加(+497行)
  • FunctionTableAccessTests.cs: IXCLRDataProcess から IXCLRDataFunctionTableAccess への QueryInterface および スタブメソッドの呼び出しを検証する単体テストを追加(+118行)

パフォーマンスへの影響

影響なし(スタブ実装のため、機能は未実装)

関連Issue

なし

その他

留意事項:

  • 本PRはスタブ実装であり、GetFunctionTable() の実際の処理は今後実装予定
  • IXCLRDataProcess3 が公開インターフェースとなっているため、NuGet パッケージ化時に API 承認要件に留意が必要
  • プリビルド ヘッダ(xclrdata.h)の更新がIDL定義から正しく再生成されていることを確認が必要

#130645 Make cDAC generated IData classes read fields lazily

概要

cDAC(Cross-DAC)のIData<T>ソースジェネレータを改修し、データフィールドの読み込みを遅延評価(最初のプロパティアクセス時)に変更しました。従来の即座評価(コンストラクタ時)から遅延評価に移行することで、ランタイムバージョン間でデータディスクリプタが異なる場合の互換性が向上します。IDataインスタンスは、データディスクリプタに欠落したフィールドがあってもコンストラクタ成功し、実際に読み込む際にのみ失敗します。

変更内容

1. プロパティ宣言にpartial修飾子を追加

  • [Field]、[FieldAddress]、[InstanceDataStart]、[RawOffset]属性を持つすべてのプロパティにpartial修飾子を追加(179ファイル)
  • ジェネレータが自動プロパティの代わりにゲッターボディを生成できるようにするため

2. ジェネレータの遅延読み込み実装

  • 各フィールドに対して、バッキングフィールド + 読み込みフラグを持つ遅延読み込みパーシャルゲッターを生成
  • 最初のアクセス時にターゲットから読み込みしメモ化(キャッシング)
  • オプショナル(T?)フィールド:ディスクリプタに欠落している場合、nullを返す
  • 必須フィールド:読み込み時に失敗(VirtualReadExceptionまたはInvalidOperationException)
  • 検証用に新インターフェースIReadableData.EnsureAllFieldsRead()を追加(全フィールド読み込みを強制)

3. ISHashルックアップの戻り値を可nullable化

  • ISHash.LookupSHashがTEntry?を返すように変更(キーが欠落時はnull)
  • ITraits.Null()センチネルを廃止
  • DynamicILBlobEntryが単純な読み取り専用遅延ビューに簡潔化

4. テスト

  • Microsoft.Diagnostics.DataContractReader.DataGenerator.Tests:35件パス
  • Microsoft.Diagnostics.DataContractReader.Tests:2693件パス、0件失敗

パフォーマンスへの影響

メモリ:遅延評価により、各フィールドに対してバッキングフィールド+読み込みフラグが必要になるため、インスタンスあたりのメモリ使用量が若干増加する可能性があります。

実行速度:構築時の読み込み処理が廃止されるため、IDataインスタンスの構築速度が改善されます。一方、初回フィールドアクセス時のオーバーヘッド(読み込み + メモ化)が生じます。全フィールドへのアクセスを行う場合、全体的なパフォーマンスは同等またはわずかに低下する可能性があります。

メリット:コンストラクタ失敗がなくなるため、部分的に読み取り可能な構造でもIDataインスタンスが生成でき、実際に使用されないフィールドの欠落エラーを回避できます。

関連


#130344 Fix failing symlink tests (10.0)

概要

System.Formats.Tarのシンボリックリンク解決機能における回帰を修正するバックポート。Tar展開時にシンボリックリンク先への経路計算で長さの不整合が発生し、ArgumentOutOfRangeExceptionがスローされていた問題を解決。macOSの/varや/tmpなどのシンボリックリンク先への抽出が機能していなかった。

変更内容

  • TarEntry.cs: FilePathEscapesDirectoryメソッドのシンボリックリンク検出ロジックを改善。論理パスと物理パスの処理を分離し、相対パス計算前のガード処理を追加。シンボリックリンク解決時に常にResolveSymlinkを呼び出すよう簡略化。
  • テストファイル群: 3つのシンボリックリンク関連テスト(TarFile.ExtractToDirectory)の[ActiveIssue(#129227)]属性を削除して再有効化。

パフォーマンスへの影響

影響なし

関連Issue

#130342(元のPR)、#129227(修正対象のリグレッション)

その他

  • リスク: Low
  • 回帰: Yes(新しいTarシンボリックリンク解決機能に起因)
  • 検出方法: 内部で検出
  • テスト: 既に無効化されていたCI テストを再有効化することで検証

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

概要

dotnet/runtime-assets と dotnet/icu からの依存関係を更新するPull Request。テストデータおよびランタイムアセット関連のパッケージを最新版に更新します。

変更内容

eng/Version.Details.props, eng/Version.Details.xml

  • dotnet/runtime-assets からのテストデータパッケージ群を 11.0.0-beta.26309.3 → 11.0.0-beta.26370.1 に更新

    • 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 からの ICU ランタイムトランスポートパッケージを 11.0.0-alpha.1.26281.1 → 11.0.0-alpha.1.26364.1 に更新

    • Microsoft.NETCore.Runtime.ICU.Transport

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

自動化された依存関係更新PR(dotnet-maestro[bot] による)。変更は内部的なテストデータとランタイムアセットに限定されており、公開APIには影響しません。


#129867 [release/10.0] Update Alpine infra images to 3.24

概要

Alpine Linuxベースのインフラストラクチャイメージをバージョン3.23から3.24にアップデートする、release/10.0ブランチへのサービシングポート。ビルドコンテナ、Helixテストの複数プラットフォーム(musl x64/arm32/arm64)の参照を一括更新します。

変更内容

  • パイプライン設定ファイルの更新:4つのパイプラインテンプレートを修正
    • pipeline-with-resources.yml: ビルドコンテナイメージを alpine-3.23-amd64 → alpine-3.24-amd64 に更新
    • coreclr/helix-queues-setup.yml: Helixキュー定義を3つのアーキテクチャ(amd64/arm32v7/arm64v8)について更新
    • installer/helix-queues-setup.yml と libraries/helix-queues-setup.yml: 同様にHelixキュー定義を更新
  • イメージ参照はダイジェストピニングなし(既存のrelease/10.0のスタイルに準拠)
  • helix-platforms.ymlは未修正(release/10.0にAlpineエントリがないため)

パフォーマンスへの影響

影響なし

関連Issue

#129824、dotnet/docker-tools#2142

その他

  • MCRレジストリタグリストに対する直接検証により、全4つのイメージタグ(alpine-3.24-amd64、alpine-3.24-helix-amd64、alpine-3.24-helix-arm32v7、alpine-3.24-helix-arm64v8)の存在を確認済み
  • Alpine 3.24はAlpine 3.23よりもサポート期間が長い(2026年6月リリース、2028年6月EOL)

#128326 Arm64: Improve support for HW_Flag_ReturnsPerElementMask

概要

Arm64 SVE(スカラーベクトル拡張)イントリンシックスで、HW_Flag_ReturnsPerElementMaskフラグを持つノードのサポートを改善します。埋め込みマスクを持つイントリンシックノードをConditionalSelectでラップする際に、op3の定数ノードが適切なマスク型を持つようにします。ConditionalSelect_Predicatesの実装を拡張し、マスク要素のセマンティクスに合わせてコード生成およびエミッタ動作を更新します。

変更内容

  • hwintrinsic.h: IsSveConditionalSelectヘルパーメソッドを追加し、ベクトルおよびプレディケート条件選択の統一的な認識を実現
  • gentree.h/gentree.cpp: GenTree::IsSelectZeroヘルパーを追加し、ベクトル/マスクの条件選択ゼロ検出を統一;gtNewZeroConNodeを拡張してマスク型ゼロ定数を生成
  • hwintrinsiclistarm64sve.h: CreateTrue/FalseMaskイントリンシックをper-element maskリターンとしてマーク;プレディケート選択の包含フラグを更新
  • lowerarmarch.cpp: 条件選択の低化/包含処理を拡張し、IsSelectZeroを使用してマスク型ゼロを検出
  • lsraarm64.cpp: ベクトルとプレディケート条件選択形式を統一的に扱うよう更新
  • hwintrinsiccodegenarm64.cpp: 埋め込みマスク設定と包含チェックをベクトルゼロからセレクトゼロに切り替え
  • hwintrinsicarm64.cpp: SVE False maskをインポート時にgtNewZeroConNode経由で生成;True mask定数フォールディングを更新
  • emitarm64sve.cpp: プレディケートエンコーディングのバイト配置を強制化;スケーラブルオプションのアサーションを調整
  • テストファイル: マスク要素値の検証と期待値の更新

パフォーマンスへの影響

影響なし。この変更はコンパイル時のコード生成ロジック改善であり、実行時パフォーマンスへの直接的な影響は報告されていません。

関連Issue

#128326

その他

  • 内部実装の変更であり、公開APIへの影響なし
  • SVEマスク表現のセマンティクス変更に伴い、マスクゼロ(pfalse)とベクトルゼロの扱いを統一
  • Copilotレビュー時の指摘として、プレディケート変種のConditionalSelectにおいて、op3の高速化パス(IsVectorZero()チェック)がマスク型ゼロには効かないことが識別されており、将来の最適化対象

#116166 Fix building the sanitizer instrumentation and hooking it into the hosts

概要

AddressSanitizer (ASan) インストルメンテーションが Windows/MSVC でビルドおよび動作できない複数の問題を修正します。シンボルエクスポート、呼び出し規約、リンカーフラグの処理を改善し、正常なビルドと動作を確保します。VS 17.14 p7、MSVC 14.44.35207 で検証済み。

変更内容

  • ASan コールバック呼び出し規約: __stdcall から __cdecl に変更し、一貫性と正確性を確保
  • MSVC サニタイザーマクロ簡素化 (src/native/minipal/utils.h): 条件付き dllexport ロジックを削除
  • シンボルエクスポート (src/native/minipal/sanitizer_exports.def): Windows 用の ASan コールバック関数をエクスポートする .def ファイルを新規追加
  • リンカーフラグ調整 (eng/native/configurecompiler.cmake): サニタイザー有効時に /DEPENDENTLOADFLAG:0x800 を無効化(DLL ロード問題を回避)
  • C++ 互換性 (src/native/minipal/sansupport.c): extern "C" リンケージガードを追加
  • インクルード順序修正 (src/coreclr/vm/interpexec.cpp): 標準ライブラリヘッダを内部ヘッダの前に配置
  • NativeAOT サポート (src/coreclr/nativeaot/CMakeLists.txt): ASAN ランタイム DLL のインストール対応
  • corehost 統合 (src/native/corehost/CMakeLists.txt): minipal サブディレクトリを追加してサニタイザーサポートを利用可能化

パフォーマンスへの影響

影響なし

関連Issue

#112378 (元となった PR)

その他

  • 内部実装の修正(AddressSanitizer インストルメンテーションの構築インフラ)
  • 公開 API への破壊的変更なし
  • 新規ファイル: src/native/minipal/sanitizer_exports.def
  • コードクリーンアップ: 複数ファイルで冗長なコードを削除

目次