Pull Request on 2026年05月26日

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

注意点

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



#128587 JIT: fix overlap check in store coalescing

概要

JIT コンパイラのストア合成(store coalescing)機能における重複チェック(overlap check)ロジックを修正しました。新しいストアが古いストアと完全に重複することを確保する条件を改善しています。

変更内容

  • src/coreclr/jit/lower.cpp: ストア合成の重複チェックロジックを修正(2行追加、1行削除)
  • src/tests/async/regression/128566.cs: リグレッションテストケースを追加(50行)
  • src/tests/async/regression/128566.csproj: テストプロジェクト設定を追加(5行)

パフォーマンスへの影響

影響なし。このPRは正確性の修正であり、パフォーマンスの変更ではありません。

関連Issue

#128566

その他

変更は JIT の最適化パス(lower.cpp)における限定的で慎重な修正です。不正な重複チェックがストア合成時に誤った最適化につながるバグを修正しています。


#128582 Move ReSizeNoThrow to header and remove used attr

概要

ReSizeNoThrow関数をヘッダファイルにインライン化し、実装ファイルから削除するリファクタリング。内部実装の最適化を目的とした変更です。

変更内容

  • src/coreclr/inc/corhlprpriv.cpp: ReSizeNoThrowの実装を削除(-56行)
  • src/coreclr/inc/corhlprpriv.h: ReSizeNoThrowをヘッダファイルにインライン実装として追加(+54行)、既存コードを6行削減(-6行)

パフォーマンスへの影響

関数をインライン化することで、関数呼び出しのオーバーヘッドを削減する可能性があります。

関連Issue

なし

その他

このPRは内部実装の整理で、公開APIへの影響はありません。


#128573 JIT: Defer fgSetOptions until after 2nd-pass EH removal

概要

JITコンパイラのパイプライン順序を調整し、fgSetOptions()(fully-interruptible GCやフレームポインタ要件などのコード生成選択をコミットする)を、空のEH領域削除の第2パスが完了した後に実行するように変更しました。これにより、不要なEH領域が削除されてからコード生成オプションが最終決定されるようになります。

変更内容

  • src/coreclr/jit/compiler.cpp: fgSetOptions()の呼び出しをpost-morph初期段階から削除し、第2パス空EH削除およびpost-morph フロー作業完了後、MDアレイmorphing前に追加(+6/-3)

パフォーマンスへの影響

影響なし(最適化の改善により、より効率的なコード生成が期待される可能性がありますが、具体的なベンチマーク数値は提供されていません)

関連Issue

なし

その他

この変更は内部的なJITコンパイラ最適化パイプラインの改善であり、公開APIへの影響はありません。EH(例外処理)領域が削除された場合に、過度に厳しいコード生成オプション(例:fully-interruptible GC)が不要に設定されるのを防ぐことが目的です。


#128572 [cDAC] Implement IsExceptionObject for cDAC

  • 作成者: @barosiak
  • 作成日時: 2026年05月25日 23:46:10(UTC)
  • マージ日時: 2026年05月26日 01:33:35(UTC)
  • ラベル: area-Diagnostics-cdac

概要

cDAC(managed Debugger Access Component)のIDacDbiInterface.IsExceptionObjectメソッドを実装します。対象プロセスのグローバルExceptionMethodTableを読み取り、IRuntimeTypeSystemとIObjectコントラクトを使用してオブジェクトのMethodTable階層を走査し、例外型かどうかを判定します。DEBUG構成では従来のDAC実装との検証も含まれます。

変更内容

  • DacDbiImpl.cs: IsExceptionObjectメソッドを実装。ExceptionMethodTableグローバルを読み取り、親MethodTableチェーンを走査して例外型の判定を実施
  • DacDbiImplTests.cs: パラメータ化されたユニットテストを追加。完全一致、派生型、非例外型ケースをサポートアーキテクチャ全体でカバー

パフォーマンスへの影響

影響なし

関連Issue

#128572

その他

  • 実装はIRuntimeTypeSystemとIObjectコントラクトベースの設計であり、内部API(Legacy DAC互換レイヤー)の変更です
  • DEBUG構成でのみ従来DAC実装との検証が行われます
  • テストはアーキテクチャ間での一貫性を確認しています

#128571 [cDAC] Fix ARM32 thumb-bit bug in GetFuncletStartAddress

概要

ARM32プラットフォームにおいて、GetFuncletStartAddressがThumbビットを正しく処理していなかった問題を修正します。#128154以降、GetStartAddressはThumbビットを削除してタグ付けされていますが、GetFuncletStartAddressがこれに対応していなかったため、ARM32上のすべてのR2Rメソッドが不正にFuncletと判定されていました。

変更内容

  • ExecutionManagerCore.cs: GetFuncletStartAddress内の計算結果に対してCodePointerUtils.AddressFromCodePointerを適用し、ARM32のThumbビットを削除するように修正
  • ExecutionManager.md: ドキュメント更新

パフォーマンスへの影響

影響なし(バグ修正のため、むしろ不正な例外処理による無駄な呼び出しが削減される)

関連Issue

#128292、#128154

その他

  • 影響範囲: ARM32プラットフォームのR2Rメソッドのスタックウォーク診断(cdac/runtime-diagnostics)
  • 破壊的変更: なし(内部実装の修正)
  • 検証状況: cdac Contracts構築完了、ExecutionManagerのテスト285/285合格
  • 原因: ARM32とARM64/x64でThumbビット処理の一貫性が欠落していた。IsFuncletの比較処理でGetStartAddressとGetFuncletStartAddressの戻り値に齟齬が生じ、全メソッドが誤ってFuncletと判定されていた

#128563 Validate Process.WaitForExit(int) milliseconds parameter

概要

Process.WaitForExit(int milliseconds) のパラメータ検証が不足していた問題を修正しました。Windows では不正な値が WaitHandle.WaitOne に伝播して誤った ParamName の ArgumentOutOfRangeException が発生し、Unix では負の値(例:-2)が暗黙的に WaitForExit(0) として動作していました。ArgumentOutOfRangeException.ThrowIfLessThan(milliseconds, Timeout.Infinite) を追加することで、全プラットフォーム間で一貫した検証動作を実現します。

// すべてのプラットフォームで ArgumentOutOfRangeException をスロー
process.WaitForExit(-2);  // throws
process.WaitForExit(-1);  // OK (Timeout.Infinite)
process.WaitForExit(0);   // OK (poll)

変更内容

  • src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.cs: WaitForExit(int) の先頭に ThrowIfLessThan(milliseconds, Timeout.Infinite) を追加。Timeout.Infinite より小さい値(-1未満)で ArgumentOutOfRangeException をスロー
  • src/libraries/System.Diagnostics.Process/tests/ProcessTests.cs: 無効な負の millisecond 値(-2, -10, int.MinValue)のテストケースを追加。テストクリーンアップを改善し、finally ブロックで process.Kill() を呼び出して確実にプロセスを終了

パフォーマンスへの影響

影響なし

関連Issue

#128563

その他

この変更により、WaitForExit(int) は既に TimeSpan オーバーロードで実装されていた検証と一貫した動作を実現します。Timeout.Infinite (-1) は有効な値として許可されます。


#128559 JIT: Tail merge async suspensions

概要

async メソッドの JIT コンパイル時に、複数の先行ブロックが同じ非同期呼び出しで終了して join する場合、サスペンション/レジューメ状態を tail merge(統合)する最適化を追加します。これにより、重複するサスペンションコードを削除し、コードサイズを削減します。

変更内容

  • src/coreclr/jit/gentree.h/.cpp: ローカル変数の比較用ヘルパー GenTreeLclVarCommon::EqualsLocal を追加
  • src/coreclr/jit/async.h/.cpp:
    • ContinuationLayoutBuilder::Equals メソッドを追加してレイアウト比較を実装
    • AsyncTransformation に既存の互換性のあるサスペンション/レジューメ状態を検出・再利用する機能を追加
    • FillInDataOnSuspension の署名を更新(未使用パラメータ call を削除)
  • src/coreclr/jit/jitmetadatalist.h: メタデータリスト更新

パフォーマンスへの影響

コードサイズ削減: 提供されたサンプルでは、async メソッドのコードが524バイトから448バイト(-14.5%)に削減されました。NativeAOT テストでは全体的にコードサイズが -0.51% ~ -0.005% 改善されています。特に System.Text.Json.SourceGeneration テスト実行ファイルで -627KB の削減が確認されています。

関連Issue

#128258

その他

内部実装の JIT 最適化(ランタイムコンパイラレベル)であり、公開 API への影響はありません。

提供されたサンプルコードでは、true/false 分岐の両方が同じ Bar()/Baz() 非同期呼び出しを行い、その後 join する場合、重複していたサスペンション初期化コード(RWD16 セクション)が削除されて統合されました。


#128552 [browser] fix advanced sample

概要

WebAssembly browser-advanced サンプルを現在のランタイム/モジュール設定期待値と静的Webアセット処理に合わせるための修正です。サンプルがツリー内WebAssemblyビルド下で正しく実行できるようにするための変更です。

変更内容

  • wwwroot/main.js: Emscriptenライフサイクルフック設定(preInit、preRun、postRun)をスカラー形式からアレイ形式に変更
  • Wasm.Advanced.Sample.csproj:
    • _ServeHeaders設定から冗長なTiming-Allow-Originヘッダーを削除
    • advanced-sample.lib.module.jsに対するStaticWebAssetFingerprintPatternエントリを追加

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

これはWebAssembly サンプルコードの修正であり、ランタイムコア機能への影響はありません。Emscriptenとの互換性を改善し、静的Webアセット管理を最適化する変更です。


#128534 Implementing GetStackParameterSize API in DacDbi CDAC

  • 作成者: @Copilot
  • 作成日時: 2026年05月24日 05:56:32(UTC)
  • マージ日時: 2026年05月26日 19:34:37(UTC)
  • ラベル: area-Diagnostics-cdac

概要

cDAC(Component Debugger Access Compliance)の一部として、IDacDbiInterface::GetStackParameterSize API のマネージド実装を追加するPRです。ExecutionManager コントラクトを通じて、コードブロックのスタックパラメータサイズを取得する機能を実装し、DEBUG時にはレガシーDAC検証も行います。

変更内容

  • DacDbiImpl.cs: GetStackParameterSize メソッドの実装。ExecutionManager コントラクト経由で取得し、DEBUG時にレガシーDAC結果との検証を実施
  • IExecutionManager.cs: 新しいGetStackParameterSize API を公開コントラクトインターフェースに追加
  • ExecutionManagerCore.cs: x86 GC情報からスタックパラメータサイズを計算するコア実装(18行追加)
  • ExecutionManager_1.cs/ExecutionManager_2.cs: 各バージョンでコア実装への転送処理を追加
  • ExecutionManager.md: 新API の仕様と意図をドキュメント化

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

本変更は内部実装(cDAC/DacDbi)の拡張であり、公開APIに対する互換性への影響はありません。レガシーDAC との互換性維持のための検証ロジックが DEBUG ビルドに含まれており、本番環境での動作検証の堅牢性を確保しています。


#128532 JIT: generalize cloning conditions slightly

概要

JITコンパイラのループクローニング機能を一般化し、ループ解析の適用範囲を拡大します。主な改善は:

  1. ループ増分命令の検出をより柔軟に(テスト直前に限定しない)
  2. ゼロトリップガード条件を動的に生成し、実行保証がない場合でもループクローニングを適用可能に

変更内容

  • compiler.h: NaturalLoopIterInfo構造体を拡張し、NeedsZeroTripGuardフラグとallowMissingBaseCaseパラメータを追加
  • flowgraph.cpp: AnalyzeIterationメソッドにallowMissingBaseCaseモードを実装。基本ケースの証明が不可でも、シンボリックガード条件で表現可能な場合はNeedsZeroTripGuardを設定
  • loopcloning.cpp: ゼロトリップガード条件の発行ロジックを追加し、クローニング時に高速パスを保護
  • optimizer.cpp: optExtractTestIncrメソッドをループテストからの逆方向スキャンに変更し、増分命令の位置要件を緩和

パフォーマンスへの影響

ループ最適化の適用範囲が拡大されることで、より多くのループで高速化機会が生まれる可能性があります。ただし、ゼロトリップガード条件の追加は微細なオーバーヘッドを導入する可能性があります。具体的なベンチマーク数値は提供されていません。

関連Issue

なし

その他

この変更はJITコンパイラの内部最適化パス(loop cloning)に限定された内部実装の改善であり、公開APIへの影響はありません。


#128522 Make O1K_LCLVAR local assertprop only

  • 作成者: @EgorBo
  • 作成日時: 2026年05月23日 14:13:48(UTC)
  • マージ日時: 2026年05月26日 17:15:35(UTC)
  • ラベル: area-CodeGen-coreclr

概要

JIT コンパイラのアサーション伝播(Assertion Propagation)ロジックを改善し、O1K_LCLVAR をローカルアサーション伝播専用に制限し、グローバルアサーション伝播では VN ベースのオペランド(O1K_VN など)を使用するようにしました。これにより SpanHelpers.SequenceEqual などの定数フォールディングが より積極的に適用され、一部のコードパターンでループアンローリングが改善されます。

変更内容

  • src/coreclr/jit/compiler.h: O1K_LCLVAR をローカル専用アサーションプロパティに強制する不変式を追加。グローバル定数アサーション生成時に O1K_VN を設定。AssertionDscOp2::IsConstant() メソッドを追加してアサーション候補のフィルタリングを精密化。
  • src/coreclr/jit/assertionprop.cpp: O1K_LCLVAR のローカル性を検証するデバッグ不変式チェックを追加。VN ベースの SequenceEqual フォールディングロジックと lclvar アサーションフィルタリングを調整。

パフォーマンスへの影響

改善例: 定数フォールディングにより SequenceEqual 呼び出しが直列化・アンローリングされ、より効率的な SIMD コード生成が可能に(例: vmovups/vpxord による直接比較)。ただし PerfScore メトリクスは呼び出し削減を正確に評価していないため、サイズと PerfScore は若干増加傾向を示すものの、実際のパフォーマンスは改善される可能性があります。

関連Issue

なし

その他

  • PR 作成者の注釈: 現在の PerfScore 計算では関数呼び出しの実装コストを十分に考慮していないため、この改善が純粋な退行と見なされている点が課題。
  • 内部実装の改善であり、公開 API への影響なし。

#128521 Help ensure we get the smallest encoding for commutative instructions

概要

VEX 2バイトエンコーディングにおける制約を活用して、可換命令のオペランドを動的に入れ替え、より小さいエンコーディングを優先的に生成する最適化を実装しました。VEX 2バイトエンコーディングではREX.Rはオンオフ可能ですがREX.Bはオフである必要があるため、op1は拡張レジスタ[XMM0, XMM15]をエンコード可能ですがop2は[XMM0, XMM7]のみに制限されます。可換命令でこのシナリオに該当する場合、オペランドを入れ替えることで2バイトエンコーディングを実現します。

// 最適化により以下のように変換
// Before: vpand xmm3, xmm3, xmm8  (size=5, 3バイト VEX)
// After:  vpand xmm3, xmm8, xmm3  (size=4, 2バイト VEX)

変更内容

  • instr.h: insFlags列挙型にINS_Flags_IsCommutativeフラグを追加(内部実装)
  • instrsxarch.h: VEX/EVEX SIMD命令群に可換フラグを設定
  • emitxarch.h: emitter::IsAvxCommutativeヘルパーメソッドを宣言(内部実装)
  • emitxarch.cpp: IsAvxCommutativeヘルパーを実装し、emitIns_SIMD_R_R_R内でオペランド入れ替え処理を追加
  • codegenxarch.cpp: 関連する追加実装(+21行)

パフォーマンスへの影響

コード生成サイズの削減。可換SIMD命令でいずれかのオペランドのみが拡張レジスタの場合、VEX 3バイトエンコーディング(5バイト命令)から2バイトエンコーディング(4バイト命令)への変更により1バイト削減。メモリフットプリント削減による間接的なパフォーマンス向上が期待されます。

関連Issue

なし

その他

  • 本PR は比較命令など一部の可換命令については対応していません(比較内容の入れ替えが必要なため)
  • 変更は内部実装レベルであり、公開APIへの影響なし
  • 両オペランドが非拡張またはいずれかが拡張レジスタの場合は2バイトエンコーディングが保証されます

#128428 Pass null to setBoundaries if the il to native map is empty

概要

CoreCLR インタープリタのデバッグ情報ハンドオフにおいて、IL-to-native オフセットマップが空の場合に null ポインタを ICorJitInfo::setBoundaries に渡すように修正しました。事前割り当てされたバッファを常に使用するのではなく、マップエントリが生成されない場合は null を渡すことで、ランタイムのアサーション (iOffsetMapping == 0) == (pOffsetMapping == 0) の失敗を解決します。

単純なメソッド(例:コンストラクタ呼び出しと即座の return)でマップが空になる場合があります。

変更内容

  • src/coreclr/interpreter/compiler.cpp: IL-to-native マップが空の場合(m_ILToNativeMapSize == 0)に、事前割り当てされたバッファを解放し、ポインタを null に設定してから setBoundaries を呼び出すように修正(+10/-1)

パフォーマンスへの影響

影響なし(デバッグ情報ハンドオフの修正のため、パフォーマンスへの直接的な影響はありません)

関連Issue

#127663

回帰の原因:#127469

その他

この修正はアサーション失敗を引き起こしていた不正な状態(null でないポインタと size 0 の組み合わせ)を排除します。ランタイムの要件に従い、マップが空の場合は pointer と size の両方がゼロの状態(null ポインタ)である必要があります。


#128382 [Wasm RyuJit] emit virtual IP ranges in the unwind info

概要

WebAssembly RyuJIT コンパイラのアンワインド情報(unwind info)を拡張し、各funcletのVirtual IP(VIP)範囲を記録するようにしました。従来はフレームサイズのみを記録していましたが、各funcletの開始VIPと終了VIPを追跡し、ULEB128エンコーディングで { frameSize, startVirtualIP, (endVirtualIP - startVirtualIP) } として出力します。

変更内容

  • compiler.h: FuncInfoDsc(Wasm限定)にstartVirtualIP/endVirtualIPフィールドを追加
  • fgwasm.cpp: fgWasmVirtualIP()内で各関数/funcletのVIP範囲境界をキャプチャ
  • unwindwasm.cpp: VIP範囲(開始値と長さの差)をULEB128エンコーディングでアンワインド情報として出力
  • codegenwasm.cpp: GCヘッダーのコード長をmaxVirtualIPとして設定
  • codegencommon.cpp, flowgraph.cpp, morph.cpp: 関連する初期化および状態管理の更新

パフォーマンスへの影響

影響なし(メタデータ構造の拡張であり、ランタイムの実行速度には影響しません)

関連Issue

#128382

その他

懸念事項: Copilotレビューで指摘された通り、GCヘッダーのコード長をVIP座標系で報告する一方、GC情報の生成時には依然としてネイティブコードバイトオフセット座標系が使用されています。この混在により、無効なGC情報が生成されるリスクがあります。


#128328 Tighten LimitArrayPoolWriteStream cleanup contract and diagnostics

  • 作成者: @Copilot
  • 作成日時: 2026年05月18日 14:31:40(UTC)
  • マージ日時: 2026年05月26日 15:46:20(UTC)
  • ラベル: area-System.Net.Http

概要

LimitArrayPoolWriteStreamの破棄契約を厳密化し、ユーザーコードがバッファリングストリームを破棄した場合にInvalidOperationExceptionをスローするように変更。フレームワーク側のクリーンアップは新しいinternalメソッドReturnAllPooledBuffers()で一元管理し、ArrayPool.Sharedへの誤アクセスを防止する。

変更内容

  • HttpContent.cs: ReturnAllPooledBuffers()をprivateからinternalに昇格。Dispose(bool)はInvalidOperationExceptionをスロー。フレームワーク内のLoadIntoBuffer[Async]、LoadIntoBufferAsyncCore、HttpContent.Dispose、HttpClient.GetStringAsyncCore/GetByteArrayAsyncCoreの呼び出し元をusing/Dispose()から明示的なReturnAllPooledBuffers()呼び出し(finally/catch内)に変更
  • HttpClient.cs: using var buffer = ...パターンを nullable ローカル変数とfinally内の明示的なReturnAllPooledBuffers()呼び出しに置き換え
  • Strings.resx: System.Net.Http専用のリソースメッセージを追加(例外の説明を自己記述的に)
  • HttpContentTest.cs: ユーザーのSerializeToStreamAsyncオーバーライドがバッファストリームを破棄した場合にInvalidOperationExceptionが発生することを検証するリグレッションテストを追加
  • StreamToStreamCopyTest.cs: LimitArrayPoolWriteStreamのusingを削除し、リサイズテストで best-effort のReturnAllPooledBuffers()呼び出しを挿入

パフォーマンスへの影響

影響なし。本変更は破棄タイミングの制御フローを改善するもので、実行速度やメモリ効率への直接的な影響はない。ただし、ユーザーコードのバグ(ストリーム破棄)を早期に検出することで、バッファ破損を防止。

関連Issue

#128083(参照コメント)

その他

  • 互換性への影響: 内部型LimitArrayPoolWriteStreamのDisposeが例外をスローするようになるため、ユーザーコードでこの型を直接使用またはストリームを手動破棄している場合は破損の危険性。ただし、この型はpublicではないため影響範囲は限定的。
  • セキュリティ: ArrayPool汚染を防ぐセキュリティ向上。

#128320 Cache continuation used for runtime async callable task thunks

概要

ランタイムの非同期呼び出しthunks(タスク返却型)に対して、継続処理のキャッシング最適化を適用するPRです。#127973と同様の最適化をタスク返却パスに拡張し、スループットの改善とコードサイズの削減を実現します。サンプルコードはありません。

変更内容

  • AsyncHelpers.CoreCLR.cs: タスク返却thunkの継続処理ロジックを実装し、キャッシュされた継続を再利用
  • AsyncHelpers.TaskContinuation.cs(新規): GetOrCreateTaskContinuation()メソッドでタスク継続をキャッシュ・管理
  • AsyncHelpers.ValueTaskContinuation.cs: ValueTask継続処理の既存ロジックを整理
  • AsyncThunks.cs: IL生成ロジックを更新し、キャッシュされた継続を活用するコード生成
  • asyncthunks.cpp: ネイティブ側でタスク継続キャッシュの初期化・管理処理を追加

パフォーマンスへの影響

改善あり(マイナー):

  • NAOT環境でテストアセンブリのサイズが最大1.274%削減(System.Linq.AsyncEnumerable.Tests.exe: -214KB)
  • 平均サイズ削減率: 約0.1~0.3%(複数のシステムテスト)
  • 各thunkからsuspensionポイント(中断点)を削除し、thunkサイズとメモリオーバーヘッドを軽減
  • スループット向上(作成者評価:"very minor throughput optimization")
  • coreclr.dllは+2,048バイト(+0.042%)でほぼ影響なし

関連Issue

#127973

その他

  • 内部実装変更: ランタイムの非公開API(asyncthunks、AsyncHelpers)の変更で、ユーザーコードへの影響なし
  • Copilotから指摘: AsyncThunks.cs:376のコメントが古い可能性があり、ValueTask.AsTask参照は当該コードパスに不適切である可能性がある

#128313 Extend async override virtual call coverage

概要

非同期仮想呼び出しのテストカバレッジを拡張するPRです。src/tests/async/override/override.csに対して、待機された仮想ディスパッチと汎用仮想非同期オーバーライドのテストケースを追加します。

変更内容

  • src/tests/async/override/override.cs
    • M2<T>(T first, T second)メソッドを両方のオーバーライド階層(Base/Base1とその派生クラス)に追加。基底実装は空リストを返し、第1レベルのオーバーライドは第1引数、第2レベルのオーバーライドは第2引数を返すリストを検証
    • AwaitBaseM1/AwaitBaseM2という[NoInlining]属性付きの非同期ヘルパーメソッドを追加し、仮想呼び出しをawaitすることで、待機された仮想ディスパッチ呼び出しサイトをカバー
    • 直接的な.Result呼び出しと待機ラッパーパスの両方でオーバーライド実装の検証を行うアサーションに拡張

パフォーマンスへの影響

影響なし(テストコードの追加のため)

関連Issue

なし

その他

このPRは仮想呼び出しのディスパッチが正しく動作することを検証するテストの拡張です。汎用メソッドの仮想ディスパッチと非同期/待機パターンの組み合わせをテストする重要なケースを追加しています。


#128005 [release/10.0] Fix EncodeUnsignedInteger for test DSA signer

概要

Android環境でのDSA関連の証明書/CRLテストの間欠的な失敗を修正するテスト専用の修正。手作業で実装されたASN.1エンコーディングをリプレースし、RFC 3279 DER形式のDSA署名とAsnWriter + BigIntegerを使用して、正しいDER形式を確保します。

変更内容

  • src/libraries/System.Security.Cryptography/tests/X509Certificates/CertificateCreation/DSAX509SignatureGenerator.cs
    • IEEE形式から手作業でDER形式に変換していた部分をDSASignatureFormat.Rfc3279DerSequenceに変更
    • カスタムASN.1 INTEGER/長さエンコーディングをAsnWriterとBigIntegerを使用した実装に置き換え
    • 94行削減により、コード複雑性を低減

パフォーマンスへの影響

テスト専用の変更のため、本体コードのパフォーマンスへの影響なし。

関連Issue

#127979(元のPR)

その他

  • テスト専用の修正(本体コードへの変更なし)
  • Android環境でのCrlBuilderTests.DsaNotDirectlySupportedテストの間欠的失敗を解決
  • 内部で検出された問題で、顧客への影響なし
  • 複数回の実行後、Androidでテストが失敗しないことを確認済み

#127976 Fix agent file naming: use .agent.md suffix

  • 作成者: @lewing
  • 作成日時: 2026年05月08日 22:49:36(UTC)
  • マージ日時: 2026年05月26日 15:58:17(UTC)
  • ラベル: area-Meta

概要

Copilot CLI/VS Code/Claude Codeで正しく検出されるよう、.github/agents/配下の2つのカスタムエージェントファイルに.agent.mdサフィックスを追加するファイル名変更です。Copilot CLIはエージェントディレクトリ内の.agent.mdファイルのみを自動検出するため、サフィックスが欠落していた2つのファイルは読み込まれていませんでした。この変更により、@extensions-reviewerと@system-net-reviewへの@-mentions参照が正常に機能します。

変更内容

  • .github/agents/extensions-reviewer.md → .github/agents/extensions-reviewer.agent.md(ファイル名変更)
  • .github/agents/system-net-review.md → .github/agents/system-net-review.agent.md(ファイル名変更)

両ファイルとも内容変更なし、git mvによる純粋なリネーム(類似度100%)です。

パフォーマンスへの影響

影響なし

関連Issue

#127976

その他

  • 第3のエージェントファイルagentic-workflows.agent.mdは既に正しい命名であり、変更はありません
  • ファイル名以外でこれらエージェントを参照しているファイルはなく、参照は全てnameフィールド経由の@-mentionで行われるため、他への影響はありません
  • .github/skills/extensions-review/SKILL.mdと.github/skills/system-net-review/SKILL.md内の委譲先エージェントへの@-mentions参照が機能するようになります

#126135 Bump picomatch in /src/mono/browser/runtime

概要

Mono WebAssemblyランタイムの依存パッケージpicomatchをセキュリティアップデートします。 picomatch 4.0.3 → 4.0.4およびpicomatch 2.3.1 → 2.3.2へのバージョン更新で、複数のセキュリティ脆弱性を修正します。

変更内容

  • src/mono/browser/runtime/package-lock.json: picomatchの依存関係を更新
    • picomatch 4.0.3 → 4.0.4
    • picomatch 2.3.1 → 2.3.2

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

セキュリティ修正(重大度: 中程度以上)

  • CVE-2026-33671を修正
  • CVE-2026-33672を修正

この変更はDependabotにより自動作成されたセキュリティパッチPRです。WebAssemblyランタイムのビルドプロセスで使用されるノード依存パッケージのセキュリティリスクを軽減します。


#125888 Bump flatted from 3.3.3 to 3.4.2 in /src/mono/browser/runtime

概要

Mono WebAssembly ランタイムで使用されている flatted ライブラリを v3.3.3 から v3.4.2 にアップデートするDependabot PR。このアップデートには、セキュリティ脆弱性(CWE-1321)の修正と、Pythonの再帰問題の修正が含まれています。

変更内容

  • src/mono/browser/runtime/package-lock.json: flatted のバージョンを 3.3.3 から 3.4.2 にアップデート

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • セキュリティ修正: CWE-1321 脆弱性が修正されています
  • 本変更は主にセキュリティアップデートであり、Mono WebAssemblyランタイムのブラウザ関連コンポーネント(/src/mono/browser/runtime)に影響します
  • アップデートは互換性スコア(Dependabot compatibility score)が表示されており、後方互換性が保持されていることが示唆されています

#125816 [release/9.0-staging] Update dependencies from dotnet/roslyn

概要

dotnet/roslyn の依存関係を更新するPRです。Roslyn コンパイラおよび関連パッケージを v4.12.0-3.25569.8 から v4.12.0-3.26274.2 にアップデートします。このアップデートはrelease/dev17.12ブランチの最新ビルドに基づいています。

変更内容

  • eng/Version.Details.xml: Roslyn関連パッケージの詳細バージョン情報を更新(+8/-8)
  • eng/Versions.props: ビルド設定内のバージョンプロパティを更新(+3/-3)

更新対象パッケージ:

  • Microsoft.SourceBuild.Intermediate.roslyn
  • Microsoft.CodeAnalysis
  • Microsoft.CodeAnalysis.CSharp
  • Microsoft.Net.Compilers.Toolset

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 自動化されたdotnet-maestroボットによる依存関係更新PR
  • Roslyn ビルド #315661(2026年5月24日)に基づく
  • 対象ブランチ:release/9.0-staging

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

概要

dotnet/runtime-assets リポジトリの依存パッケージを更新するPRです。テストデータおよびランタイム関連のアセットパッケージを、9.0.0-beta.26071.2 から 9.0.0-beta.26267.3 へアップグレードします。

変更内容

  • eng/Version.Details.xml: 依存パッケージの詳細バージョン情報を更新(28行追加/28行削除)
  • eng/Versions.props: ビルドプロパティのバージョン情報を更新(14行追加/14行削除)

更新対象パッケージ(14個):

  • 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

なし

その他

  • 自動化されたbot(dotnet-maestro[bot])による定期的なビルド情報の更新
  • レリーズブランチ: release/9.0-staging
  • 関連ビルド: 20260517.3

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

概要

dotnet/cecilライブラリの依存バージョンを更新するパッチです。release/9.0-stagingブランチを対象に、Cecil 0.11.5-alpha.26122.3から0.11.5-alpha.26274.2への自動更新を実施しています。

変更内容

  • eng/Version.Details.xml: Microsoft.SourceBuild.Intermediate.cecilおよびMicrosoft.DotNet.Cecilのバージョン情報を更新(+4/-4行)
  • eng/Versions.props: バージョン指定を更新(+1/-1行)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 自動更新PR(dotnet-maestro[bot]による作成)
  • Build ID: 20260524.2、コミット: db9d8753e54e816ceeae6dab42d351617f1c482f
  • 変更は依存パッケージのバージョン管理メタデータのみに限定されており、ランタイムの機能実装には直接影響しません

目次