注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #127801 Update container image digests
- #127790 [mobile] Skip NonRandomizedToRandomizedUpgrade on aggressive trimming
- #127779 Use exponential buffer growth in LoopbackServer test helper
- #127773 [Wasm RyuJit] add length prefix to each jit code contribution
- #127761 Remove [RequiresUnsafe] attribute usages
- #127752 Add a Fuzzlyn triage skill
- #127748 Group Renovate container image digest updates into a single PR
- #127744 Enable EventSource in System.Threading.Tasks.Tests
- #127742 [mobile] Skip failing Android localhost subdomain DNS tests
- #127741 Fix stale lastThrownObjectHandle in DAC GetThreadData during active exception dispatch
- #127686 Reorder static fields in LoggingEventSource to prevent reentrant bug in FilterSpec parsing
- #127680 Preserve execution aborted state in NativeAOT GC info
- #127626 [release/8.0-staging] Add an in-memory cache for CRLs on Linux
- #127625 [release/9.0-staging] Add an in-memory cache for CRLs on Linux
- #127604 Delete CreateProcessW impl from PAL
- #127574 [release/10.0] Add an in-memory cache for CRLs on Linux
- #127566 ProcessTests: redirect stdio and kill entire process tree for shell-script-based tests.
- #127551 [browser][CoreCLR] Implement
invokeLibraryInitializersfor JS initializer hooks - #127523 Route async resumption stub fixups through precode fixup handling
- #127303 Fix CounterGroup timer to use Stopwatch instead of DateTime.UtcNow
- #127296 [cDAC] Implement cDAC
TraverseVirtCallStubHeap - #127178 Disable server GC and background GC for CoreCLR WebAssembly, iOS, and tvOS builds
- #127016 [wasm][coreclr] Cache calli cookies
- #127005 Fix illink TypeMap proxy retention. Fixes #127004.
- #126916 [Android] In-Proc Crash Reporter
- #125967 Fix memory leak of offset_to_bb_hash
- #125554 [RyuJit] Decouple
igNumfrom strict layout order - #125023 [release/8.0-staging] Update dependencies from dotnet/arcade
#127801 Update container image digests
- 作成者: @dotnet-renovate-bot
- 作成日時: 2026年05月05日 15:27:47(UTC)
- マージ日時: 2026年05月05日 20:26:15(UTC)
- ラベル: area-Infrastructure community-contribution
概要
ビルドパイプラインで使用されるコンテナイメージ mcr.microsoft.com/dotnet-buildtools/prereqs のダイジェスト値を一括更新するPRです。Renovate Botによる自動依存関係更新で、41個のコンテナイメージダイジェストが新しいバージョンに更新されています。
変更内容
- eng/pipelines/common/templates/pipeline-with-resources.yml: 25行のコンテナイメージダイジェストを更新
- eng/pipelines/coreclr/templates/helix-queues-setup.yml: 10行のコンテナイメージダイジェストを更新
- eng/pipelines/installer/helix-queues-setup.yml: 4行のコンテナイメージダイジェストを更新
- eng/pipelines/libraries/helix-queues-setup.yml: 22行のコンテナイメージダイジェストを更新
すべての変更は mcr.microsoft.com/dotnet-buildtools/prereqs イメージの複数のダイジェストハッシュ値の置き換え(計61行)です。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このPRは自動化されたRenovate Botによる依存関係更新です。ビルドインフラストラクチャの保守タスクであり、ランタイムやコンパイラの機能変更を伴いません。
#127790 [mobile] Skip NonRandomizedToRandomizedUpgrade on aggressive trimming
- 作成者: @kotlarmilos
- 作成日時: 2026年05月05日 10:48:42(UTC)
- マージ日時: 2026年05月05日 19:08:35(UTC)
- ラベル: area-System.Collections
概要
ConcurrentDictionary_Generic_Tests<TKey,TValue>.NonRandomizedToRandomizedUpgrade_FunctionsCorrectlyテストが、aggressive trimming設定(NativeAoT、Apple mobile)環境で内部型ConcurrentDictionary<,>+Tablesへのリフレクションが失敗し、TypeLoadExceptionが発生する問題を修正します。テストをPlatformDetection.IsBuiltWithAggressiveTrimmingでゲートすることで、該当環境でのスキップを実装します。
変更内容
- src/libraries/System.Collections.Concurrent/tests/ConcurrentDictionary/ConcurrentDictionary.Generic.Tests.cs:
NonRandomizedToRandomizedUpgrade_FunctionsCorrectlyテストにActiveIssueスキップを追加し、aggressive trimming環境(IsNativeAot || IsAppleMobile)で実行をスキップするように修正。
パフォーマンスへの影響
影響なし(テストのみの変更)
関連Issue
その他
この変更は製品コードの実装変更ではなく、テストのみの修正です。aggressive trimming設定環境(NativeAoT、Apple mobile)ではリフレクションで非公開メタデータにアクセスできないため、テスト実行環境に応じた条件付きスキップは妥当な対応です。CI安定性の向上が目的です。
#127779 Use exponential buffer growth in LoopbackServer test helper
- 作成者: @Copilot
- 作成日時: 2026年05月05日 00:15:58(UTC)
- マージ日時: 2026年05月05日 20:56:27(UTC)
- ラベル: area-System.Net.Http
概要
LoopbackServer.Connectionのバッファリサイズ戦略を固定サイズ増加(+4000バイト)から指数関数的増加(×2)に変更し、大規模ペイロード処理時のO(n²)コピーを削減します。ReadToEndAsyncとReadLineBytesAsyncの両メソッドでArray.Resizeを使用した効率的なバッファ管理を実現します。
変更内容
src/libraries/Common/tests/System/Net/Http/LoopbackServer.cs
ReadToEndAsync: リサイズトリガーをbytesRead == buffer.Lengthからoffset == buffer.Lengthに修正(前回の実装では初回リサイズ後にトリガーが機能しなくなる問題を解決)、手動のnew byte[] + CopyToをArray.Resize(ref buffer, buffer.Length * 2)に置き換え、冗長なtotalLength変数を削除ReadLineBytesAsync: 手動のnew byte[] + Array.Copyを廃止し、in-placeArray.Copyでコンパクト化した後にArray.Resize(ref _readBuffer, _readBuffer.Length * 2)を実施、インデックスリセット処理(_readStart、_readEnd、startSearch)を常に無条件で適用
パフォーマンスへの影響
指数関数的バッファ増加により、大規模ペイロード処理時の配列コピー回数が削減されます。従来の固定増加(毎回+4KB)では複数回のリサイズが必要だったケースが、×2増加で必要なリサイズ回数がO(log n)に削減されるため、全体的なコピー処理が大幅に効率化されます。
関連Issue
なし
その他
Copilotのレビューコメントで、dataLength == 0の場合にバッファを拡張しても安定しない可能性が指摘されています。この条件(前行が_readBuffer終端で終了した場合)で新バッファのインストールとインデックスリセットが実施されないと、次の読み込みで問題が生じる可能性があります。
#127773 [Wasm RyuJit] add length prefix to each jit code contribution
- 作成者: @AndyAyersMS
- 作成日時: 2026年05月04日 21:19:46(UTC)
- マージ日時: 2026年05月05日 19:47:56(UTC)
- ラベル: arch-wasm area-CodeGen-coreclr
概要
WebAssembly(Wasm)RyuJIT コンパイラの出力パイプラインを更新し、各JIT生成関数/funcletに長さプリフィックスを含めるようにしました。これにより、ホスト側でのコード解析が不要になり、funclet分割がより簡潔になります。
変更内容
- emitwasm.cpp/h, codegenwasm.cpp: 新しい擬似命令
INS_code_sizeをメソッド/funcletの開始時に発行し、固定サイズ(5バイト)のULEB128エンコード長プリフィックスを出力 - codegencommon.cpp: Wasm向けにfunclet開始/終了位置の計算を
unwindEmitからgenEmitMachineCodeに移動 - instrswasm.h, emitfmtswasm.h:
code_size命令定義(フォーマットIF_CODE_SIZE)を追加 - unwindwasm.cpp:
unwindEmitからemitUpdateFuncletLocations()呼び出しを削除 - WasmObjectWriter.cs: コード セクションの自動長プリフィックス処理を廃止し、手動挿入スタブに対してのみ明示的にプリフィックスを付与
パフォーマンスへの影響
影響なし。この変更は、コード配置の責任をホスト側からJIT側に移行するアーキテクチャ的な改善であり、ランタイム性能への直接的な影響はありません。
関連Issue
なし
その他
この変更はWasm RyuJIT専用で、ホスト側の実装(WasmObjectWriter)とJIT側の実装を連携させて、funclet処理を簡潔化しています。内部実装の変更で、公開APIへの影響はありません。
#127761 Remove [RequiresUnsafe] attribute usages
- 作成者: @jjonescz
- 作成日時: 2026年05月04日 15:13:55(UTC)
- マージ日時: 2026年05月05日 18:07:06(UTC)
- ラベル: area-System.Runtime.CompilerServices
概要
新しいコンパイラバージョンに対応するため、System.Private.CoreLibとランタイム内の複数のファイルから[RequiresUnsafe]属性の使用を削除しています。新コンパイラでは[RequiresUnsafe]属性をソースコードで使用することが禁止され、代わりにunsafe修飾子を直接使用する必要があります。
変更内容
- System.Private.CoreLib: 30ファイル以上から
[RequiresUnsafe]属性を削除(合計170行以上を削除)- コア反射・Emit関連:
InstanceCalliHelper.cs(46行)、CastHelpers.cs(29行)、MdImport.cs(12行) - GC・Array・Buffer・Environment・Exception等の内部実装
- AppContext、ArgIterator、Math、MathF等の数値計算関連
- Reflection、Assembly、DynamicILGenerator等のメタデータ処理
- その他203ファイルから属性を削除(詳細は不明)
- コア反射・Emit関連:
パフォーマンスへの影響
影響なし
関連Issue
その他
これは内部実装の非公開APIへの変更です。[RequiresUnsafe]属性はRoslyn新バージョンコンパイラでコンパイルエラー CS9379 が発生するため、既存の属性を削除する必要があります。互換性への直接的な影響はありません。
#127752 Add a Fuzzlyn triage skill
- 作成者: @jakobbotsch
- 作成日時: 2026年05月04日 13:54:55(UTC)
- マージ日時: 2026年05月05日 16:33:14(UTC)
- ラベル: area-skills
概要
Fuzzlyn週末実行時の障害を自動的にトリアージするGitHub Copilot Skill「fuzzlyn-triage」を追加します。このスキルは障害アーティファクトのダウンロード、SuperPMIを用いた再現可能なコンテキストの抽出、jitdumpの生成、および詳細な分析結果と再現用ファイル(repro.mc、jitdump.txt、issue.md)をzipで出力することで、JIT障害の初期トリアージを自動化します。
変更内容
.github/skills/fuzzlyn-triage/SKILL.md(+77行):Fuzzlyn障害のトリアージワークフローを定義するスキルマークダウンファイルを新規追加
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このスキルは開発者の手作業によるトリアージ負担を軽減することを目的としています。生成されるissue.mdは初期分析結果を提供し、開発者がその妥当性を評価した上で修正作業に進められるよう設計されています。
#127748 Group Renovate container image digest updates into a single PR
- 作成者: @mthalman
- 作成日時: 2026年05月04日 13:33:52(UTC)
- マージ日時: 2026年05月05日 00:28:38(UTC)
- ラベル: area-Infrastructure
概要
Renovateのコンテナイメージダイジェスト更新を個別のPRではなく、単一のPRにグループ化する設定を追加しました。groupNameとgroupSlugをパッケージルールに指定することで、複数のダイジェスト更新を一つの単位で管理できるようになります。
変更内容
- eng/renovate.json: Renovate設定ファイルに
groupNameとgroupSlugパラメータを追加(+2行)- コンテナイメージダイジェスト更新ルールにグループ化設定を統合
- ブランチ名などの識別子を安定かつ予測可能にする
groupSlugを明示的に定義
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この変更により、dotnet/runtimeリポジトリの依存関係更新ワークフローの保守負荷が軽減されます。従来は複数のコンテナイメージダイジェスト更新で個別のPRが作成されていましたが、今後は単一のPRにまとめられることで、レビューと管理の効率化が期待できます。
#127744 Enable EventSource in System.Threading.Tasks.Tests
- 作成者: @MichalStrehovsky
- 作成日時: 2026年05月04日 12:04:21(UTC)
- マージ日時: 2026年05月05日 01:10:36(UTC)
- ラベル: area-System.Threading.Tasks
概要
System.Threading.Tasks.Tests を NativeAOT でビルド・実行する際に、AsyncProfilerTests が期待する非同期イベント(EventSource イベント)が正しく発行されないため、テスト失敗が多数発生していた問題に対応します。プロジェクトファイルで EventSourceSupport を true に設定し、NativeAOT ビルド時に EventPipe サポートを有効化することで、ランタイムの非同期イベント追跡機能を動作させるようにします。
変更内容
- System.Threading.Tasks.Tests.csproj:
$(TestNativeAot) == trueの場合にEventSourceSupportプロパティをtrueに設定 - AsyncProfilerTests.cs: テスト側で EventSource イベント受信の待機ロジックを調整
パフォーマンスへの影響
NativeAOT テスト実行時のみ EventSource サポートが有効化されるため、本番ビルドへの影響はありません。テスト実行時のオーバーヘッドは最小限(イベント発行が必要な分のみ)と考えられます。
関連Issue
その他
この変更は NativeAOT での外部ループテスト(outerloops)の失敗に対応するものです。失敗していたテストは以下を含みます:
RuntimeAsync_CallstackSimulation_HandledExceptionRuntimeAsync_WrapperIndexMatchesCallstackRuntimeAsync_UnhandledExceptionUnwindRuntimeAsync_PeriodicTimerFlush_PreservesOwnerThreadIdRuntimeAsync_ResetAsyncThreadContextEventRuntimeAsync_CallstackNativeIPDeltaRoundtripRuntimeAsync_CreateAndFirstResumeCallstacksMatchRuntimeAsync_ContextEventIdLifecycle
これらは EventSource イベントの不足により、期待されたランタイムイベント(ResumeAsyncCallstack、ResetAsyncThreadContext など)が収集されていなかったためです。
#127742 [mobile] Skip failing Android localhost subdomain DNS tests
- 作成者: @github-actions[bot]
- 作成日時: 2026年05月04日 11:35:18(UTC)
- マージ日時: 2026年05月05日 10:12:38(UTC)
- ラベル: area-System.Net os-android agentic-workflows
概要
Android プラットフォームにおいて、System.Net.NameResolution の localhost サブドメイン解決テストが失敗するため、該当テストに ActiveIssue 属性を追加してスキップするようにします。Android の DNS リゾルバーが RFC 6761 の localhost サブドメインに対してループバック アドレス(127.0.0.1 または ::1)ではなく、リンクローカル IPv6 アドレス(fe80::/10)を返すことが原因です。
変更内容
- GetHostEntryTest.cs:
DnsGetHostEntry_LocalhostSubdomain_ReturnsLoopbackテストに Android 用のActiveIssue属性を追加 - GetHostAddressesTest.cs:
DnsGetHostAddresses_LocalhostSubdomain_ReturnsLoopbackテストに Android 用のActiveIssue属性を追加
両テストは Android でスキップされ、既存の Issue #124751 で追跡されている同様の問題に対応しています。
パフォーマンスへの影響
影響なし
関連Issue
その他
- この変更はテスト スイートのみに影響し、ランタイムやライブラリの実装コードには影響しません(内部テスト修正)
- Android プラットフォーム固有の DNS 動作に対する回避策です。根本的な修正ではなく、既知の問題として追跡・スキップするアプローチです
#127741 Fix stale lastThrownObjectHandle in DAC GetThreadData during active exception dispatch
- 作成者: @hoyosjs
- 作成日時: 2026年05月04日 11:04:06(UTC)
- マージ日時: 2026年05月05日 00:09:05(UTC)
- ラベル: area-Diagnostics-coreclr
概要
#127300でExInfom_hThrowableが削除されて以降、アクティブな例外ディスパッチ中にThreadm_LastThrownObjectHandleが更新されなくなり、DACのGetThreadDataが古いハンドルを返していました。この修正により、デバッガがアクティブなディスパッチ中の例外を正しく報告できるようになります。
#127300の変更により、例外ディスパッチ中のm_LastThrownObjectHandleが古い状態になり、デバッガコマンド(!PrintException、!Threads、!clrstack -a)が失敗していました。本修正は、ExInfo トラッカーに格納されているアクティブな例外を優先し、フォールバックとしてm_LastThrownObjectHandleを使用するように変更しています。
変更内容
- src/coreclr/debug/daccess/request.cpp: GetThreadData内のdacpThreadDatalastThrownObjectHandleで、ThreadGetThrowableAsPseudoHandle()を優先的に使用し、フォールバックでm_LastThrownObjectHandleを参照
- Thread_1.cs: ThreadData.LastThrownObjectHandleをExceptionInfo.ThrownObjectスロットから計算するロジックを追加。ネイティブDACと同じ疑似ハンドルセマンティクスを実装
- Thread.md: データコントラクト仕様にアクティブ例外処理の説明を追加(+23行)
- テスト追加: MockDescriptorsとThreadTestsにテストケース追加
パフォーマンスへの影響
影響なし
関連Issue
その他
この修正は、ネイティブDAC(request.cpp)とマネージドcDAC(Thread_1.cs)の両方で、アクティブな例外を優先的に参照する一貫した処理を実装しています。アクティブ例外が存在する場合はその疑似ハンドルを返し、ない場合のみm_LastThrownObjectHandleにフォールバックするロジックが採用されています。
#127686 Reorder static fields in LoggingEventSource to prevent reentrant bug in FilterSpec parsing
- 作成者: @hoyosjs
- 作成日時: 2026年05月02日 18:42:05(UTC)
- マージ日時: 2026年05月05日 06:12:50(UTC)
- ラベル: area-Extensions-Logging
概要
LoggingEventSourceの静的フィールド初期化順序の問題を修正しました。OnEventCommandが型初期化中に再入呼び出しされる際、ParseFilterSpecがnullセパレータ配列を参照してFilterSpecを誤解析する問題を解決しています。静的フィールドs_semicolonとs_colonの初期化をInstanceより前に移動することで、再入呼び出し時に確実に初期化済みの状態になるようにしました。
変更内容
- LoggingEventSource.cs:
s_semicolon/s_colonセパレータフィールドの宣言順序をInstanceより前に移動。再入呼び出しのシナリオと初期化順序の重要性に関する説明コメント追加。 - EventSourceLoggerTest.cs: 再入呼び出しシナリオをカバーするテストケース追加(54行)。
- Microsoft.Extensions.Logging.EventSource.Tests.csproj: テストプロジェクト設定の更新。
パフォーマンスへの影響
影響なし
関連Issue
その他
この修正はMicrosoft.Extensions.Logging.EventSourceライブラリの内部実装に関するもので、公開APIの変更はありません。静的初期化順序の問題は微妙なバグを引き起こす可能性があるため、初期化順序への強い依存は設計上の課題を示唆しています。
#127680 Preserve execution aborted state in NativeAOT GC info
- 作成者: @MichalStrehovsky
- 作成日時: 2026年05月02日 06:19:08(UTC)
- マージ日時: 2026年05月05日 06:38:19(UTC)
- ラベル: area-NativeAOT-coreclr
概要
NativeAOT環境でのGC情報処理において、ハードウェアフォルトスタックウォーク時にexecutionAbortedフラグを保持するよう、GetCodeOffsetデバッグ検証時のMethodInfo変更を回避する修正です。例外ディスパッチ中のGC発生時にGCルート報告が正確に行われるようにします。
変更内容
- src/coreclr/nativeaot/Runtime/windows/CoffNativeCodeManager.cpp: GC情報処理ロジックを調整し、live MethodInfoの直接変更を避け、
executionAborted状態を保持するようにコード追加(+10行/-1行)
パフォーマンスへの影響
影響なし
関連Issue
その他
- NativeAOT環境固有の修正です
- Windows版CoffNativeCodeManagerに関連する変更であり、ハードウェアフォルト処理時のGC状態追跡の正確性向上を目的としています
- デバッグ検証ロジック内での副作用排除により、スタックウォーク中の状態一貫性を確保します
#127626 [release/8.0-staging] Add an in-memory cache for CRLs on Linux
- 作成者: @bartonjs
- 作成日時: 2026年04月30日 21:54:12(UTC)
- マージ日時: 2026年05月05日 17:00:31(UTC)
- ラベル: Servicing-approved area-System.Security
概要
Linux上でのCRL(証明書失効リスト)処理時のメモリ問題を軽減するため、OpenSSL CRL処理に境界付きのインメモリMRU(Most Recently Used)キャッシュを導入するバックポート。.NET 11 Preview 3で導入された機能をrelease/8.0-stagingブランチに適用します。
CRLを繰り返し検証するプロセスで、OpenSSL+glibcの小サイズアロケーション動作により予約メモリが蓄積されていた問題を、GC協調的なプルーニング機能を持つインメモリキャッシュで軽減します。
変更内容
- OpenSslCrlCache.cs: インメモリMRU キャッシュ層を実装し、CRL読み込みフロー(メモリヒット → ディスクキャッシュ → ダウンロード)に統合。GC時の自動プルーニング機能を搭載
- OpenSslX509ChainEventSource.cs: インメモリキャッシュ動作の診断用ETWイベントを追加し、既存のディスクキャッシュイベントメッセージを明確化
- X509FilesystemTests.Unix.cs: ディスクキャッシュファイルの破損復旧を検証するOuterLoopテストを追加
パフォーマンスへの影響
メモリ削減効果: 同じCRLへの繰り返しアクセス時、CRLが使用中に保持されるため、OpenSSL+glibcのメモリアリーナによる小サイズアロケーション蓄積が軽減されます。複数スレッドで同一CRLを検証する場合、予約メモリ増加が抑制されます。
キャッシュヒット時: ディスクやネットワークアクセスが回避され、CRL再読み込みコストが削減されます。
関連Issue
#123562(main へのオリジナル実装)
その他
- 互換性: 公開APIの変更なし、内部実装のみ
- リスク評価: Medium-Low。.NET 11 Preview 3での実装実績があり、大規模な単体テストと手動ストレステストで検証済み。既存の高RESメモリ問題を報告していたユーザーから改善確認されている
- テスト: 既存テストに加え、新規の跨プロセステストでディスクキャッシュ復旧を検証
#127625 [release/9.0-staging] Add an in-memory cache for CRLs on Linux
- 作成者: @bartonjs
- 作成日時: 2026年04月30日 21:53:13(UTC)
- マージ日時: 2026年05月05日 17:13:15(UTC)
- ラベル: Servicing-approved area-System.Security
概要
Linux上でのCRL処理による過度なメモリ使用量問題を解決するため、CRL用のメモリ内MRU(Most Recently Used)キャッシュを実装しました。本変更により、リビジョン確認を頻繁に行うプロセスでは同じCRLを繰り返しロードせず、glibc メモリアリーナの断片化による見かけ上のメモリリークを軽減します。.NET 11 Preview 3で導入された本機能をrelease/9.0-stagingにバックポートしたものです。
変更内容
- OpenSslCrlCache.cs: 境界付きのメモリ内MRUキャッシュレイヤーを実装。ディスクキャッシュロード処理を拡張してキャッシュエントリを返すようにし、GC駆動の自動剪定機能を追加(+466行)
- OpenSslX509ChainEventSource.cs: メモリ内CRLキャッシュのヒット/ミス/期限切れ/剪定/満杯イベント用ETWトレースを追加。ディスクキャッシュメッセージテキストを明確化(+70行)
- X509FilesystemTests.Unix.cs: 永続化されたCRLファイルを破損させ、その後のプロセスでディスクキャッシュリカバリを検証するクロスプロセステスト(OuterLoop)を追加(+123行)
パフォーマンスへの影響
メモリ使用量の改善:
- 複数スレッドでのCRLリビジョン確認時、同一CRL の重複ロードを回避し、メモリ確保の断片化を削減
- CRL がメモリ内キャッシュに保持されている間は glibc の小割り当てキャッシングの対象外となるため、RES(resident)メモリ増加を抑制
- 既存テストおよび手動ストレステスト(複数スレッド、数百HTTPS ホスト、背景メモリ割り当て/解放実施)で検証済み
関連Issue
なし
その他
- リスク評価: 中~低。MRU キャッシュ実装による本質的なリスクはあるが、ユニットテストによる広範なカバレッジと .NET 11 Preview 3での実績により軽減されています
- 互換性: 破壊的変更なし。公開API への影響なし
- 顧客影響: Linux上でのメモリ圧迫問題(特にKubernetes 環境)に報告があり、本機能により軽減が期待されます
#127604 Delete CreateProcessW impl from PAL
- 作成者: @am11
- 作成日時: 2026年04月30日 11:21:07(UTC)
- マージ日時: 2026年05月05日 00:46:31(UTC)
- ラベル: area-Diagnostics-coreclr community-contribution
概要
PAL(Platform Abstraction Layer)からCreateProcessW実装を削除するクリーンアップです。CreateProcessWはWindows固有のプロセス生成APIであり、.NET Coreでは既に使用されていないため、PAL実装とそれに関連するテストコードを削除しました。この変更により、Windows専用のプロセス管理ロジックが排除されます。
変更内容
- PAL ヘッダー・実装削除:
src/coreclr/pal/inc/pal.hからCreateProcessW宣言を削除、src/coreclr/pal/src/thread/process.cppから関連実装を大幅削除(1831行削除/-3219行) - デバッグAPI関連削除:
dbgtransportmanager、dbgtransportpipeline、windowspipelineなど、デバッグインフラのCreateProcessW依存コードを削除 - プロセスオブジェクト定義削除:
src/coreclr/pal/src/include/pal/procobj.hppからプロセスオブジェクト構造体を削除 - テストコード削除:
CreateProcessW、GetExitCodeProcess、ExitThread、OutputDebugStringA関連のPAL テストスイートを完全に削除(複数テストディレクトリと約1000行以上) - ユーティリティ削除: mscordacの Unix エクスポートから不要な定義を削除
パフォーマンスへの影響
影響なし。(クリーンアップのため、パフォーマンス変化なし)
関連Issue
その他
- 破壊的変更: PALの公開APIから
CreateProcessWが削除されるため、これに依存していたコードは影響を受けます - 本変更はWindows固有のレガシーコードの削除であり、.NET Coreの クロスプラットフォーム方針に沿っています
#127574 [release/10.0] Add an in-memory cache for CRLs on Linux
- 作成者: @github-actions[bot]
- 作成日時: 2026年04月29日 17:55:57(UTC)
- マージ日時: 2026年05月05日 17:08:57(UTC)
- ラベル: Servicing-approved area-System.Security
概要
Linuxにおいて、CRL(証明書失効リスト)処理によるメモリ問題を軽減するため、インメモリのMRU(Most Recently Used)キャッシュを導入します。
従来、CRL検証時に毎回ファイルから読み込んでいたため、OpenSSLの小さなメモリ割り当てがglibc memory arenasに蓄積され、見かけ上のメモリリークが発生していました。本変更により、CRLをキャッシュすることで、同じCRLへの繰り返しアクセスに対してファイル読み込みを減らし、メモリ蓄積を抑制します。
変更内容
- OpenSslCrlCache.cs: CRL用のインメモリ有界MRUキャッシュを実装。GC協調によるライフサイクル管理を含む
- OpenSslX509ChainEventSource.cs: キャッシュ動作を追跡するための診断イベントを拡張
- X509FilesystemTests.Unix.cs: クロスプロセスディスクキャッシュ復旧シナリオを検証する新しいテストを追加
パフォーマンスへの影響
- メモリ使用量の削減:Linuxプロセスの予約メモリ(RES)が低減。特にCRL検証が頻繁な環境や複数スレッド環境で効果あり
- スループット改善:同一CRLへの繰り返しアクセス時、ファイル読み込みが不要となることで高速化
- キャッシュヒット時の効果顕著:同じエンドポイントまたは同一CA+CRLからの複数エンドポイントへのアクセスで最適
関連Issue
#123562(メイン向けのオリジナルPR)
その他
- 互換性: 破壊的変更なし。既存の動作との互換性を保持
- リスク評価: Medium-Low。.NET 11 Preview 3で同機能が検証済み
- テスト: 既存テストに加え、新規テストでクロスプロセスディスクキャッシュ復旧を検証。実装時には複数スレッド環境での大規模ストレステスト実施済み
#127566 ProcessTests: redirect stdio and kill entire process tree for shell-script-based tests.
- 作成者: @tmds
- 作成日時: 2026年04月29日 14:48:28(UTC)
- マージ日時: 2026年05月05日 10:04:30(UTC)
- ラベル: area-System.Diagnostics.Process community-contribution
概要
シェルスクリプト基盤のテスト(LongProcessNamesAreSupportedおよびProcessNameMatchesScriptName)で、孫プロセス(sleep)を含むプロセスツリー全体を適切に終了するよう改善しました。従来はシェルのみを終了しており、睡眠プロセスが残ったままになり、テスト親プロセスの標準出力/標準エラーパイプが開いたままになる問題を修正しています。
変更内容
- ProcessTests.Unix.cs: Unix固有のテストロジックでプロセスツリー全体を強制終了するように修正(+9/-2)
- ProcessTests.cs: 標準入出力のリダイレクト処理を追加し、テスト実行時のパイプ管理を改善(+8/-2)
パフォーマンスへの影響
影響なし(テスト信頼性の向上が主目的)
関連Issue
その他
- このPRはSystem.Diagnostics.Processのテスト信頼性向上を目的とした内部実装の修正です
- Unix環境でのプロセス管理テストの安定化に関連する変更です
- 領域: area-system-diagnostics-process
#127551 [browser][CoreCLR] Implement invokeLibraryInitializers for JS initializer hooks
- 作成者: @pavelsavara
- 作成日時: 2026年04月29日 08:56:00(UTC)
- マージ日時: 2026年05月05日 12:34:04(UTC)
- ラベル: arch-wasm area-Host os-browser
概要
CoreCLR WASM ランタイムの JS ローダーに実装されていなかった invokeLibraryInitializers API を実装しました。この API は Blazor の JS initializer hooks (beforeStart/afterStarted) を実行するために必要であり、実装がないと CoreCLR WASM 上で Blazor アプリが起動時にクラッシュしていました。
変更内容
- lib-initializers.ts: スタブ実装を置き換え、
modulesAfterConfigLoadedとmodulesAfterRuntimeReadyから読み込まれた全 JS initializer モジュールを列挙し、指定された関数名でエクスポートされている関数をPromise.allで並列実行します。エラー発生時はログを出力してexit(1, err)で終了します。 - assets.ts: 動的
import()後にモジュールエクスポートをasset.moduleExportsにキャッシュし、後でinvokeLibraryInitializersからアクセス可能にします。また、Blazor スタイルのフック (beforeStart/afterStarted) をエクスポートするモジュールに対する誤った警告を抑止します。 - LibraryInitializerTests.cs および テストアセット:
invokeLibraryInitializersAPI を検証する新規 WBT テストを追加。customHook関数をエクスポートするモジュールから呼び出し、実行完了を確認します。
パフォーマンスへの影響
影響なし
関連Issue
その他
なし
#127523 Route async resumption stub fixups through precode fixup handling
- 作成者: @Copilot
- 作成日時: 2026年04月28日 18:27:04(UTC)
- マージ日時: 2026年05月05日 10:01:48(UTC)
- ラベル: area-crossgen2-coreclr
概要
ReadyToRun(R2R)コンパイル時の非同期再開スタブ(async resumption stub)fixupの処理を修正するPRです。これまで直接コンパイル済みメソッドノードに追加されていたfixupを、既存のprecode fixupパイプラインを通すように変更しました。これにより、fixupの重複排除と失敗したコンパイルパスでの不適切なコミットを防ぎます。
private void AddResumptionStubFixup(MethodWithGCInfo compiledStubNode)
{
AddPrecodeFixup(_compilation.SymbolNodeFactory.ResumptionStubEntryPoint(compiledStubNode));
}
変更内容
- CorInfoImpl.ReadyToRun.cs:
ResumptionStubEntryPointfixupを直接メソッドノードに追加する代わりに、AddPrecodeFixup経由でルーティングするよう変更 - R2RTestRunner.cs: CrossGen2フラグ(
--determinism-stressなど)をテスト経由で指定可能にするためのAdditionalArgsプロパティを追加 - R2RResultChecker.cs:
HasFixupKindCountOnMethodヘルパーメソッドを追加し、メソッドごとの正確なfixup数をアサートする機能を実装。既存のヘルパー(HasAsyncVariant、HasFixupKindOnMethod)を強化して、複数マッチを検出し曖昧性を排除 - AsyncMultipleSuspensionPoints.cs: 複数の
await Task.Yield()を含む非同期メソッドテストケースを追加 - R2RTestSuites.cs:
RuntimeAsyncResumptionStubFixupDedupテストスイートを追加し、複数のコンパイル試行を強制して各async変種が正確に1つのResumptionStubEntryPointfixupを持つことを検証
パフォーマンスへの影響
影響なし。この変更はfixup処理のパイプラインを統一するリファクタリングであり、パフォーマンスに直結した改善は記述されていません。
関連Issue
なし
その他
- テスト実装の注記として、
MethodWithGCInfo.EncodeFixupCellsが(TableIndex, ImportOffset)でエンコード時にfixupを重複排除するため、メモリ内の重複はR2Rリーダーでは観測不可能です - テストは修正前後で同じ結果となるため、この性質に依存しています
#127303 Fix CounterGroup timer to use Stopwatch instead of DateTime.UtcNow
- 作成者: @unsafePtr
- 作成日時: 2026年04月22日 22:51:30(UTC)
- マージ日時: 2026年05月05日 19:32:52(UTC)
- ラベル: area-System.Diagnostics.Tracing community-contribution
概要
CounterGroupのタイマー実装をDateTime.UtcNowからStopwatchに変更しました。DateTime.UtcNowはNTP同期により時刻がジャンプする可能性があり、EventCounter購読者に報告される経過時間が不正確になるため、単調性を持つStopwatchを使用することで問題を解決します。この変更はEventCounter、PollingCounter、IncrementingPollingCounter、IncrementingEventCounterなど、CounterGroupを間接的に使用するすべてのカウンター型に影響します。
変更内容
- src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/CounterGroup.cs
DateTime.UtcNowベースのタイマーロジックをStopwatch(モノトニッククロック)に置き換え- タイマー実装の変更により、NTP同期による時刻ジャンプの影響を排除
パフォーマンスへの影響
StopwatchはDateTime.UtcNowよりオーバーヘッドが小さく、より精密なタイミング測定が可能です。ただし、具体的なベンチマーク数値は提供されていません。改善点として、監視ダッシュボードのレート計算(例:requests/sec)がより正確になります。
関連Issue
その他
なし
#127296 [cDAC] Implement cDAC TraverseVirtCallStubHeap
- 作成者: @Copilot
- 作成日時: 2026年04月22日 18:38:36(UTC)
- マージ日時: 2026年05月05日 19:20:58(UTC)
- ラベル: area-Diagnostics-cdac
概要
cDAC(Common Data Access Component)のTraverseVirtCallStubHeap SOS API を実装し、ネイティブDAC と同じ動作を実現します。VirtualCallStubManager のローダーヒープ(Indcell / CacheEntry)をトラバースする機能を追加し、既存のTraverseLoaderHeapCoreローダーヒープトラバーサル構造を再利用しています。
変更内容
- ISOSDacInterface.cs:
VCSHeapTypeenum を追加し、TraverseVirtCallStubHeapメソッドのシグネチャを更新して型付きアンマネージコールバックを使用するよう変更 - SOSDacImpl.cs:
TraverseVirtCallStubHeapを実装し、ILoader.GetGlobalLoaderAllocator()+GetLoaderAllocatorHeaps(...)を使用してLoaderコントラクト経由でヒープをトラバース。TraverseLoaderHeapCoreをリファクタリングしてTargetPointerを受け取るよう修正 - LoaderTests.cs:
TraverseVirtCallStubHeapの動作をカバーする単体テストを追加(トラバーサル、マネージャー不在、無効なヒープタイプ、無効な引数のシナリオ)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この変更は内部実装(cDAC/SOS診断インターフェース)の拡張であり、公開APIの破壊的変更ではありません。Loaderコントラクトの既存機能を活用した実装となっており、ネイティブDACとの相互運用性向上を目的としています。
#127178 Disable server GC and background GC for CoreCLR WebAssembly, iOS, and tvOS builds
- 作成者: @Copilot
- 作成日時: 2026年04月20日 20:37:51(UTC)
- マージ日時: 2026年05月05日 17:13:08(UTC)
- ラベル: arch-wasm area-GC-coreclr
概要
WebAssembly、iOS、tvOSのCoreClrビルドから、これらのプラットフォームでは使用できない/不要なGCモード(サーバーGCとバックグラウンドGC)を削除することで、バイナリサイズを最適化します。corerun.wasmの計測結果では、生バイナリで7.2%(325,686バイト)、Brotli圧縮後で**6.2%(82,556バイト)**のサイズ削減を実現しています。
変更内容
- src/coreclr/gc/gcpriv.h:
TARGET_WASMでコンパイル時にBACKGROUND_GCを無効化 - src/coreclr/clrdefinitions.cmake: WebAssemblyターゲットビルドで
FEATURE_SVR_GCを定義しないよう変更 - src/coreclr/gc/datadescriptor/datadescriptor.h, datadescriptor.inc: バックグラウンドGC固有のフィールド/グローバル変数を
#ifdef BACKGROUND_GCで条件付けしてcDACディスクリプタに反映 - GC契約管理ファイル: GCHeapワーカー/サーバー構成の型定義をプラットフォーム別に適切に条件付け
- GC.md: ドキュメント更新(フィールド説明の整備)
パフォーマンスへの影響
バイナリサイズ削減:
- 生成物サイズ:4,497,135 → 4,171,449バイト(7.2%削減)
- Brotli圧縮後:1,340,828 → 1,258,272バイト(6.2%削減)
関連Issue
その他
- 変更は内部実装(GC機能フラグとビルド設定)に限定されており、公開APIへの互換性影響なし
- レビュー時にコメント指摘があり、
SavedSweepEphemeralSeg/Startフィールドのガード条件確認や、ドキュメントのタイポ修正("sever builds" → "server builds")が言及されている
#127016 [wasm][coreclr] Cache calli cookies
- 作成者: @radekdoulik
- 作成日時: 2026年04月16日 17:14:06(UTC)
- マージ日時: 2026年05月05日 15:37:04(UTC)
- ラベル: arch-wasm area-VM-coreclr
概要
WebAssembly (WASM) 環境における calli クッキーの繰り返しの計算を避けるため、キャッシング機構を実装しました。HelloWorld での計測結果、キャッシュは 51.4% のヒット率を達成し、計 35 回のアクセスのうち 18 回がキャッシュから取得されています。
変更内容
- src/coreclr/vm/interpexec.cpp/h: インタープリタ実行パスにおける
calliクッキー管理の変更 - src/coreclr/vm/jitinterface.cpp: JIT インターフェースでのクッキー取得ロジックの最適化
- src/coreclr/vm/method.cpp/hpp:
MethodDescにCalliCookieキャッシュフィールドを追加し、SetCalliCookie/GetCalliCookieアクセサメソッドを実装 - src/coreclr/vm/precode_portable.hpp: ポータブルプリコード関連の型定義更新
- src/coreclr/vm/wasm/callhelpers-interp-to-managed.cpp: WASM 環境でのマネージド呼び出しヘルパーの最適化
- src/coreclr/vm/wasm/callhelpers-pinvoke.cpp: P/Invoke 呼び出しヘルパーの微調整
- src/coreclr/vm/wasm/helpers.cpp:
calliスタブ呼び出しにおけるクッキーのキャッシング実装 - src/tasks/WasmAppBuilder/coreclr/InterpToNativeGenerator.cs: WASM コード生成での調整
パフォーマンスへの影響
改善: キャッシング機構により、繰り返しの expensive な calli クッキー取得呼び出しが削減されます。測定例では 51.4% のキャッシュヒット率を達成し、実行時オーバーヘッドが軽減されます。
懸念点: クッキー情報は void* として格納されており、InterpreterCalliCookie(関数ポインタ型)とのキャスト処理が複数箇所で発生しているため、型安全性向上の余地があります。
関連Issue
なし
その他
本変更は WASM ビルド固有の最適化です。Copilot のコード審査では、型キャスト処理(void* ↔ 関数ポインタ)の改善、および呼び出し規約の統一(3引数 vs 4引数シグネチャ)に関する複数の指摘がされています。これらは将来的なリファクタリングの候補と考えられます。
#127005 Fix illink TypeMap proxy retention. Fixes #127004.
- 作成者: @rolfbjarne
- 作成日時: 2026年04月16日 14:31:45(UTC)
- マージ日時: 2026年05月05日 17:09:23(UTC)
- ラベル: linkable-framework area-Tools-ILLink
概要
ILLinkのTypeMap処理におけるトリミングバグを修正しました。TypeMapHandler.MarkTypeMapAttributeがAnnotations.MarkInstantiatedを直接呼び出していたため、完全な処理パイプライン(ProcessTypeおよびProcessInstantiated)がスキップされ、TypeMapおよびTypeMapAssociationエントリが誤ってトリミングされていました。修正によりMarkRequirementsForInstantiatedTypesを呼び出すことで、全処理パイプラインが実行され、型のインスタンス化順序に関わらず外部のTypeMapおよびプロキシTypeMapAssociationエントリが適切に保持されるようになります。
変更内容
- MarkStep.cs:
MarkRequirementsForInstantiatedTypesメソッドのアクセシビリティをprotectedからprotected internalに変更し、TypeMapHandlerから呼び出し可能にしました。 - TypeMapHandler.cs:
MarkTypeMapAttribute内でAnnotations.MarkInstantiatedの代わりにMarkRequirementsForInstantiatedTypesを呼び出すよう変更しました。 - TypeMap.cs(テスト): 同一型に対して
TypeMapとTypeMapAssociationの両方が保持される場合を検証するテストケースを追加しました。
パフォーマンスへの影響
影響なし
関連Issue
その他
この修正により以下の2つのバグシナリオが解決されます:
TypeMapAssociationの誤ったトリミング: 型がターゲットとしてTypeMapとTypeMapAssociationの両方に出現する場合、ProcessInstantiatedが呼ばれないためTypeMapAssociationエントリが誤ってトリミングされていました。TypeMapの誤ったトリミング: 型がプロキシターゲット(arg[1])かつトリミングターゲット(arg[2])で、プロキシアソシエーションのソース型がトリミングターゲットより先にインスタンス化される場合、ProcessTypeが呼ばれないためTypeMapエントリが誤ってトリミングされていました。
#126916 [Android] In-Proc Crash Reporter
- 作成者: @mdh1418
- 作成日時: 2026年04月14日 22:37:01(UTC)
- マージ日時: 2026年05月05日 15:38:10(UTC)
- ラベル: area-Diagnostics-coreclr os-android
概要
Android CoreCLRにおいて、ネイティブクラッシュ、中止、混合管理/ネイティブ障害の診断を改善するため、opt-inのin-proc crash reporterを実装しました。JSON形式のクラッシュレポートを生成し、createdumpの出力と互換性のあるスキーマを採用しています。レポートはDOTNET_DbgMiniDumpNameで指定した場所に*.crashreport.jsonファイルとして出力されます。
有効化には以下の環境変数が必須です:
DOTNET_EnableCrashReport=1
DOTNET_DbgMiniDumpName=/data/data/<package>/files/dotnet_crash_%p
変更内容
- PAL側の実装:
signalsafejsonwriter(固定バッファJSON書き込み)、inproccrashreporter(クラッシュレポート生成、logcat/stderr出力、ファイル出力)を新規追加 - VM側の実装:
crashreportstackwalker(管理スタック走査、スレッド列挙、例外抽出のコールバック)を新規追加し、EE起動時にPALコールバックを登録 - ランタイム統合:Android crash/abort信号パスにクラッシュレポート生成を統合、ビルド設定を追加
- API追加:
PAL_RegisterCrashReporterCallbacks()および関連ヘルパーをPAL公開APIに追加
パフォーマンスへの影響
クラッシュパス専用の実装のため通常実行時に影響なし。クラッシュ時のパフォーマンスについては、後続PRでasync-signal-safetyの完全対応予定。現在は混在実装(既存信号安全コードと最善努力ベースのVM検査)。
関連Issue
なし
その他
- スキーマ偏差:
createdumpのExceptionTypeではなくsignalフィールドを使用(POSIX信号で識別)。ルートのpidフィールドなし(プロセス内実行のため暗黙的)。 - opt-in設計:両方の環境変数が必須。
DOTNET_DbgMiniDumpNameが未設定またはファイルが開けない場合、レポートは出力されない - 後続作業:クロスプラットフォーム対応、logcat/stderr出力、ファイルローテーションポリシー、stress log統合、完全なasync-signal-safety化が予定されている
- 参考資料:実装例はhttps://gist.github.com/mdh1418/31b36ef77d3c057ff061b92e28b527d7で確認可能
#125967 Fix memory leak of offset_to_bb_hash
- 作成者: @dovydenkovas
- 作成日時: 2026年03月23日 15:18:38(UTC)
- マージ日時: 2026年05月05日 17:18:32(UTC)
- ラベル: area-VM-meta-mono community-contribution
概要
Mono JITコンパイラのヘルパー関数内で、基本ブロック情報用に作成されたハッシュテーブル(offset_to_bb_hash)がメモリ解放されていなかったメモリリークを修正しました。冗長モード(cfg->verbose_level >= 2)でのディスアセンブリコード出力時に、ネイティブオフセットと基本ブロック番号のマッピング用ハッシュテーブルにg_hash_table_destroyを追加して、確保したメモリを適切に解放します。
変更内容
src/mono/mono/mini/helpers.c: ハッシュテーブル破棄処理を追加(+1行)
パフォーマンスへの影響
影響なし。メモリリーク修正により、冗長モード実行時のメモリ使用量が削減されます。
関連Issue
その他
- Linux Verification Center(linuxtesting.org)のSVACE静的解析ツールで検出
- Mono JITコンパイラの内部実装(ディスアッセンブリ出力機能)に関する修正
#125554 [RyuJit] Decouple igNum from strict layout order
- 作成者: @SingleAccretion
- 作成日時: 2026年03月14日 11:45:03(UTC)
- マージ日時: 2026年05月05日 04:52:44(UTC)
- ラベル: area-CodeGen-coreclr community-contribution
概要
RyuJIT コンパイラの instruction group (IG) 生成を strict な layout order の制約から解放する変更です。現在は igNum の順序が linked list の順序(最終的なレイアウト順序)と厳密に一致していますが、本変更により epilog と funclet prolog を表すIGについて、レイアウト順序外での生成を可能にします。これは "before/after [in layout order]" という抽象化API を導入し、実際の順序判定は linked list に委譲することで実現されています。
最終的な目標として、単一IG prolog の制約を完全に削除することを目指しています。
変更内容
- emit.h/emit.cpp: IGNum の順序付けロジックを抽象化。
igNumの直接的な比較をやめ、linked list ベースの順序判定API (IsBeforeInOrder/IsAfterInOrder相当) を実装 - emitarm64.cpp, emitloongarch64.cpp, emitxarch.cpp: プラットフォーム固有のIG生成コードを新しいAPI に対応
- watchdog.cpp: ストレステスト (全IGを単一命令グループに分割するモード) の実行時のタイムアウト対応
パフォーマンスへの影響
通常モード (ストレスモード非適用時) では、epilog と funclet prolog が現在単一IGに収まるためゼロディフ変更です。
ストレスモード有効時の検証結果:
- 動作的な回帰なし(全diffs は期待値と一致を確認)
- 2件のストレス失敗を調査:
- Helix のコンソールログ欠落問題(テスト自体は成功)
- x86 GCStress タイムアウト(変更前後で再実行時は成功、約1時間で完了)
関連Issue
なし
その他
本変更は、将来的な単一IG prolog 制約の完全削除に向けた基盤整備です。ストレスモード時の x86 GCStress タイムアウトについては、変更そのものではなく既存の遅さに由来する問題と判断されています。
#125023 [release/8.0-staging] Update dependencies from dotnet/arcade
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年03月01日 05:02:00(UTC)
- マージ日時: 2026年05月05日 15:48:51(UTC)
- ラベル: Servicing-approved area-codeflow
概要
dotnet/arcadeの依存関係を更新するロボット的なPull Requestです。Arcade SDKおよび関連ビルドタスク・ツールパッケージを8.0.0-beta.26112.1から8.0.0-beta.26224.3に更新し、.NET SDKバージョンを8.0.126に統一しています。
変更内容
- eng/Version.Details.xml: Microsoft.DotNet.Arcade.Sdkを含む17個のArcadeパッケージとMicrosoft.DotNet.XUnitConsoleRunnerを更新(8.0.0-beta.26112.1 → 8.0.0-beta.26224.3、および2.5.1-beta.26112.1 → 2.5.1-beta.26224.3)
- eng/Versions.props: sdk.versionを8.0.126に、tools.dotnetを8.0.126に更新
- global.json: .NET SDKバージョン関連の設定を更新
- NuGet.config: マイナー調整
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- このPRはdotnet-maestro[bot]による自動依存関係更新です
- release/8.0-stagingブランチ向けの更新
- Arcadeビルドは2026年4月24日UTC 20:12:33に作成されたもの