注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #126927 Make UCO MethodDesc globals DAC-accessible
- #126926 Add
MetadataLoadContext.GetLoadContext(Assembly). - #126923 Add failing ILTrim tests to baseline
- #126920 JIT: Precompute func-app element stride in VN chunks
- #126919 Re-add area-Host and area-System.Runtime.InteropServices labels
- #126917 Improve constant foldings in optAssertionPropGlobal_RelOp
- #126915 Fix x86 async frame generic type resolution in DBI
- #126914 [release/8.0-staging] JIT: fix bug in loop cloning with down-counting loops
- #126913 [release/9.0-staging] JIT: fix bug in loop cloning with down-counting loops
- #126910 Ensure that AVX512_MoveMask and other key mask internal mask intrinsics are hoistable
- #126902 Remove TEB field from Thread, DAC, and cDAC
- #126900 Add AddRegisteredId to SubjectAlternativeNameBuilder
- #126899 Use Checked runtime for cDAC dump tests
- #126898 Merging internal commits for release/8.0
- #126897 Merging internal commits for release/9.0
- #126885 [release/10.0] JIT: fix bug in loop cloning with down-counting loops
- #126875 Bump clr-interpreter timeout and disable swift interop tests on osx-x64
- #126874 Skip flaky FileConfigurationProvider test on .NET Framework
- #126833 Introduce CLR_CMAKE_TARGET_APPLE_MOBILE for iOS/tvOS/MacCatalyst
- #126807 Implement Process.ReadAllText and ReadAllBytes with platform-specific multiplexing
- #126721 Fix GC write barrier when writing async method return into continuation object
- #126717 Fix x86 runtime async frame pointer mismatch in GetSpForDiagnosticReporting
- #126645 JIT: Handle writes to promoted locals in
AliasSet::AddNode - #126637 Add System.Net skill, folder-scoped instructions and pluggable subagent into existing review process
- #126575 Fix JsonException message property type info in class parameterized constructor
- #126514 [Wasm RyuJIT] Fixes for two codegen asserts
- #126469 [wasm][coreclr] Enable passing tests
- #126217 Bump serialize-javascript and @rollup/plugin-terser in /src/native
- #126184 [release/10.0] Source code updates from dotnet/dotnet
- #126131 Bump picomatch in /src/native
- #125673 Skip entry-point trim roots for library outputs
- #125516 [RISC-V] Support displaying GTF_ADDRMODE_NO_CSE flag on GT_CAST
- #125347 JIT: Simplify if-conversion
- #124365 Backport XML documentation for CustomReflectionContext
#126927 Make UCO MethodDesc globals DAC-accessible
- 作成者: @am11
- 作成日時: 2026年04月15日 00:27:35(UTC)
- マージ日時: 2026年04月15日 19:00:36(UTC)
- ラベル: area-VM-coreclr community-contribution
概要
UCO(Unmanaged Code Origin)関連のMethodDesc グローバル変数をDAC(Data Access Component)からアクセス可能にするための変更です。デバッガーのスタックウォーク機能がこれらのグローバル変数に安全にアクセスできるようにするために、dacvars.h に変数の登録を追加し、複数のソースファイルで不要な重複定義を削除しています。
変更内容
- src/coreclr/inc/dacvars.h: UCO関連のMethodDesc グローバル変数をDAC登録(+2行)
- src/coreclr/vm/vars.cpp / vars.hpp: グローバル変数定義の集約(各+2行)
- src/coreclr/debug/daccess/dacdbiimplstackwalk.cpp: DAC実装側でのスタックウォーク処理の改善(+15/-2)
- src/coreclr/debug/di/rsstackwalk.cpp: リモートスタックウォーク実装の更新(+5行)
- src/coreclr/debug/ee/controller.cpp: デバッガーコントローラーの調整(+8/-1)
- src/coreclr/debug/inc/dacdbiinterface.h: DAC/デバッガーインターフェースの定義追加(+1行)
- src/coreclr/vm/assembly.cpp / debugdebugger.cpp / eepolicy.cpp / exceptionhandling.cpp: 重複定義の削除(計-8行)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
本変更は内部実装(デバッガーのDAC機能)に関連するもので、公開APIには影響しません。複数ファイルに散在していたグローバル変数定義を一元化し、DAC経由でのデバッグ情報アクセスの信頼性向上を目指しています。
#126926 Add MetadataLoadContext.GetLoadContext\(Assembly\).
- 作成者: @teo-tsirpanis
- 作成日時: 2026年04月15日 00:08:32(UTC)
- マージ日時: 2026年04月15日 13:30:12(UTC)
- ラベル: area-System.Reflection.Metadata community-contribution
概要
MetadataLoadContextから読み込まれたAssemblyオブジェクトに対して、その元のMetadataLoadContextを取得するための公開API MetadataLoadContext.GetLoadContext(Assembly) を追加します。MLC経由で読み込まれたアセンブリの場合は関連するコンテキストを返し、ランタイム読み込みアセンブリの場合はnullを返します。
変更内容
- MetadataLoadContext.Apis.cs:
GetLoadContext(Assembly)メソッドを実装。RoAssembly.Loaderプロパティを使用して関連するコンテキストを取得します - System.Reflection.MetadataLoadContext.cs (ref): 参照アセンブリに新しいAPIを追加(nullability署名の不正確さについてレビューコメントあり)
- AssemblyTests.cs: MLC読み込みアセンブリでコンテキストが正しく返されること、非MLCアセンブリで
nullが返されることを検証するテストを追加
パフォーマンスへの影響
影響なし
関連Issue
その他
- 参照アセンブリのnullability署名に不正確さがあるとのレビューコメントがあります。実装と一致するように修正が必要な可能性があります
#126923 Add failing ILTrim tests to baseline
- 作成者: @sbomer
- 作成日時: 2026年04月14日 23:47:19(UTC)
- マージ日時: 2026年04月15日 07:24:07(UTC)
- ラベル: area-NativeAOT-coreclr
概要
ILTrim テストのうちメインブランチで失敗するテストケースをベースライン(期待値)に追加するパッチです。PR #123040 の影響を受けたテストをカバーしています。
変更内容
src/coreclr/tools/ILTrim.Tests/ILTrimExpectedFailures.txt: 失敗するテストケース1件をベースラインに追加
パフォーマンスへの影響
影響なし
関連Issue
その他
なし
#126920 JIT: Precompute func-app element stride in VN chunks
- 作成者: @EgorBo
- 作成日時: 2026年04月14日 23:23:15(UTC)
- マージ日時: 2026年04月15日 12:07:12(UTC)
- ラベル: area-CodeGen-coreclr
概要
JITコンパイラのValue Numbering (VN)処理における性能最適化。関数アプリケーション(func-app)VNチャンクのメモリレイアウトにおけるエレメント stride を一度だけコンストラクタで計算・キャッシュし、以降の呼び出しで再計算を避けることで、TP(スループット)を改善します。
変更内容
- valuenum.h:
Chunkクラスにm_funcAppElemSizeメンバーを追加し、func-app VN用のエレメント stride をキャッシュするフィールドを追加(+6/-3) - valuenum.cpp:
- コンストラクタで
m_funcAppElemSizeを初期化 PointerToFuncAppメソッドを修正し、キャッシュされた stride を使用するよう最適化(+11/-5)
- コンストラクタで
パフォーマンスへの影響
改善: PointerToFuncAppはGetVNFuncから呼び出される最頻出VNヘルパー関数(呼び出し箇所約80箇所)および全VN生成パスから呼び出される関数です。毎回のsizeof(VNFunc) + sizeof(ValueNum) * arity計算を削除することで、JIT コンパイル時間(TP)の改善が期待できます。
関連Issue
なし
その他
このPull RequestはGitHub Copilotの支援により作成されました。
#126919 Re-add area-Host and area-System.Runtime.InteropServices labels
- 作成者: @Copilot
- 作成日時: 2026年04月14日 23:20:33(UTC)
- マージ日時: 2026年04月15日 17:35:06(UTC)
- ラベル: area-System.Runtime.InteropServices
概要
area-Hostとarea-System.Runtime.InteropServicesラベルをdotnet/runtimeリポジトリのエリア所有者ドキュメントとポリシーボット自動化から復元する変更です。これらのラベルは誤って削除されていたため、再度追加することで、これらのラベルが付与されたIssueやPRで適切な通知がトリガーされるようにしています。
変更内容
docs/area-owners.md:area-Host(リード: @agocke、オーナー: @elinor-fung)とarea-System.Runtime.InteropServices(リード: @agocke、オーナー: @dotnet/interop-contrib)のエリア行を復元.github/policies/resourceManagement.yml: 両ラベルに対するlabelAddedトリガーエントリとhasLabel通知ブロックを追加し、該当ラベルが付与された際の自動化とサブスクライバー通知を復元
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このPRはドキュメントと自動化ワークフロー設定のメンテナンス変更です。機能的な実装変更や互換性への影響はありません。
#126917 Improve constant foldings in optAssertionPropGlobal_RelOp
- 作成者: @EgorBo
- 作成日時: 2026年04月14日 23:01:13(UTC)
- マージ日時: 2026年04月15日 15:32:49(UTC)
- ラベル: area-CodeGen-coreclr
概要
JIT コンパイラの assertion-propagation における定数畳み込みを改善するPR。値番号(VN)オペランドが現在のIRオペランドと一致しない場合(前の最適化変換が原因)の範囲情報導出を改善しました。これは #126907 のフォローアップ修正です。
変更内容
- src/coreclr/jit/rangecheck.h:
RangeOps::EvalRelopの符号なし型向け制約を緩和。EQ/NE 演算子で負の定数を含む範囲でも評価を許可。 - src/coreclr/jit/assertionprop.cpp:
optAssertionPropGlobal_RelOpにフォールバック処理を追加。VN オペランドが物理的な比較オペランドと異なる場合、オペランドごとの範囲から直接比較範囲を再計算する仕組みを実装。 - src/coreclr/jit/valuenum.cpp: 関連する値番号の処理を調整(詳細は提供情報未記載)。
- src/coreclr/jit/valuenum.h: ヘッダーの定義を微調整。
パフォーマンスへの影響
影響なし(コンパイル時の定数畳み込み精度向上による最適化改善の可能性あり)
関連Issue
その他
この変更は JIT コンパイラの内部実装(ランタイム最適化パス)に限定される破壊的変更ではありません。公開APIへの影響なし。
#126915 Fix x86 async frame generic type resolution in DBI
- 作成者: @tommcdon
- 作成日時: 2026年04月14日 22:20:37(UTC)
- マージ日時: 2026年04月15日 19:55:40(UTC)
- ラベル: area-Diagnostics-coreclr
概要
x86ターゲットにおける非同期フレームのジェネリック型引数トークン読み込みの問題を修正しました。CordbAsyncFrame::LoadGenericArgsがCORDB_ADDRESS(常に8バイト)を使用して読み込んでいたため、x86の4バイトポインタ読み込み時に隣接メモリのゴミデータを取得し、EnumerateTypeParametersがE_INVALIDARGエラーを返していました。SIZE_T(ターゲットのポインタサイズに合致:x86では4バイト、x64では8バイト)に変更することで解決します。
変更内容
- src/coreclr/debug/di/rsthread.cpp:
CordbAsyncFrame::LoadGenericArgsメソッドを修正- ジェネリックトークンを
SIZE_Tとして読み込み、その後CORDB_ADDRESSに拡張するよう変更 CordbJITILFrame::LoadGenericArgsのGetRegisterOrStackValueによる読み込みパターンと一貫性を確保- 修正内容を説明するコメントを追加
- ジェネリックトークンを
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
本修正は内部実装(DBI:Debug Interface)の変更であり、公開APIには影響しません。x86プラットフォームにおける非同期フレームのデバッグ時の型引数解決が正常に機能するようになります。
#126914 [release/8.0-staging] JIT: fix bug in loop cloning with down-counting loops
- 作成者: @github-actions[bot]
- 作成日時: 2026年04月14日 22:08:09(UTC)
- マージ日時: 2026年04月15日 16:09:07(UTC)
- ラベル: Servicing-approved area-CodeGen-coreclr
概要
ループクローニング最適化におけるバグ修正。特定の下向きカウントループで不正な境界チェック省略が発生し、配列の範囲外アクセスによるヒープ破損を引き起こす可能性があった問題を修正。
影響を受けるケース:
for (int i = N; i > 0; i--)
{
a[i] = ...; // N == a.Length の場合、a[N] への範囲外アクセスが発生
}
変更内容
src/coreclr/jit/loopcloning.cpp: ループクローニング時の実行時判定ロジックを修正。下向きカウントループの上界が未知の場合、クローニングされたループ(境界チェック省略版)の実行条件を厳格化。
src/tests/JIT/opt/Cloning/DownCounted.cs: 回帰テストケースを追加。下向きカウントループの複数パターンをカバー。
src/tests/JIT/opt/Cloning/DownCounted.csproj: テストプロジェクト設定。
パフォーマンスへの影響
修正により、一部の下向きカウントループでクローニング最適化(境界チェック省略)の適用条件が厳しくなるため、該当ループで若干の性能低下の可能性あり。ただし、SPMI検査では132メソッドコンテキストで差分が出ても、大部分は冗長ガード削除済みまたは読み取り専用アクセスのため、実務的な影響は限定的。
関連Issue
#126770(オリジナルfixの.NETトランク向けPR)
その他
- 回帰: .NET 7で#67930により導入されたバグ
- リスク評価: 低。修正は実行時判定ロジックの保守的化であり、完全にチェックされたループへのフォールバックを正しく促す
- 顧客影響: 低。通常は
IndexOutOfRangeExceptionがスローされるべき動作に復帰
#126913 [release/9.0-staging] JIT: fix bug in loop cloning with down-counting loops
- 作成者: @github-actions[bot]
- 作成日時: 2026年04月14日 22:07:44(UTC)
- マージ日時: 2026年04月15日 16:09:24(UTC)
- ラベル: Servicing-approved area-CodeGen-coreclr
概要
JITループクローン最適化におけるダウンカウントループ(逆順ループ)のバグ修正。特定の条件下で、配列の範囲外へのアクセスがバウンズチェック省略により許可されてしまい、ヒープ破損につながる問題を解決します。
問題となるループパターン:
for (int i = N; i > 0; i--)
{
a[i] = ...; // i=N時にa[N]へアクセス(範囲外)
}
上記を N == a.Length の条件下で実行すると、本来は IndexOutOfRangeException をスローすべきところが、ヒープを破損させる可能性がありました。
変更内容
- loopcloning.cpp: ランタイムでループクローン実行判定を行うコードを修正。ダウンカウントループの上限値判定ロジックを厳格化し、範囲外アクセスが発生するケースでクローンループの使用を回避するよう改善(3行削除、3行追加)
- DownCounted.cs/csproj: ダウンカウントループのバウンズチェック動作を検証するテストケースを追加(72行)
パフォーマンスへの影響
低リスク。ループクローン最適化の判定条件がより厳格になるため、特定の条件下では最適化が適用されず、バウンズチェック付きループが実行されます。ただしこれは正常な動作のための必要な修正です。SPMI分析では132メソッドコンテキストで差分が確認されていますが、冗長なガード削除またはシーケンシャル読み込みのみが対象です。
関連Issue
#126770(オリジナルの修正PR、main ブランチ向け)
その他
- .NET 7で導入された回帰: #67930で導入されたループクローン最適化の改善が原因
- 顧客報告あり: 実際の顧客から報告された問題
- 本PRについて: release/9.0-staging ブランチへのバックポート(cherry-pick)です
- 修正内容の性質: コンパイラ(JIT)の最適化判定ロジック修正で、公開APIへの影響なし
#126910 Ensure that AVX512_MoveMask and other key mask internal mask intrinsics are hoistable
- 作成者: @tannergooding
- 作成日時: 2026年04月14日 21:24:19(UTC)
- マージ日時: 2026年04月15日 06:59:06(UTC)
- ラベル: area-CodeGen-coreclr
概要
AVX512のマスク関連内部intrinsicsをHW_Category_SpecialからHW_Category_SimpleSIMDに再分類し、HW_Flag_SpecialCodeGenフラグを追加することで、CSE(Common Subexpression Elimination)とループホイスティングを可能にする変更です。これにより、ExtractMostSignificantBitsなどの操作で不要なEVEX命令の使用を避け、より小さく高速なVEX命令の生成が可能になります。
変更内容
- src/coreclr/jit/hwintrinsiclistxarch.h: AVX512マスク関連intrinsicsの分類を変更
AVX512.MoveMaskおよび関連マスク操作intrinsics(AddMask、AndMask、NotMask、XorMaskなど)のカテゴリをHW_Category_SpecialからHW_Category_SimpleSIMDに変更HW_Flag_SpecialCodeGenフラグを追加し、特殊なコード生成ロジックが引き続き適用されることを保証
パフォーマンスへの影響
改善あり。V128/V256のシナリオでCSEが可能な場合、不要なEVEX命令の使用を回避し、より効率的なVEX命令を生成することで、コードサイズの削減と実行速度の向上が期待できます。ただし、具体的なベンチマーク数値は提供されていません。
関連Issue
その他
この変更は内部実装(JIT コンパイラの最適化フレームワーク)に関するものであり、公開APIの変更ではありません。既存の互換性への影響はありません。
#126902 Remove TEB field from Thread, DAC, and cDAC
- 作成者: @max-charlamb
- 作成日時: 2026年04月14日 19:23:49(UTC)
- マージ日時: 2026年04月15日 14:44:41(UTC)
- ラベル: area-Diagnostics-coreclr
概要
Thread Environment Block (TEB) ポインタをDAC/cDACのThreadデータコントラクトから削除します。消費者(SOS、ClrMDなど)はOS thread IDを介してデバッガのネイティブAPIからTEBを取得するよう変更されます。これはバイナリレイアウト互換性を維持しつつ、TEB参照を廃止化する内部実装の整理です。
変更内容
- ランタイム側:
request.cppでスレッドデータのTEBを常にNULLに設定、threads.hのcdac_data<Thread>からTEB削除、datadescriptor.incからThread型記述子のTEBを削除 - cDAC側:
IThread.cs、Thread_1.cs、Thread.csからTEB関連プロパティ・ロジック削除、SOSDacImpl.csでTEB設定をNULLに変更 - ドキュメント・テスト: Thread.md、テスト用モックディスクリプタからTEB記述を削除
- 互換性: バイナリレイアウト互換性は維持(フィールド自体は保持されNULLに設定)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
ブレーキング チェンジ: TEB フィールドはデータコントラクトから削除されましたが、バイナリレイアウトの互換性のためランタイム側では保持されています。SOS・ClrMDなどの外部消費者は既に対応済みの companion PR があります:
- dotnet/diagnostics#5804:SOS が
GetThreadTeb(osThreadId)に切り替え - microsoft/clrmd#1419:ClrMD が
IThreadReader.GetThreadTeb(osThreadId)に切り替え
cDAC テスト: 1586/1586 パス、cdb 検証で !Threads 出力の一致を確認済み。
#126900 Add AddRegisteredId to SubjectAlternativeNameBuilder
- 作成者: @vcsjones
- 作成日時: 2026年04月14日 18:58:47(UTC)
- マージ日時: 2026年04月15日 03:11:48(UTC)
- ラベル: area-System.Security
概要
SubjectAlternativeNameBuilderに Registered ID (OID) を追加するためのAddRegisteredId(string)メソッドを新規実装しました。この変更により、Subject Alternative Name (SAN) の構築時にregisteredIDエントリが必要なシナリオに対応できるようになります。
変更内容
- SubjectAlternativeNameBuilder.cs:
AddRegisteredId(string registeredId)メソッドを追加し、GeneralNameAsn.RegisteredId経由でルーティング - SubjectAltNameBuilderTests.cs: Registered IDのエンコーディング、無効なOID入力の動作をカバーする単体テストを追加(37行)
- System.Security.Cryptography.cs (ref): 新しい
AddRegisteredId(string)メソッドを公開APIサーフェスに公開
パフォーマンスへの影響
影響なし
関連Issue
その他
- 公開API追加のため、参照アセンブリの更新が含まれています
- 引数検証、有効なエンコーディング、無効なOID処理、複数値SANの混在シナリオなど包括的なテストカバレッジが実装されています
#126899 Use Checked runtime for cDAC dump tests
- 作成者: @max-charlamb
- 作成日時: 2026年04月14日 18:55:10(UTC)
- マージ日時: 2026年04月15日 20:18:04(UTC)
- ラベル: area-Diagnostics-cdac
概要
cDAC(Compact Data Access Compact)ダンプテストのビルド構成をRelease から Checked ランタイムに変更します。これにより CLR ランタイムアサーションが有効になり、ダンプテスト実行時に cDAC データディスクリプタおよびコントラクト実装の問題をより早期に検出できます。ライブラリは Release のまま保持されます。
変更内容
- eng/pipelines/runtime-diagnostics.yml: Single-leg ダンプテスト、X-plat ダンプ生成、X-plat ダンプテストの 3 箇所で
-rc releaseを-rc checkedに変更(計 6 行) - src/coreclr/vm/datadescriptor/datadescriptor.inc: 同様に
-rc releaseを-rc checkedに変更(計 6 行)
SOS テストステージは Release のまま変更なし。
パフォーマンスへの影響
Checked ランタイムはアサーション実行によるオーバーヘッドにより、テスト実行時間が増加する可能性があります。ただし本変更はテストパイプラインのみへの影響で、製品ビルドには影響しません。
関連Issue
なし
その他
本 PR は GitHub Copilot の支援により作成されました。テストパイプライン設定の変更のみで、ランタイムコードや公開 API への変更はありません。
#126898 Merging internal commits for release/8.0
- 作成者: @vseanreesermsft
- 作成日時: 2026年04月14日 18:49:42(UTC)
- マージ日時: 2026年04月15日 02:38:10(UTC)
- ラベル: Servicing-approved area-System.Security
概要
.NET 8.0向けのセキュリティ強化リリースです。XML暗号化処理における過度な再帰/危険なトランスフォーム、およびメールアドレス解析におけるCR/LF インジェクションに対する防御を実装しています。
変更内容
System.Security.Cryptography.Xml(セキュリティ強化)
LocalAppContextSwitches.cs:AppContext経由で設定可能な再帰深度制限と危険なトランスフォーム許可オプションを追加EncryptedXml.cs:CipherReferenceトランスフォームに対して安全なアルゴリズムのみをデフォルトで強制(AppContext経由でオプトアウト可能)XmlDecryptionTransform.cs、CanonicalizationDispatcher.cs、EncryptedType.cs、EncryptedData.cs、EncryptedKey.cs、KeyInfo.cs:再帰深度追跡機構を実装し、無限再帰を防止- テストの強化:再帰深度制限の境界動作、深い構造のXML、XSLT攻撃、危険なトランスフォーム検出を検証する新テストを追加
System.Net.Mail(セキュリティ強化)
MailAddressParser.cs、MailAddress.cs、EmailAddressAttribute.cs:メールアドレス解析時にCR/LFを常時拒否(従来のAppContext opt-in動作を削除)- 対応テストを更新し、CR/LF含有アドレスが例外をスローすることを確認
インフラストラクチャ更新
Versions.props:MsQuic Schannel バージョンを2.4.17に更新xplat-setup.yml:Linux ビルドプール イメージを更新
パフォーマンスへの影響
再帰深度チェックが追加されることで、深くネストされたXML構造の処理時に若干のオーバーヘッドが発生します。ただしこれはセキュリティ脆弱性(XMLボム、無限再帰攻撃)を防止するための必須処理です。メールアドレス解析は単一スキャンで実行されるため、パフォーマンス影響は最小限です。
関連Issue
なし
その他
- 破壊的変更あり:
System.Net.MailのCR/LFサニタイゼーションがAppContext opt-inからopt-outに変更されるため、既存コードでCR/LFを許可していた場合は破壊的変更となります - セキュリティ強化:AppContext設定により、
EncryptedXmlの危険なトランスフォームをオプトアウト可能ですが、デフォルトでは安全なアルゴリズムのみを許可 - 新規テストリソース
EncryptedXmlSample4.xmlが追加され、複雑な暗号化シナリオのテストに使用されます
#126897 Merging internal commits for release/9.0
- 作成者: @vseanreesermsft
- 作成日時: 2026年04月14日 18:39:55(UTC)
- マージ日時: 2026年04月15日 02:38:54(UTC)
- ラベル: Servicing-approved area-System.Security
概要
このPRは、release/9.0向けのセキュリティ強化アップデートをマージするもので、以下の3つの主要な変更を含みます:
System.Security.Cryptography.Xmlへの再帰深度制限機能の追加EncryptedXmlのCipherReference処理に対する安全なトランスフォーム実装のホワイトリスト化System.Net.Mailのアドレス解析におけるCR/LFインジェクション対策の強化
変更内容
System.Security.Cryptography.Xml(セキュリティ強化)
LocalAppContextSwitches.cs:再帰深度の上限とトランスフォーム許可設定のAppContext構成を新規追加EncryptedData.cs、EncryptedKey.cs、EncryptedType.cs:LoadXml呼び出しにスレッドローカルな再帰深度トラッキングを実装XmlDecryptionTransform.cs:ネストされた<EncryptedData>要素の再帰処理における深度追跡を追加EncryptedXml.cs:CipherReference処理に安全なトランスフォーム実装のホワイトリスト強制(AppContext設定でオプトアウト可能)CanonicalizationDispatcher.cs:正規化トラバーサルにスレッドローカルな深度制限を追加KeyInfo.cs:LoadXmlに深度トラッキング機構を統合- テストファイル群:深度制限とトランスフォーム制限に関する回帰テストを追加
System.Net.Mail(セキュリティ強化)
MailAddressParser.cs:入力文字列内のCR/LF文字を早期に検出・拒否する一度のスキャン処理を追加- テスト更新:CR/LFを含むアドレスを無効として処理
その他
MicrosoftNativeQuicMsQuicSchannelVersion:2.4.8→2.4.17へアップグレード
パフォーマンスへの影響
- 再帰深度トラッキングはスレッドローカルストレージを使用するため、メモリオーバーヘッドは最小限
- MailAddressParserのCR/LF検査は一度のスキャン実装のため、アドレス解析パフォーマンスへの影響は軽微
- 深度超過時は
CryptographicExceptionが発生し、悪意あるネストXML処理の実行を防止
関連Issue
なし
その他
- 互換性への影響:AppContextスイッチ
AppContext.TryGetSwitch("System.Security.Cryptography.Xml.IgnoreMaxDepth")でトランスフォーム制限と再帰深度制限の無効化が可能(レガシーコード対応用) - セキュリティ性質:XML外部エンティティ(XXE)攻撃やXML爆弾(Billion Laughs)のような深いネスト構造の悪用を防止する堅牢化
- セキュリティ脆弱性CVE情報は提供されていません
#126885 [release/10.0] JIT: fix bug in loop cloning with down-counting loops
- 作成者: @github-actions[bot]
- 作成日時: 2026年04月14日 16:40:51(UTC)
- マージ日時: 2026年04月15日 22:03:15(UTC)
- ラベル: Servicing-approved area-CodeGen-coreclr
概要
JITのループクローニング最適化におけるバグを修正しました。下降カウント(down-counting)ループで境界チェックが不正に省略される問題を解決します。
N がちょうど配列長と等しい場合、for (int i = N; i > 0; i--) 形式のループが配列外アクセス(a[N])を実行し、本来の IndexOutOfRangeException が発生しないまま、ヒープが破損される可能性がありました。
// 問題のコード例
int[] a = new int[10];
for (int i = a.Length; i > 0; i--)
{
a[i] = 0; // a[10] にアクセス → ヒープ破損
}
変更内容
- src/coreclr/jit/loopcloning.cpp: ループクローニング判定ロジックの修正(6行変更)
- 下降カウント終了条件で
>述語を使う場合の境界チェック判定を改善 - ランタイム時に完全な境界チェック付きループを実行すべき条件を正確に判定
- 下降カウント終了条件で
- src/tests/JIT/opt/Cloning/DownCounted.cs: テストケースを追加(72行)
- 問題となるパターンをカバーするリグレッションテスト
- src/tests/JIT/opt/Cloning/DownCounted.csproj: テストプロジェクト設定を新規追加
パフォーマンスへの影響
低リスク。特定のパターン(N が配列長と正確に等しい場合)でクローニング最適化が抑制されるため、わずかなオーバーヘッドが発生する可能性がありますが、SPMI検査では既存コードが境界チェックを冗長に保有していたか、読み取り専用操作のみの場合が大部分でした。
関連Issue
#126770(オリジナルフィックスをrelease/10.0へバックポート)
その他
- .NET 7で導入されたリグレッション: PR #67930 で導入
- 顧客影響度: 低(特定のコード パターンに限定)
- 内部実装の修正: JIT コンパイラのループ最適化判定ロジックの修正であり、公開 API への影響なし
- 互換性への影響: なし(修正前動作は仕様違反のため)
#126875 Bump clr-interpreter timeout and disable swift interop tests on osx-x64
- 作成者: @BrzVlad
- 作成日時: 2026年04月14日 13:50:55(UTC)
- マージ日時: 2026年04月15日 11:55:46(UTC)
- ラベル: area-CodeGen-Interpreter-coreclr
概要
CoreCLR インタープリターのCI/テストインフラストラクチャの調整を行うPRです。インタープリター実行の遅さに対応するためタイムアウト値を拡大し、macOS x64上でのSwift相互運用性テストを無効化しています。
変更内容
- eng/pipelines/coreclr/interpreter.yml: インタープリターパイプラインのタイムアウト値を増加(個別テスト: 10分→20分、テストスイート: 120分→180分)
- src/libraries/sendtohelixhelp.proj:
interpmode3ライブラリシナリオのHelix作業項目タイムアウトを30分→90分に延長 - src/tests/Interop/Swift/Directory.Build.props: Swift相互運用性テストのプラットフォーム/アーキテクチャ非サポート条件を一元化(新規作成)
- src/tests/Interop/CMakeLists.txt: Swift相互運用性ネイティブコンポーネントのビルドをApple ARM64ホストのみに制限
- Swift相互運用性テストプロジェクト群: 個別のプロジェクト定義から一元化された
Directory.Build.propsへの移行のため、重複するプラットフォームゲーティングロジックを削除(8ファイル)
パフォーマンスへの影響
影響なし。本PRはテスト実行時間の増加に対応するためのCI/テストインフラの調整であり、実行時パフォーマンスの変更ではありません。
関連Issue
なし
その他
- Swift相互運用性テストのプラットフォーム制御を分散的な各プロジェクト定義から一元化されたDirectory.Build.propsへ統合することで、保守性を向上させています
- macOS x64ではSwift相互運用性テストがサポートされなくなります(Apple ARM64のみサポート)
#126874 Skip flaky FileConfigurationProvider test on .NET Framework
- 作成者: @svick
- 作成日時: 2026年04月14日 11:52:01(UTC)
- マージ日時: 2026年04月15日 13:49:36(UTC)
- ラベル: area-Extensions-FileSystem
概要
.NET Framework上でのFileSystemWatcher信頼性の問題により、ResolveFileProvider_WithMissingParentDirectory_WatchTokenFiresWhenFileCreatedテストが不安定になっていた問題に対応しています。本PRでは、このテストを.NET Frameworkでスキップし、タイムアウト実装をモダン化してCI失敗を解決します。
根本原因は、I/O競合下で.NET FrameworkのFileSystemWatcherが親ディレクトリ作成イベントを取り落とすため、ChangeTokenが発火せずテストがハングするというものです。.NET上では504回の並列実行で0回の失敗となっており、.NET Framework特有の問題と確認されています。
変更内容
- FileConfigurationProviderTest.cs:
ResolveFileProvider_WithMissingParentDirectory_WatchTokenFiresWhenFileCreatedテストの条件付きスキップを実装。ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotNetFramework))を適用し、.NET Frameworkでのみスキップ。タイムアウト実装をCancellationTokenSourceからTask.WaitAsync(TimeSpan)へ変更し、TaskCreationOptions.RunContinuationsAsynchronouslyをTaskCompletionSourceに追加 - Microsoft.Extensions.Configuration.FileExtensions.Tests.csproj:
Task.WaitAsyncをサポートするため、共有のTaskTimeoutExtensionsポリフィルを追加
パフォーマンスへの影響
影響なし。本変更はテスト信頼性の向上のみを目的とするもので、製品コードへの変更はありません。
関連Issue
その他
- AI/Copilot生成のPRです
- 7件の全CI失敗は
net481-windows-Release-x86環境でのみ発生していることが確認されている - 改善されたタイムアウト実装は、
PhysicalFilesWatcherTests内の類似テストで既に使用されているパターンに統一されています
#126833 Introduce CLR_CMAKE_TARGET_APPLE_MOBILE for iOS/tvOS/MacCatalyst
- 作成者: @steveisok
- 作成日時: 2026年04月13日 13:34:31(UTC)
- マージ日時: 2026年04月15日 18:42:48(UTC)
- ラベル: area-Infrastructure
概要
iOS/tvOS/MacCatalystプラットフォームの共通する制約条件(静的リンク、fork()廃止、ビルドツール廃止、ハイブリッドグローバライゼーション、コンソール信号廃止など)を統一するため、新しい umbrella変数 CLR_CMAKE_TARGET_APPLE_MOBILE を導入しました。これにより、11個のCMakeファイルにおける約30個の重複したプラットフォーム条件判定を削減し、将来的な不整合を防ぎます。また、MacCatalystに対するsendfile除外設定の漏れも修正されています。
変更内容
- configureplatform.cmake:
CLR_CMAKE_TARGET_APPLE_MOBILEの新規定義(iOS/tvOS/MacCatalystのいずれかがターゲット時に設定) - CMake設定ファイル群(11ファイル): 個別のプラットフォーム条件判定(
CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS OR CLR_CMAKE_TARGET_MACCATALYST)をまとめてCLR_CMAKE_TARGET_APPLE_MOBILEに統一 - configure.cmake: iOS/MacCatalyst/tvOSの重複する機能オーバーライド設定を1つのブロックに統合
- プラットフォーム固有の設定は保持:
- configurecompiler.cmake: ターゲット固有のC++定義とコンパイラターゲット
- System.Security.Cryptography.Native.Apple: Swiftプラットフォーム名
- System.Net.Security.Native / corehost: tvOS向けgssapi除外
- System.Native: MacCatalyst向けpal_iossupportversion.m
パフォーマンスへの影響
影響なし(ビルド設定の簡潔化のみで、ランタイム動作に変更なし)
関連Issue
#126550(tvOS向けFEATURE_CORPROFILERが誤って無効化された問題)
その他
このPRにより、PR #126550で発生したtvOS unified-build環境の破損を防止する効果があります。各プラットフォーム固有の実装差分は保持されるため、互換性への懸念はありません。
#126807 Implement Process.ReadAllText and ReadAllBytes with platform-specific multiplexing
- 作成者: @Copilot
- 作成日時: 2026年04月12日 09:31:17(UTC)
- マージ日時: 2026年04月15日 10:13:17(UTC)
- ラベル: area-System.Diagnostics.Process
概要
新しい公開API Process.ReadAllText() と Process.ReadAllBytes() を実装しました。これらのメソッドはプロセスのstdoutとstderrの両方を同時に読み取り、デッドロックを回避するためにプラットフォーム固有の多重化処理(Windowsはオーバーラップド I/O、Unixはpoll(2))を使用します。タイムアウト制御をサポートしており、両方のストリームがリダイレクトされており、かつ非同期モードでアクセスされていないことが要件です。
using Process process = Process.Start(startInfo);
(string stdout, string stderr) = process.ReadAllText(timeout: TimeSpan.FromSeconds(30));
(byte[] stdoutBytes, byte[] stderrBytes) = process.ReadAllBytes();
変更内容
Process.Multiplexing.cs: 公開API
ReadAllText/ReadAllBytes、状態検証、バッファ管理、ハンドル取得の共通ロジックValidateReadAllState: プロセス状態の検証(disposed、リダイレクト確認、非同期/同期モード競合)ReadPipesToBuffers: ファイルハンドル抽出とDangerousAddRef/DangerousReleaseでの安全性確保RentLargerBuffer:ArrayPoolを使用したバッファ拡張(Array.MaxLength上限付き)
Process.Multiplexing.Windows.cs: Windowsの多重化実装
PinnedGCHandle<byte[]>によるバッファピニングNativeOverlapped*とManualResetEventを使用した非同期ReadFileWaitHandle.WaitAnyでstderr優先サービス- タイムアウト時に
CancelIoEx実行
Process.Multiplexing.Unix.cs: Unixの多重化実装
Interop.Sys.Fcntlで非ブロッキングモード設定Interop.Sys.Pollでファイルディスクリプタの準備状態確認ReadNonBlockingヘルパーでEAGAIN処理- EINTR対応とデッドライン再計算
ref/System.Diagnostics.Process.cs: 新規APIの公開サーフェス追加
csproj: 新規ソースファイルの組み込み
ProcessMultiplexingTests.cs: 25テストケース(検証、成功ケース、大容量出力1MB+、タイムアウト、インターリーブ出力など)
パフォーマンスへの影響
- Windows: オーバーラップド I/O による効率的な非同期処理。バッファピニング時のメモリ管理はGCハンドルで最小化
- Unix:
poll(2)による効率的なマルチプレックス化。RandomAccess.Readを避けて不要な内部poll呼び出しを防止 - バッファ成長時に
ArrayPoolを活用し、メモリ割り当てを効率化
関連Issue
その他
- 公開API:
System.Diagnostics.Processクラスの新規メソッド(破壊的変更なし) - 要件: stdout/stderr両方のリダイレクト必須、同期モード(
StreamReadMode.Undefined)のみ
#126721 Fix GC write barrier when writing async method return into continuation object
- 作成者: @BrzVlad
- 作成日時: 2026年04月09日 17:20:22(UTC)
- マージ日時: 2026年04月15日 12:14:04(UTC)
- ラベル: area-CodeGen-Interpreter-coreclr
概要
インタープリター実行時の非同期メソッド戻り値が継続オブジェクトに書き込まれる際、GC書き込みバリアが不正に省略される問題を修正しました。
修正前は、戻り値の型自体がGC参照を含むかのみをチェックしていたため、System.Objectやstringのようにインスタンス内にGCポインタがない参照型の場合に書き込みバリアが追加されていませんでした。修正後は、参照型の戻り値は常にSetObjectReferenceを通じて書き込むようになり、値型のうちGC参照を含む場合のみmemmoveGCRefsを使用します。
変更内容
- src/coreclr/vm/interpexec.cpp: 非同期メソッドの戻り値を継続オブジェクトに格納する際の書き込みロジックを修正
- 非値型の戻り値に対しては
SetObjectReferenceを使用してGC書き込みバリアを確実に追加 - GC参照を含む値型の場合のみ
memmoveGCRefsを使用 - その他の場合は
memcpyNoGCRefsを使用
- 非値型の戻り値に対しては
パフォーマンスへの影響
影響なし(正確性の修正)
関連Issue
その他
System.Text.Json.Tests内でランダムに発生していたGCクラッシュを修正します。インタープリター実行時の非同期メソッドにおいて、適切なGC書き込みバリアが機能しないことが原因でした。
#126717 Fix x86 runtime async frame pointer mismatch in GetSpForDiagnosticReporting
- 作成者: @tommcdon
- 作成日時: 2026年04月09日 16:18:50(UTC)
- マージ日時: 2026年04月15日 17:24:14(UTC)
- ラベル: area-Diagnostics-coreclr
概要
x86でランタイム非同期フレーム(runtime async frames)に対して、デバッガに報告されるスタックポインタを調整するバグ修正。ICorDebugManagedCallback2::Exceptionコールバック(特にDEBUG_EXCEPTION_CATCH_HANDLER_FOUND通知)で、例外ハンドラ検出時にICorDebugFrameがnullになっていた問題を解決します。
変更内容
GetSpForDiagnosticReporting関数を拡張し、オプションでMethodDesc*パラメータを受け取るように変更- x86でランタイム非同期メソッド(
IsAsyncMethod()で判定)の場合、追加の調整(sizeof(TADDR)分)を適用 - 例外/デバッガコールバック箇所で現在の
MethodDesc*をGetSpForDiagnosticReportingに渡すよう更新
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
本修正はx86プラットフォームのみに影響します。x64やその他のプラットフォームでは、新しいpMDパラメータが未使用となるため、UNREFERENCED_PARAMETER(pMD)マクロの追加を検討して、ビルドの警告回避(特に-Wall -Werrorが有効な環境)が推奨されます。
#126645 JIT: Handle writes to promoted locals in AliasSet::AddNode
- 作成者: @jakobbotsch
- 作成日時: 2026年04月08日 14:01:41(UTC)
- マージ日時: 2026年04月15日 08:16:15(UTC)
- ラベル: area-CodeGen-coreclr
概要
JITコンパイラのエイリアス追跡機能を改善し、プロモーション済みローカル変数への書き込みを正しく処理するようにしました。これにより、ARM64での不正なコード生成(#126414で報告)を防ぎます。プロモーション済み構造体フィールドローカルへの書き込みは親のプロモーション済みローカルへの書き込みとして扱われ、親ローカルへの書き込みはすべてのプロモーション済みフィールドローカルへの書き込みとして扱われるようになります。
変更内容
- src/coreclr/jit/sideeffects.cpp:
AliasSet::AddNodeメソッドを拡張(+13行)- プロモーション済みフィールドローカルへの書き込みを親ローカルへの書き込みとして追跡
- 親プロモーション済みローカルへの書き込みを、すべての子フィールドローカルへの書き込みとして追跡
パフォーマンスへの影響
提供されたコード生成差分では、バイトコード長が60から64バイトに増加(+4バイト)、命令数が15から16に増加、PerfScoreが18.50から19.50に増加しています。ただし、これは修正前の不正なコード生成を正確な実装に修正したもので、正確性が優先されます。
関連Issue
その他
- テストケースは提供されていません(修正の再現には無関連な変更の一時的な取り消しが必要なため)
- この修正はARM64プラットフォームで観察された問題を解決します
#126637 Add System.Net skill, folder-scoped instructions and pluggable subagent into existing review process
- 作成者: @T-Gro
- 作成日時: 2026年04月08日 11:20:26(UTC)
- マージ日時: 2026年04月15日 23:45:26(UTC)
- ラベル: NO-MERGE area-System.Net
概要
dotnet/runtime リポジトリの GitHub Copilot による code review プロセスに System.Net に特化したレビュー機能を追加します。25,366件のエキスパートレビューコメント(5,579個の PR から抽出)に基づいており、System.Net の HTTP、Sockets、Security、QUIC、Common、Interop の 6 つのサブエリアに対応した構造化レビューチェックリストとガイダンスを実装しています。
変更内容
.github/agents/system-net-review.md: System.Net 専用レビューエージェント定義(24 のレビュー次元、87 のチェック項目、12 の原則、5 段階ワークフロー)を新規追加.github/skills/system-net-review/SKILL.md: System.Net コーディング実装ガイダンス、決定木、コード例を含み、レビュー時にエージェントへ委譲する skill を新規追加.github/instructions/system-net-{common,http,security,sockets,quic,interop}.instructions.md: 各サブエリア別のフォルダスコープ自動ロード型ガイダンス(6 ファイル)を新規追加.github/skills/code-review/SKILL.md: 既存 code-review skill に pluggable subagent として System.Net レビューを起動するロジックを追加
パフォーマンスへの影響
影響なし(開発プロセス支援ツール実装のため、ランタイムやコンパイラのパフォーマンスには影響しない)
関連Issue
なし
その他
- 本 PR は code review 自動化インフラの拡張であり、公開 API や ランタイム動作に直接の影響はありません。
- System.Net 領域のコード変更時に自動的にこれらのガイダンスが適用されます。
- エキスパートレビューコメント 25,366 件を機械学習パイプラインで処理し、構造化されたチェックリストに変換したデータに基づいています。
#126575 Fix JsonException message property type info in class parameterized constructor
- 作成者: @XeronOwO
- 作成日時: 2026年04月06日 08:20:17(UTC)
- マージ日時: 2026年04月15日 10:45:07(UTC)
- ラベル: area-System.Text.Json community-contribution
概要
パラメータ化されたコンストラクタを持つクラスのデシリアライゼーション失敗時に、JsonExceptionのメッセージに誤った型情報が表示される問題を修正します。修正前は親クラスの型が表示され、修正後は実際に変換に失敗したプロパティの型が正しく表示されるようになります。
// 修正前:ParameterizedNormalClass(string text)でText: {}が渡される場合
// "The JSON value could not be converted to ParameterizedNormalClass..."(誤り)
// 修正後:
// "The JSON value could not be converted to System.String..."(正しい)
変更内容
- ThrowHelper.Serialization.cs:
AddJsonExceptionInformationメソッドの例外メッセージ生成時に、JsonPropertyInfoがnullの場合、state.Current.CtorArgumentState?.JsonParameterInfo?.ParameterTypeから型情報を取得するロジックを追加しました。 - ConstructorTests.Exceptions.cs: パラメータ化されたコンストラクタを持つクラス/レコードの例外メッセージが、宣言型ではなくプロパティ/パラメータ型(
System.String)を報告することを検証する回帰テストを追加しました。 - SourceGeneration.Tests/ConstructorTests.cs: ソースジェネレーション関連のテストケースを追加しました。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この修正はSystem.Text.Jsonライブラリの内部実装(ThrowHelper)の改善であり、パブリックAPIに影響はありません。通常のコンストラクタを持つクラス、すべての構造体、レコード型については既に正しく動作していました。
#126514 [Wasm RyuJIT] Fixes for two codegen asserts
- 作成者: @kg
- 作成日時: 2026年04月03日 20:14:17(UTC)
- マージ日時: 2026年04月15日 00:42:10(UTC)
- ラベル: arch-wasm area-CodeGen-coreclr
概要
WebAssembly RyuJIT コードジェネレータで、構造体ローカル変数のレジスタ型が直接表現できない場合のアサーション失敗を修正します。BitConverter.ToBFloat16 と Vector<T>.op_Multiply で発生していたコードジェン時のアサーション失敗に対応します。
変更内容
- liveness.cpp:
GT_LCL_VARノードのうち、計算済みレジスタ型がTYP_UNDEFかつIsUnusedValue()でマークされている場合(例:LIR内のブロックストア削除後)を処理時に無視するようにしました。 - codegenwasm.cpp: 登録済み構造体ローカル変数の
GT_STORE_LCL_VARで、local.setオペランドサイズを決定する際に構造体レイアウトのレジスタ型を使用するよう修正しました。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この修正は WebAssembly ターゲット(Wasm)の RyuJIT コードジェネレータの内部実装に限定された変更です。ランタイム/コンパイラの内部処理の修正であり、公開APIへの影響はありません。
#126469 [wasm][coreclr] Enable passing tests
- 作成者: @radekdoulik
- 作成日時: 2026年04月02日 13:03:29(UTC)
- マージ日時: 2026年04月15日 13:31:47(UTC)
- ラベル: arch-wasm area-Infrastructure-coreclr
概要
WebAssembly/CoreCLR環境でのテスト実行を改善するPR。browser-wasm/CoreCLR構成に対するテスト除外設定を削除し、以前失敗していた2つのテストスイートの実行を再度有効化します。
変更内容
- src/libraries/tests.proj: browser/CoreCLR向けのテスト除外設定を2行削除
Microsoft.Extensions.Http.Testsの除外を削除(84テストがパス、0失敗)System.Threading.Overlapped.Testsの除外を削除(12テストがパス、0失敗)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- 本PRはCopilot AI生成です
- テスト検証はChrome上でのWasmTestScenarioで実施済みです
- 削除された除外設定は冗長と判定されたものです
#126217 Bump serialize-javascript and @rollup/plugin-terser in /src/native
- 作成者: @dependabot[bot]
- 作成日時: 2026年03月27日 18:36:33(UTC)
- マージ日時: 2026年04月15日 16:26:47(UTC)
- ラベル: area-codeflow javascript dependencies
概要
/src/nativeディレクトリのNode.js依存関係を更新するPRです。serialize-javascriptを6.0.2から7.0.5へ、@rollup/plugin-terserを0.4.4から1.0.0へ更新しており、これらの依存関係は連携して更新される必要があります。
serialize-javascript 7.0.5では、配列風オブジェクトのシリアライゼーション処理の堅牢性向上と、特定のオブジェクト構造におけるCPU使用率の過剰問題が修正されています(GHSA-qj8w-gfj5-8c6v)。
変更内容
src/native/package.json:serialize-javascriptを7.0.5、@rollup/plugin-terserを1.0.0に更新src/native/package-lock.json: 依存関係ロックファイルを更新
パフォーマンスへの影響
serialize-javascript 7.0.5では、特定のオブジェクト構造におけるCPU過剰使用問題が修正されているため、シリアライゼーション処理のパフォーマンスが向上する可能性があります。
関連Issue
なし
その他
- serialize-javascript 7.0.0は破壊的変更としてNode.js v20+が必須となりました
- serialize-javascript 7.0.1ではセキュリティ改善として関数本体のサニタイズ処理が追加されています
- serialize-javascript 7.0.3ではCVE-2020-7660に対応し、RegExp.flagsおよびDate.prototype.toISOStringの問題が修正されています
- @rollup/plugin-terser 1.0.0は破壊的変更を含み、serialize-javascript v7へのアップグレードとNode.js v20への対応を伴います
#126184 [release/10.0] Source code updates from dotnet/dotnet
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年03月27日 04:53:04(UTC)
- マージ日時: 2026年04月15日 00:29:15(UTC)
- ラベル: Servicing-approved area-codeflow
概要
dotnet/dotnetリポジトリからの定期的なコードフロー更新です。主にビルドツール、コンパイラ、ランタイム関連の依存パッケージが更新されています。このPRはVMR(Virtual Monorepo)からのソースコード変更と依存関係の更新を含みます。
変更内容
依存パッケージの更新:
- Microsoft.CodeAnalysis関連(5.0.0-2.26173.116 → 5.0.0-2.26213.115)
- Microsoft.DotNet.Arcade.Sdk および他のビルドツール関連パッケージ(10.0.0-beta版)
- Microsoft.NET.Sdk.IL、Microsoft.NETCore.App.Ref、System.Reflection.Metadata、System.Text.Json(10.0.6 → 10.0.7)
- NuGet関連パッケージ(7.0.2-rc.17416 → 7.0.2-rc.21415)
- System.CommandLine(2.0.6 → 2.0.7)
- WebAssembly Node Runtime Transport パッケージの複数プラットフォーム版
ビルドスクリプト/テンプレートの変更: SBOM生成、コンポーネントガバナンス、パイプラインアーティファクト公開関連のスクリプトと設定ファイルが更新されています
バージョンファイルの更新: eng/Version.Details.props、eng/Version.Details.xml、eng/Versions.props が依存バージョンの変更に対応して更新されています
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- このPRは自動化されたコードフロー更新(dotnet-maestro[bot])です
- 対象ブランチはrelease/10.0です
- VMRコミット: 5d23756b884483995432a21829fe65466b19e948(2026年4月14日)
- 複数のリポジトリ(arcade、aspnetcore、efcore、fsharp、roslyn、runtime、sdk、winforms等)からの関連変更が含まれています
#126131 Bump picomatch in /src/native
- 作成者: @dependabot[bot]
- 作成日時: 2026年03月25日 22:40:17(UTC)
- マージ日時: 2026年04月15日 23:40:09(UTC)
- ラベル: area-codeflow javascript dependencies
概要
dotnet/runtimeのネイティブビルド依存関係であるpicomatchをセキュリティ脆弱性修正のため更新します。picomatch 4.0.3→4.0.4、および2.3.1→2.3.2へ更新され、これらの依存関係は相互依存のため一緒に更新されました。
変更内容
src/native/package-lock.json: picomatchおよび関連依存関係のバージョン更新(12行変更)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
セキュリティ脆弱性修正(重要度:高)
- CVE-2026-33671: 修正対応済み
- CVE-2026-33672: 修正対応済み
本PRはセキュリティ関連の脆弱性修正を含むバージョン更新です。ネイティブビルドプロセス(/src/native)で使用されるファイルグロビング機能の安全性向上が目的です。
#125673 Skip entry-point trim roots for library outputs
- 作成者: @Copilot
- 作成日時: 2026年03月17日 19:54:52(UTC)
- マージ日時: 2026年04月15日 02:16:06(UTC)
- ラベル: linkable-framework area-Tools-ILLink
概要
トリミングされた自己完結型ライブラリ形式のアプリ公開時に、SDKが中間アセンブリを常にRootMode="EntryPoint"でルート化することでIL1034エラーが発生する問題を修正します。ライブラリプロジェクト(OutputType=Library)ではエントリーポイントルートを指定しないようにターゲットを更新しました。
<ItemGroup>
<TrimmerRootAssembly
Include="@(IntermediateAssembly->'%(Filename)')"
RootMode="EntryPoint"
Condition="'$(OutputType)' != 'Library'" />
</ItemGroup>
変更内容
- src/tools/illink/src/ILLink.Tasks/build/Microsoft.NET.ILLink.targets
TrimmerRootAssemblyアイテムにCondition="'$(OutputType)' != 'Library'"を追加Exeプロジェクトは既存動作を維持(エントリーポイントでのルート化)Libraryプロジェクトはエントリーポイントルートを指定しないようになり、エントリーポイント不在でのIL1034エラーを回避
パフォーマンスへの影響
影響なし
関連Issue
その他
- Xamarin Android など、エントリーポイント(
static void Main())を持たないライブラリ形式のアプリに対応します - 変更は内部のMSBuildターゲット修正で、公開APIへの影響はありません
- テスト検証済み(ILLink.Tasks.Tests)
#125516 [RISC-V] Support displaying GTF_ADDRMODE_NO_CSE flag on GT_CAST
- 作成者: @namu-lee
- 作成日時: 2026年03月13日 09:53:48(UTC)
- マージ日時: 2026年04月15日 09:02:45(UTC)
- ラベル: area-CodeGen-coreclr community-contribution
概要
RISC-V環境でJITコンパイラのツリーダンプ表示を改善し、GT_CASTノードに対してGTF_ADDRMODE_NO_CSEフラグを表示できるようにする変更です。デバッグ時にアドレスモード最適化の詳細を確認しやすくなります。
変更前:CAST long <- uint と表示
変更後:CAST long <- uint に N フラグを追加して表示
変更内容
- src/coreclr/jit/gentree.cpp
Compiler::gtDispNodeメソッドのフラグ表示ロジックを更新- 既存の
GenTree::IsPartOfAddressMode()ヘルパーメソッドを活用して、アドレスモード関連の「No CSE」マーキングを判定 GT_ADD/GT_MUL/GT_LSHに加えてGT_CASTも対象に含めるよう拡張- インライン演算子チェックをリファクタリングして共通ロジックに統一(コード削減:-12行)
パフォーマンスへの影響
影響なし(デバッグ表示のみの変更)
関連Issue
#84834の一部
その他
- #122088の後続PR
- 内部実装(JITコンパイラのデバッグ出力機能)の改善で、公開APIへの影響なし
- アドレスモード最適化パターンの診断に役立つ変更
#125347 JIT: Simplify if-conversion
- 作成者: @BoyBaykiller
- 作成日時: 2026年03月09日 20:37:34(UTC)
- マージ日時: 2026年04月15日 08:59:39(UTC)
- ラベル: area-CodeGen-coreclr community-contribution
概要
JIT のif-conversion 処理を簡略化するゼロ差分変更。Then/Else パスに空のブロックやチェーンされたブロックが存在しないという前提に基づいて、複数ブロックの流れ追跡を単一の直接フロー確認に統合します。
変更内容
- src/coreclr/jit/ifconversion.cpp: Then/Else チェーンの有界歩行を単一の
IfConvertCheckFlow()チェックに置き換え(+111/-321)- ステートメント検証を単一ブロック(NOP を無視)に対して実行するよう簡略化
- デバッグダンプとブロック削除を特定された Then/Else ブロックのみをターゲットに簡略化
パフォーマンスへの影響
ゼロ差分変更のため、コンパイル時間およびランタイムパフォーマンスへの影響はありません。ただし、実装の簡略化により JIT コンパイル効率が若干向上する可能性があります。
関連Issue
その他
この変更は既存の if-conversion ロジックの機能を保持しながら、コードの複雑性を削減することを目的とした内部実装の最適化です。公開 API への影響はありません。
#124365 Backport XML documentation for CustomReflectionContext
- 作成者: @Copilot
- 作成日時: 2026年02月13日 01:04:14(UTC)
- マージ日時: 2026年04月15日 02:42:21(UTC)
- ラベル: area-System.Reflection
概要
CustomReflectionContext クラスとその全公開/保護メンバーに対して包括的なXML ドキュメンテーションを追加し、IntelliSense サポートを提供するバックポート PR です。dotnet-api-docs から runtime リポジトリへのドキュメンテーション追加であり、ランタイム動作には影響なし。
変更内容
- CustomReflectionContext.cs:
CustomReflectionContextクラスおよび全メンバー(コンストラクタ、MapAssembly、MapType、GetCustomAttributesオーバーロード、AddProperties、CreatePropertyオーバーロード)にXML ドキュメントを追加- クラスレベル: サマリーと簡潔な remarks(外部ドキュメントへのリンク付き)
- メンバーレベル: サマリー、param/return ドキュメント、簡潔な contextual remarks
- System.Reflection.Context.csproj: ドキュメンテーション生成設定の変更(1行削除)
- Ref アセンブリにはドキュメント追加なし(確立されたガイドラインに準拠)
パフォーマンスへの影響
影響なし
関連Issue
その他
- テスト状況: netstandard2.1、net10.0 を含む全ターゲットフレームワークでビルド成功、ドキュメント生成エラーなし
- リスク: 最小限。ドキュメント専用変更でランタイムへの影響なし
- 注記: netstandard2.0 ターゲット使用時、ref アセンブリからの自動生成スタブにはドキュメントが含まれない制限あり。この課題の解決策は保守者により検討中