注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #125048 Disable stackoverflowtester on unix-x64
- #125044 JIT: Fix reordering of inlinee return expression with async save/restore
- #125043 [wasm][coreclr] Re-enable runtime tests
- #125036 Add guidelines for RequiresProcessIsolation in tests
- #125035 Address feedback on RequiresProcessIsolation guidelines in tests
- #125034 Add guidelines for RequiresProcessIsolation in tests
- #125027 Array stack iterators
- #125007 Disable superpmi tests on Mono
- #124992 Fix pal_io.c on OpenBSD
- #124989 Fix StreamPipeReader.CopyToAsync not advancing past buffered data
- #124986 [cDAC] Fix NonVirtualEntry2MethodDesc to handle invalid precode addresses
- #124973 Make
CustomizeTrimmingvirtual - #124972 Clean up
SkipUnresolvedhandling in linker test framework. - #124969 [browser][coreCLR] throttling + WBT
- #124915 Cleanup basic block
- #124883 Drop RequiresProcessIsolation from Loader tests
- #124846 [Wasm RyuJIT] Block Stores pt. 2
- #124841 [release/9.0-staging] Update dependencies from dotnet/arcade
- #124836 Convert IDacDbiInterface to return HRESULT to fix cross-DSO exception handling on mobile platforms
- #124834 Convert exception-related MethodDescCallSite calls to UnmanagedCallersOnly
- #124808 Add an api-proposal Copilot skill
- #124795 [wasm][coreclr] Make run.cmd work with wasm arch
- #124764 Switch ilasm to Antlr4BuildTasks
- #124739 [release/10.0] Update dependencies from dotnet/xharness
- #124714 [wasm] Bump chrome for testing - linux: 145.0.7632.109, windows: 145.0.7632.77
- #124663 Add blittable color types Argb
and Rgba to System.Numerics.Vectors - #124566 Replace string.Compare == 0 patterns with Equals/StartsWith/AsSpan calls
- #124458 [release/9.0-staging] Update dependencies from dotnet/hotreload-utils
- #124453 [release/10.0] Update dependencies from dnceng/internal/dotnet-optimization
- #124245 [automated] Merge branch 'release/9.0' => 'release/9.0-staging'
- #124209 [release/9.0-staging] Update dependencies from dotnet/cecil
- #124165 [release/9.0-staging] Update dependencies from dotnet/xharness
- #124125 Fix WASM boot config ContentRoot to use IntermediateOutputPath
- #123251 [clr-interp] Support for breakpoints and stepping
- #122485 [RISC-V] Enable instruction printing for the
Generate codephase in JIT dumps
#125048 Disable stackoverflowtester on unix-x64
- 作成者: @jakobbotsch
- 作成日時: 2026年03月02日 13:10:46(UTC)
- マージ日時: 2026年03月02日 16:12:07(UTC)
- ラベル: area-ExceptionHandling-coreclr
概要
Unix x64環境でのstackoverflowtesterテストの無効化を復元するPRです。PR #123248で失われた除外設定を、[ActiveIssue]属性を使用して再度有効にします。これにより、Windows以外のx64プラットフォームでのスタックオーバーフローテストの実行を防ぎます。
変更内容
| ファイル | 変更内容 |
|---|---|
src/tests/baseservices/exceptions/stackoverflow/stackoverflowtester.cs |
[ActiveIssue]属性を追加(+5/-0) |
具体的な変更:
- Unix x64環境でのテスト実行を無効化するため、影響を受けるStackOverflow tester
[Fact]メソッドに[ActiveIssue("https://github.com/dotnet/runtime/issues/110173", ...IsNotWindows, IsX64Process)]属性を付与
パフォーマンスへの影響
影響なし (本変更はテスト実行の制御のみで、ランタイムパフォーマンスに影響しません)
関連Issue
- Issue #110173: Unix x64環境でのスタックオーバーフロー関連の既知問題
- PR #123248: 本変更で復元される以前の除外設定が失われたPR
その他
- PR #123248での
issues.targetsの設定削除により、Unix x64環境でのテスト実行が意図せず復活していた状態を修正 [ActiveIssue]属性を使用することで、テスト除外設定の一元管理(インライン化)を実現し、将来の保守性を向上
#125044 JIT: Fix reordering of inlinee return expression with async save/restore
- 作成者: @jakobbotsch
- 作成日時: 2026年03月02日 12:33:43(UTC)
- マージ日時: 2026年03月02日 19:20:31(UTC)
- ラベル: area-CodeGen-coreclr
概要
JIT インライニング時に非同期コンテキストの保存/復元が必要な場合、インリー関数の戻り値式の評価順序が誤ってコンテキスト復元後に移動され、AsyncLocal のセマンティクスが変更される回帰バグを修正しました。戻り値式がコンテキスト復元前に評価されるよう、インリー関数の戻り値をスピルする一時変数の生成ロジックを拡張しています。
変更内容
- src/coreclr/jit/fgbasic.cpp:
CORINFO_ASYNC_SAVE_CONTEXTSフラグが設定されたインリー関数に対して、戻り値スピル一時変数の生成を強制するロジックを追加(複数リターンブロックや GC参照ローカルがない場合も対象に拡張) - src/coreclr/jit/importer.cpp: デバッグアサーションを緩和し、新しいシナリオ(非同期コンテキスト保存/復元が必要な場合)での戻り値スピル一時変数の存在を許可
- src/tests/async/regression/125042.cs: インリー化された非同期メソッドが戻り値式内で
AsyncLocalを読み書きするケースをカバーする回帰テストを追加 - src/tests/async/regression/125042.csproj: テストプロジェクト構成ファイルを追加
パフォーマンスへの影響
特定の条件(CORINFO_ASYNC_SAVE_CONTEXTS フラグを持つインリー関数)では、戻り値スピル一時変数が必ず生成されるため、わずかなメモリ使用量の増加が生じる可能性があります。ただし、この変更は正確性の確保が目的であり、パフォーマンス低下は最小限です。
関連Issue
#125042(回帰バグ)
その他
この修正は、ランタイム非同期シナリオ下でのインライニング時の制御フロー最適化に関する変更です。戻り値式の評価順序がセマンティクスに影響する特殊なケースを対象としているため、非同期コンテキストを扱わない通常のコードには影響しません。
#125043 [wasm][coreclr] Re-enable runtime tests
- 作成者: @radekdoulik
- 作成日時: 2026年03月02日 11:54:42(UTC)
- マージ日時: 2026年03月02日 14:35:53(UTC)
- ラベル: arch-wasm area-ExceptionHandling-coreclr
概要
WASM/CoreCLR上で無効化されていたランタイム/JITテストを再度有効化するPRです。issue #123793に関連する基盤の問題がPR #124296で修正されたため、複数のテストからActiveIssueスキップアノテーションを削除し、WASM環境でのテスト実行を復活させています。
変更内容
- src/tests/JIT/Regression/JitBlue/GitHub_4044/GitHub_4044.cs: WASM向けの
ActiveIssueスキップアノテーション(1行)を削除 - src/tests/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b68872/b68872.il: WASM向けの
ActiveIssueカスタム属性(7行)を削除 - src/tests/JIT/Methodical/eh/basics/throwinfilter.il: WASM向けの
ActiveIssueカスタム属性(5行)を削除
対象テスト:JIT回帰テスト、例外処理(EH)関連の回帰テスト、フィルターでの例外スロー動作テスト
パフォーマンスへの影響
影響なし。本変更はテストスイートの有効化のみで、ランタイムのコード変更を含みません。
関連Issue
- 解決Issue: dotnet/runtime#123793
- 関連PR: dotnet/runtime#124296(基盤となる修正を含む)
その他
このPRはテスト基盤の復旧を目的としており、PR #124296の修正に依存しています。WASM環境でのJIT機能の正確性を確保するための重要なテストカバレッジ復旧です。
#125036 Add guidelines for RequiresProcessIsolation in tests
- 作成者: @Copilot
- 作成日時: 2026年03月02日 06:34:03(UTC)
- マージ日時: 2026年03月02日 07:16:16(UTC)
- ラベル: area-Host
概要
CoreCLR テストプロジェクトで <RequiresProcessIsolation>true</RequiresProcessIsolation> を設定する必要がある場合のガイドラインドキュメントを追加しました。プロジェクトファイルのトリガー(環境変数、ランタイムホスト設定、トリミング、ネイティブ依存関係)とソースコードのトリガー(Environment.Exit、プロセス全体のGC操作、collectible ALC、カスタム Main など)をカバーする28個のルールで構成されています。
変更内容
- 新規ファイル:
docs/workflow/testing/coreclr/requiresprocessisolation.md- 28個のプロセス分離が必須となる条件を記載
- プロジェクトファイルベースのトリガーとソースコードベースのトリガーの2つのサマリーテーブルを提供
RuntimeHostConfigurationOptionショートハンドを単一ルールに統合し、Microsoft.NET.ILLink.targetsを参照- 既存の
testing.md(181行目)からリンク済み
パフォーマンスへの影響
影響なし(ドキュメント追加のみ)
関連Issue
なし
その他
- Copilot coding agentにより作成されたドキュメント
- テスト実行の最適化を目的とし、不要なプロセス分離を避けるための開発者向けガイダンス
- マージされたテストランナーの恩恵を受けられないシナリオの包括的なリスト化により、開発生産性の向上を支援
#125035 Address feedback on RequiresProcessIsolation guidelines in tests
- 作成者: @Copilot
- 作成日時: 2026年03月02日 06:07:39(UTC)
- マージ日時: 2026年03月02日 06:32:12(UTC)
- ラベル: 指定なし
概要
RequiresProcessIsolationテストガイドラインのドキュメント改善PRです。AutoreleasePoolSupportルールをRuntimeHostConfigurationOptionに統合し、ドキュメント構造を整理。重複していたルール番号17のエラーも修正されています。
変更内容
requiresprocessisolation.md:AutoreleasePoolSupportをRuntimeHostConfigurationOptionルールに統合。MSBuildショートハンドプロパティの定義元としてMicrosoft.NET.ILLink.targetsを参照。ルール番号を再採番し、重複していたルール17の番号エラーを修正(+32/-32行)testing.md: 既存の「When to make a test RequiresProcessIsolation」セクションからrequiresprocessisolation.mdへのフォワードリンクを追加(+2行)
パフォーマンスへの影響
影響なし
関連Issue
#125034(このPRで対処したレビュアーフィードバック)
その他
ドキュメント整理のみで、ランタイムやテストフレームワークのコード変更はありません。テスト実装者向けのドキュメント精度向上が目的です。
#125034 Add guidelines for RequiresProcessIsolation in tests
- 作成者: @MichalStrehovsky
- 作成日時: 2026年03月02日 06:03:25(UTC)
- マージ日時: 2026年03月02日 22:18:36(UTC)
- ラベル: area-System.Diagnostics.Process
概要
CoreCLR テストプロジェクトにおいて RequiresProcessIsolation 属性をいつ設定するかについてのガイドラインドキュメントを追加しました。プロジェクトプロパティとソースコードパターンに基づいた具体的なルールと設定トリガーを文書化しており、テスト開発者が適切にプロセス分離要件を判断できるようになります。
変更内容
requiresprocessisolation.md (+218行):新規ドキュメント作成
RequiresProcessIsolation設定の必要性に関する詳細なガイドライン追加- プロジェクトプロパティに基づくルール定義
- ソースコード内で検出すべきパターンを明記
testing.md (+2行):既存ドキュメント更新
- 新しいガイドラインドキュメントへの参照リンク追加
パフォーマンスへの影響
影響なし
(本変更はドキュメント追加のみであり、ランタイムコードやテストフレームワークの実装に変更を含みません)
関連Issue
なし
その他
本ガイドラインは CoreCLR テストの保守性向上とテスト実行時の動作を統一するための文書化です。テスト開発者向けの運用ガイドとなります。
#125027 Array stack iterators
- 作成者: @AndyAyersMS
- 作成日時: 2026年03月01日 19:53:38(UTC)
- マージ日時: 2026年03月02日 20:06:48(UTC)
- ラベル: area-CodeGen-coreclr
概要
JITコンパイラのArrayStackコンテナにrange-based iteratorサポートを追加する変更です。BottomUpOrder()とTopDownOrder()というイテラブルビューを導入し、複数の最適化フェーズでインデックスベースのループをrange-forループに置き換え、コード可読性を向上させ、繰り返しのインデックスアクセス処理を削減します。
// 変更前
for (unsigned i = 0; i < stack.Height(); i++)
{
process(stack[i]);
}
// 変更後
for (auto item : stack.BottomUpOrder())
{
process(item);
}
変更内容
- arraystack.h:
BottomUpOrder()とTopDownOrder()のイテラブルビュー、逆イテレータ、DEBUG時のミューテーション検出機能を追加 - 最適化関連ファイル群: ssabuilder.cpp、scev.cpp、promotiondecomposition.cpp、promotion.cpp、optimizer.cpp、optcse.cpp、morph.cpp、lower.cpp、lclmorph.cpp、inductionvariableopts.cpp、assertionprop.cpp等で、index-basedループをrange-forループに置き換え
- フローグラフ関連: flowgraph.cpp、fgwasm.cpp、fgopt.cpp、fgdiagnostic.cppでスタック反復処理を新しいorder helperに移行
- コード生成: codegencommon.cpp、codegenarm.cpp、compiler.cppで同様の置き換え
パフォーマンスへの影響
影響なし
この変更は主にコード生成段階での反復処理の改善であり、JIT最適化ロジック自体の変更ではありません。range-based iteratorの使用はボイラープレート削減による可読性向上が主な目的です。DEBUG時のミューテーション検出は検証目的で、RELEASE構成では最小限のオーバーヘッドです。
関連Issue
なし
その他
- DEBUG構成時のミューテーション検出機能により、イテレーション中のスタック変更を検出可能
- C11のrange-forループの活用により、モダンCの実装パターンを採用
- 20ファイルにわたる統一的なリファクタリングで、JIT全体のコード品質向上を実現
#125007 Disable superpmi tests on Mono
- 作成者: @Copilot
- 作成日時: 2026年02月28日 09:33:21(UTC)
- マージ日時: 2026年03月02日 17:38:54(UTC)
- ラベル: os-linux area-Infrastructure-mono
概要
Mono AOT ビルドで SuperPMI テストのサブスクリプトに対して「No merged runner found」エラーが発生する問題を修正しています。SuperPMI は CoreCLR 専用のツールであり Mono プラットフォームでは不要なため、superpmicollect.csproj に MonoAotIncompatible マーカーを追加し、Mono LLVM AOT パイプラインから SuperPMI テストツリーを除外しました。
変更内容
src/tests/JIT/superpmi/superpmicollect.csproj:<MonoAotIncompatible>true</MonoAotIncompatible>を追加。この設定により.NoMonoAotマーカーファイルが生成され、既存のbuild.projロジックによって Mono AOT コンパイルから自動的に除外されます。eng/pipelines/runtime-llvm.yml: Mono LLVMFULLAOT ジョブのtestBuildArgsパラメータから-tree:JIT/superpmiを削除。SuperPMI テストが Mono LLVM AOT パイプラインで構築・実行されなくなります。
パフォーマンスへの影響
影響なし。本変更は Mono プラットフォーム向けの不要なテストビルド処理を削減するため、ビルド時間が若干短縮される可能性があります。CoreCLR ビルドは影響を受けません。
関連Issue
#124890 - "[Build Error][Mono] No merged runner found for test script for superpmi sub-test scripts in LLVMFULLAOT_RuntimeTests"
その他
技術的注記: Copilot のコード審査では、MonoAotIncompatible マーカーのみでは _BuildSpmiTestProjectScripts ターゲットが引き続き実行され、検証対象の .sh スクリプトが生成される可能性があると指摘されています。ただし、eng/pipelines/runtime-llvm.yml での -tree:JIT/superpmi 削除により、Mono AOT パイプライン実行時にこれらのスクリプトが検証対象として選別されないため、実質的には問題が解決されます。
#124992 Fix pal_io.c on OpenBSD
- 作成者: @sethjackson
- 作成日時: 2026年02月27日 22:50:23(UTC)
- マージ日時: 2026年03月02日 15:50:11(UTC)
- ラベル: area-System.IO.Compression community-contribution os-openbsd
概要
OpenBSD プラットフォーム対応の改善です。TARGET_OPENBSD マクロの定義、OpenBSD固有のディレクトリエントリフラグ DT_WHT のスキップ、ピアプロセスID取得時の getpeereid 使用、ファイルシステム情報取得時の必要なヘッダー追加などを実装しています。
変更内容
- eng/native/configurecompiler.cmake:
CLR_CMAKE_TARGET_OPENBSDが定義される際にTARGET_OPENBSDマクロを定義(+10行) - src/native/libs/System.Native/pal_io.c:
- OpenBSD では存在しない
DT_WHTをスキップする条件分岐を追加 SystemNative_GetPeerID()で OpenBSD 上はgetsockoptの代わりにgetpeereidを使用statfs関連処理で<sys/types.h>のインクルードを追加(+5行)
- OpenBSD では存在しない
- src/native/libs/configure.cmake: OpenBSD 固有の設定を追加(+2/-1行)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
OpenBSD では標準的なBSD APIと異なる挙動があるため、プラットフォーム固有の対応が必要です。本変更は OpenBSD での P/Invoke レイヤーの互換性向上を目的としており、他のプラットフォームへの影響はありません。
#124989 Fix StreamPipeReader.CopyToAsync not advancing past buffered data
- 作成者: @BrennanConroy
- 作成日時: 2026年02月27日 22:07:58(UTC)
- マージ日時: 2026年03月02日 19:30:44(UTC)
- ラベル: bug area-System.IO.Pipelines
概要
StreamPipeReader.CopyToAsync メソッドにおいて、バッファリングされたデータを正常に処理した後、読み取り位置を適切に進めない不具合を修正しました。ドレイン成功時にセグメントループが終了してsegmentがnullになるため、finally ブロックで AdvanceTo が呼ばれず、バッファリングデータが _readHead/_readIndex に残存して、後続の読み取りで重複返却される問題を解決します。
変更内容
- StreamPipeReader.cs: finally ブロックに else-if 分岐を追加。セグメントループが正常完了した場合、_readTail まで AdvanceTo を呼び出してバッファリングデータを完全に削除
- PipeReaderCopyToAsyncTests.cs: 修正検証用の回帰テストケース54行を追加
パフォーマンスへの影響
影響なし。本修正は不具合修正であり、正常系の動作確立を目的としています。既存のメモリ管理フローに追加のチェック分岐が入るため、理論的にはごく軽微なオーバーヘッドがありますが、実質的なパフォーマンス低下はありません。
関連Issue
#124989
その他
本修正はバグ修正であり、既存コードの動作改善です。CopyToAsync メソッドは PipeWriter と Stream の両方の宛先をサポートしており、両方の実装パスに同じ問題が存在していたものと考えられます。
#124986 [cDAC] Fix NonVirtualEntry2MethodDesc to handle invalid precode addresses
- 作成者: @max-charlamb
- 作成日時: 2026年02月27日 19:55:37(UTC)
- マージ日時: 2026年03月02日 21:17:24(UTC)
- ラベル: area-Diagnostics-coreclr
概要
cDAC(Contract-based DAC)のNonVirtualEntry2MethodDescメソッドが、precodeのメモリ範囲内にあるが無効なアドレスに対してInvalidOperationExceptionをスローしていた問題を修正しました。ネイティブDAC実装と同じ動作(NULLを返す)に統一することで、!clru コマンドがIL stubで正常に動作するようになります。
変更内容
ExecutionManagerCore.cs
GetMethodDescFromStubAddressの呼び出しを try-catch で囲み、InvalidOperationExceptionをキャッチしてTargetPointer.Nullを返すように修正- これによりネイティブDAC実装と一貫した例外処理を実現
VarargPInvokeDumpTests.cs
VarargPInvoke_GetCodeHeaderDataWithInvalidPrecodeAddressテストを追加- VarargPInvokeダンプからprecodeエントリポイントを取得し、1バイト オフセットして無効なアドレスを生成
GetCodeHeaderDataがE_INVALIDARG(0x80070057)を返すことを検証
パフォーマンスへの影響
影響なし。例外処理フローの追加により若干のオーバーヘッドが発生する可能性がありますが、エラーケース(無効なprecode範囲アドレス)限定であり、通常の処理パスには影響ありません。
関連Issue
なし
その他
このPRは互換性の破壊的変更ではなく、バグ修正に該当します。従来はcDAC がネイティブDAC と異なるエラーコードを返していたため、デバッガーの呼び出し側でアサーション失敗が発生していました(Debug.Assert(hrLocal == hr))。修正により、cDAC とネイティブDAC の動作が統一され、IL stub の診断に関連する!clru コマンドの信頼性が向上します。
#124973 Make CustomizeTrimming virtual
- 作成者: @mrvoorhe
- 作成日時: 2026年02月27日 14:45:00(UTC)
- マージ日時: 2026年03月02日 01:47:09(UTC)
- ラベル: linkable-framework community-contribution area-Tools-ILLink
概要
.NET 8からの変更で失われていた CustomizeTrimming メソッドの virtual 修飾子を復元するPRです。Unity's test frameworkが trimming customization hookをオーバーライドできるようにするための変更です。
変更内容
- src/tools/illink/test/Trimming.Tests.Shared/TestRunner.cs: 共有の partial
CustomizeTrimming(TrimmingDriver, TestCaseMetadataProvider)宣言にvirtual修飾子を追加 - src/tools/illink/test/Mono.Linker.Tests/TestCasesRunner/TestRunner.cs: Mono.Linker test runner の partial 実装に
virtual修飾子を追加 - src/coreclr/tools/aot/ILCompiler.Trimming.Tests/TestCasesRunner/TestRunner.cs: NativeAOT test runner の partial 実装に
virtual修飾子を追加
各ファイルは1行の追加・1行の削除(total: 2行)となっています。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- この変更は .NET 8 から net9(または現在のバージョン)への refactor で削除されていた仮想メソッド修飾子の復元です
- 破壊的変更ではなく、削除されたメソッド オーバーライド機能の復元のため、互換性向上に分類されます
- partial メソッドの宣言側と実装側の両方で
virtual修飾子が一貫性を持つように更新されています
#124972 Clean up SkipUnresolved handling in linker test framework.
- 作成者: @mrvoorhe
- 作成日時: 2026年02月27日 14:43:10(UTC)
- マージ日時: 2026年03月02日 01:48:02(UTC)
- ラベル: linkable-framework community-contribution area-Tools-ILLink
概要
ILLinkテストフレームワークのSkipUnresolved設定を整理する変更です。テストフレームワークのデフォルト値がILLink本体と一致していなかったため、デフォルト値をfalseからtrueに修正し、AddSkipUnresolvedメソッドが常に明示的な値をlinker引数に出力するようにしました。これにより、SkipUnresolved=falseを明示的に指定したテストが確実にその値で実行されるようになります。
変更内容
- TrimmingArgumentBuilder.cs:
AddSkipUnresolvedメソッドを修正し、常に--skip-unresolvedフラグに明示的なブール値を出力 - TestCaseMetadataProvider.cs:
SkipUnresolvedオプションのデフォルト値をtrueに変更してILLink本体と一致させた - 58ファイルのテストケース: 従来の
SetupLinkerArgument("--skip-unresolved", ...)から[SkipUnresolved(...)]属性への移行- 56ファイルが
[SkipUnresolved(true)]に変更 - 2ファイル(MissingReferenceInUsedCodePath.cs、MissingReferenceInUnusedCodePath.cs)が
[SkipUnresolved(false)]を使用して、スキップ無効化を確実に実施
- 56ファイルが
パフォーマンスへの影響
影響なし。本変更はテストフレームワークのロジック修正であり、実行時パフォーマンスに関連するコード変更ではありません。
関連Issue
なし
その他
潜在的な懸念点: Copilotレビューで指摘されているように、ToString().ToLowerInvariant()またはskipUnresolved ? "true" : "false"で明示的に小文字出力を行うことが推奨されています。現在の実装ではTrue/False(大文字)が出力される可能性があり、ダウンストリーム処理での一貫性に影響する可能性があります。
#124969 [browser][coreCLR] throttling + WBT
- 作成者: @pavelsavara
- 作成日時: 2026年02月27日 14:24:38(UTC)
- マージ日時: 2026年03月02日 20:27:15(UTC)
- ラベル: arch-wasm area-Host os-browser
概要
WebAssembly(WASM)ブラウザ環境でのアセット読み込みにスロットリング機能を実装し、全ファイルタイプに対して有効化しました。アセット優先度の管理機能を追加し、onDownloadedAsset()がエラー時にもカウントされるよう修正しています。また、WebCIL名の修正も含まれています。
変更内容
- loader/assets.ts: アセット管理ロジックを大幅拡張(173行追加/86行削除)。スロットリング機能の実装と
asset.priorityプロパティの追加 - System.Native.Browser/utils/scheduling.ts: 新規ファイル追加。スケジューリングとスロットリング機能の実装(41行)
- loader/run.ts: アセット読み込み処理の修正(13行追加/13行削除)
- System.Native.Browser/native/index.ts: ブラウザホストコンポーネントの更新(10行追加/5行削除)
- System.Native.Browser/utils/host.ts: ホスト処理の簡素化(3行追加/38行削除)
- types/exchange.ts, types/internal.ts: 型定義の拡張(スロットリング関連の型追加)
- BuildWasmAppsJobsList.txt, BuildWasmAppsJobsListCoreCLR.txt: テストシナリオの更新
パフォーマンスへの影響
スロットリング機能により、WASM環境でのアセット読み込みを制御可能に。複数ファイルの同時ダウンロード数を制限することで、帯域幅利用の最適化と メモリ使用量の削減が期待できます。leaveThrottling()を選択的に呼び出すことで、初期化後のスロットリング状態を細かく制御可能です。
関連Issue
Fixes #124900
その他
onDownloadedAsset()の失敗時カウント修正により、アセット読み込みの信頼性が向上- WebCILファイル名の修正が含まれている
- 型システム(public-api.ts)への変更は最小限に抑えられており、後方互換性に配慮
#124915 Cleanup basic block
- 作成者: @AndyAyersMS
- 作成日時: 2026年02月26日 18:26:15(UTC)
- マージ日時: 2026年03月02日 20:06:30(UTC)
- ラベル: area-CodeGen-coreclr
概要
BasicBlockクラスの公開フィールドをカプセル化し、関連するクリーンアップを実施。JITコンパイラのコア部分における設計改善で、27個のファイルにわたって直接フィールドアクセスをプロパティやメソッド経由に変更。
変更内容
- src/coreclr/jit/block.h: BasicBlockクラスの定義を修正(+59/-33)。公開フィールドをカプセル化し、アクセサメソッド/プロパティを追加
- src/coreclr/jit/fgbasic.cpp: BasicBlockの初期化・操作部分を更新(+23/-23)
- src/coreclr/jit/jiteh.cpp: 例外処理関連のブロック操作を修正(+28/-29)
- src/coreclr/jit/importer.cpp: IL importer内のフィールドアクセスを更新(+30/-34)
- その他JITコンポーネント: block.h の変更に伴い、fgopt.cpp、fgstmt.cpp、fgdiagnostic.cpp、codegenxarch.cpp等で複数箇所のフィールドアクセスをプロパティ経由に修正
パフォーマンスへの影響
影響なし。このPRはリファクタリング・設計改善であり、実行時のパフォーマンスには直接的な変更なし。プロパティアクセスはインライン化により同等の効率を維持。
関連Issue
なし
その他
このPRはJITコンパイラ内部設計の保守性向上を目的としたもの。BasicBlockの内部実装詳細をカプセル化することで、将来の構造変更をより安全に行える基盤を整備。変更は広範囲だが、これらはすべてコンパイラ内部の実装変更であり、公開APIには影響しない。
#124883 Drop RequiresProcessIsolation from Loader tests
- 作成者: @MichalStrehovsky
- 作成日時: 2026年02月26日 03:12:04(UTC)
- マージ日時: 2026年03月02日 05:58:36(UTC)
- ラベル: area-TypeSystem-coreclr
概要
Loader テストスイートから不要な RequiresProcessIsolation 属性を削除するプルリクエストです。AI(Opus 4.6)により RequiresProcessIsolation が必要なケースの判定ルールを確立し、それに基づいてLoader ツリーの不要な属性を削除。その後、ビルドとテスト実行結果により削除の妥当性を検証しています。
変更内容
- 主要な変更:
src/tests/Loader/配下の約300ファイルの.csprojおよび.ilprojファイルからRequiresProcessIsolation要素を削除 - 具体例:
MissingHostPolicyTests.csproj:RequiresProcessIsolationを削除DefaultInterfaceMethods/sharedgenerics/sharedgenerics_d.ilproj:RequiresProcessIsolationを削除- 複数のCovariantReturnsテストプロジェクトで属性を削除/プロジェクト構成を整理
- 関連する変更: 一部のテストプロジェクトは削除・リネーム(例:
UnitTest.ilproj→Covariant_UnitTest.ilproj)
パフォーマンスへの影響
影響なし。本変更はテストメタデータの削除であり、テスト実行速度やランタイムパフォーマンスには直接的な影響はありません。ただし、プロセス分離の削除により、テスト実行時の環境負荷が軽減される可能性があります。
関連Issue
なし
その他
- 留意点: Copilot による自動生成時に若干の誤検知があり、作成者が手動で検証・修正(例:プロセス終了を行う無関連ファイルがあるディレクトリでの属性削除など)
- テスト検証: 後続コミットでビルド実行および テスト結果検証を実施し、テスト削除がないことを確認
- 低信頼度警告: Copilot が6件の潜在的な問題を指摘(ILメソッド名の一貫性、アセンブリ名の不一致、Monoランタイムの未解決IssueなどCross-platform テストスキップの妥当性)
#124846 [Wasm RyuJIT] Block Stores pt. 2
- 作成者: @kg
- 作成日時: 2026年02月25日 05:52:42(UTC)
- マージ日時: 2026年03月02日 20:33:24(UTC)
- ラベル: arch-wasm area-CodeGen-coreclr
概要
WebAssembly RyuJIT コンパイラの Block Stores(ブロック転送命令)機能を実装するパート2。genCodeForCpObj の実装、stackifier の NIY シナリオ修正、メモリ操作の最適化により、参照を含む構造体のコピーコンパイルが可能に。ただしライトバリア呼び出し時にクラッシュする既知の問題あり。
// 参照を含む構造体コピー(ライトバリア実装待ち)
static unsafe void copyStructWithRefs(ref S2 a, ref S2 b) {
a = b;
}
// スタック上へのコピーは正常に動作
static unsafe void loadStructWithRefs(ref S2 src) {
S2 local = src;
}
変更内容
- codegenwasm.cpp:
genCodeForCpObj実装により構造体コピーコード生成対応 - lowerwasm.cpp: RewriteLocalStackStore 後のストア命令の正しい降級処理、
isContainableMemoryOpの拡張実装 - regallocwasm.cpp/lsrabuild.cpp: レジスタアロケーションの改善とローカルスタックストア処理の再編成
- gentree.h/lir.h: WASM コード生成関連フラグ追加
- stacklevelsetter.cpp: スタックレベル設定処理の調整
パフォーマンスへの影響
構造体コピー操作の最適化により、メモリオペレーション(特にスタック上への書き込み)がより効率的に処理可能に。従来 NIY(Not Implemented Yet)で失敗していた複数シナリオがコンパイル可能になることで、WASM ターゲット向けコードの品質向上が期待される。
関連Issue
#124903
その他
- 参照を含む構造体の別のアドレス空間へのコピーはライトバリアヘルパー呼び出し時にクラッシュする既知の制限あり(将来の PR で対応予定と推測)
- スタック上へのコピーおよびローカル変数への初期化は正常に動作確認済み
- 11 ファイル中 11 ファイルがレビュー対象(Copilot 新規指摘なし)
#124841 [release/9.0-staging] Update dependencies from dotnet/arcade
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年02月25日 02:02:30(UTC)
- マージ日時: 2026年03月02日 22:04:50(UTC)
- ラベル: Servicing-approved area-codeflow
概要
dotnet/arcadeの依存関係を更新するPull Request。Microsoft.DotNet.Arcade.Sdkを含む複数のビルドツールおよびテストユーティリティを、バージョン9.0.0-beta.26070.1から9.0.0-beta.26123.3へアップグレードしています。ビルドシステム全体の依存パッケージの一括更新です。
変更内容
- eng/Version.Details.xml: 19個のarcade関連パッケージのバージョン情報を更新
- eng/Versions.props: Microsoft.DotNet.XUnitAssertおよびMicrosoft.DotNet.XUnitConsoleRunnerのバージョン情報を更新
- eng/common/core-templates/job/source-build.yml: ソースビルド関連の設定を軽微修正
- global.json: グローバルバージョン設定を更新
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- このPRはdotnet-maestro[bot]による自動更新(Dependency Update Subscription)
- release/9.0-stagingブランチへのマージを対象とした依存関係アップデート
- 更新対象のパッケージには以下が含まれます:
- ビルドタスク: Archives、Feed、Installers、Packaging、TargetFramework、Templating、Workloads
- 開発ツール: GenAPI、GenFacades、Helix.Sdk、CodeAnalysis、RemoteExecutor
- テスト関連: XUnitExtensions、XUnitAssert、XUnitConsoleRunner
- その他: SharedFramework.Sdk、VersionTools.Tasks、XliffTasks
#124836 Convert IDacDbiInterface to return HRESULT to fix cross-DSO exception handling on mobile platforms
- 作成者: @steveisok
- 作成日時: 2026年02月25日 00:52:54(UTC)
- マージ日時: 2026年03月02日 11:59:26(UTC)
- ラベル: area-Diagnostics-coreclr
概要
モバイルプラットフォームでのクロスDSO例外処理の問題を修正するため、IDacDbiInterfaceの119個の非HRESULTメソッドをすべてHRESULT返却方式に変換しました。DAC側で例外をキャッチしてHRESULTに変換することで、C++例外がDAC→DBI境界を越えることを完全に排除します。
// 変更前
void IDacDbiInterface::GetThreadContext(CORDB_ADDRESS address, void* context);
// 変更後
HRESULT IDacDbiInterface::GetThreadContext(CORDB_ADDRESS address, void* context);
変更内容
- dacdbiinterface.h: 119個のメソッドシグネチャを非HRESULT返却からHRESULT返却+OUTパラメータに変更
- dacdbiimpl.h: 実装クラス宣言を同期更新
- dacdbiimpl.cpp, dacdbiimplstackwalk.cpp, dacdbiimpllocks.cpp: 119個のメソッド本体をEX_TRY/EX_CATCH_HRESULTでラップ
- DBI呼び出し側: process.cpp, rsthread.cpp, divalue.cpp他11ファイル内の164個の呼び出し箇所をHRESULT処理に更新(IfFailThrow()で例外に逆変換)
パフォーマンスへの影響
根本原因の解決: モバイルプラットフォームで各DSO内にlibcが静的リンクされており、-fvisibility=hiddenと-Bsymbolicにより各DSO独立のC typeinfo を持つ。libc++ RTTIはポインタ比較のみのため、DAC発生例外のtypeinfoポインタがDBI側と異なり、catch処理が機能しなかった問題を完全に解決。
懸念点: OUTパラメータ追加によるスタック使用量の若干の増加、呼び出し箇所の増加に伴うコード量増加(合計+3,241行/-2,427行)
関連Issue
不明
その他
- 164個の呼び出し箇所更新により既存エラー処理の挙動は保持(IfFailThrow()で例外処理を呼び出し元DSO内に限定)
- 大規模リファクタリング(16ファイル変更)で、デバッガの安定性向上が期待される特にmobile環境でのICorDebug操作
#124834 Convert exception-related MethodDescCallSite calls to UnmanagedCallersOnly
- 作成者: @AaronRobinsonMSFT
- 作成日時: 2026年02月24日 23:49:47(UTC)
- マージ日時: 2026年03月02日 16:30:21(UTC)
- ラベル: area-VM-coreclr
概要
例外処理コードパスにおいて、非効率なMethodDescCallSite/CallDescrWorker呼び出しをより効率的なUnmanagedCallersOnly逆P/Invoke呼び出しに置き換えるPRです。excep.cpp内の6つの呼び出しサイト(GetExceptionMessage、ExceptionPreserveStackTrace、WrapNonCompliantException等)がUnmanagedCallersOnlyCallerパターンに変換され、マネージコード側に[UnmanagedCallersOnly]属性付きの静的ラッパーメソッドが追加されます。
変更内容
マネージコード側の追加:
Exception.CoreCLR.cs:InternalPreserveStackTrace、WrapNonCompliantExceptionのUCOラッパー追加(41行)RuntimeHelpers.CoreCLR.cs:Object.ToString呼び出し用UCOラッパー追加(13行)Environment.CoreCLR.cs:GetResourceStringLocalのUCO対応(12行追加)AppContext.CoreCLR.cs: リソース文字列取得のUCOラッパー追加(31行)
ネイティブコード側の変更:
excep.cpp: 330行削減(469行→468行)。6つのメソッドを従来のMethodDescCallSiteからUCOベースに変換excep.h: 古い呼び出しサイト関連の定義削除(26行→1行に簡素化)metasig.h: 新しいUCOシグネチャ追加(5行)corelib.h:DEFINE_METHODエントリ更新(15行→9行に削減)
WebAssembly対応:
wasm/callhelpers-reverse.cpp: UCO呼び出し機構の拡張(131行追加)
パフォーマンスへの影響
改善点:
- 例外処理クリティカルパスでの呼び出しオーバーヘッド削減。
UnmanagedCallersOnlyは直接ネイティブから呼び出し可能で、従来のMethodDescCallSite/ARG_SLOTメカニズムのマーシャリング処理をバイパス - メモリ効率向上:
excep.cppで330行コード削減、ネイティブ側のメタデータ管理が簡潔化
懸念点:
- 新しいUCOラッパーメソッド追加により、マネージコード側でのメタデータ量はわずかに増加
関連Issue
#123864(優先度2の変更一覧)
その他
- すべてのGC参照は
GCPROTECT保護された場所からInvokeThrowingに渡されており、GCセーフティが確保されている - パターンは確立された
UnmanagedCallersOnlyCaller変換フローに従っており、一貫性が保たれている - NativeAOT版(
System.Private.CoreLib.NativeAot.cs)も同期更新されている
#124808 Add an api-proposal Copilot skill
- 作成者: @eiriktsarpalis
- 作成日時: 2026年02月24日 18:32:23(UTC)
- マージ日時: 2026年03月02日 15:56:24(UTC)
- ラベル: area-skills
概要
dotnet/runtime リポジトリにおいて、API提案のプロトタイピングと草案作成を自動化する api-proposal Copilot スキルを追加しました。このスキルは、Framework Design Guidelines の確認、プロトタイプ実装、テスト、リファレンスアセンブリ生成、提案ドキュメント作成といった7段階のパイプラインを自動化し、API提案の手探り的な実験作業を削減します。
変更内容
.github/skills/api-proposal/SKILL.md(+364行) — スキル定義、7段階パイプラインの処理フロー、検証ステップ、提案構造.github/skills/api-proposal/references/api-proposal-checklist.md(+79行) — 提案公開前の品質チェックリスト.github/skills/api-proposal/references/proposal-examples.md(+118行) — 実装例とベストプラクティス
パフォーマンスへの影響
影響なし(開発プロセスの効率化に関する変更で、ランタイムパフォーマンスや実行速度に直接的な影響はありません)
関連Issue
- #124787 — エンドツーエンド例
- #108642 — IAlternateComparer と AlternateLookup の提案
- #124889 — DefaultJsonSerializerContextAttribute の提案
その他
- このスキルは、API提案の評価における最大のボトルネック(実装可能性の検証)を軽減することを目的としています
- 提案作成時の一般的なレビュアーの質問を先制的に対処できるよう、経験的に根拠のある提案ドキュメントの作成を支援します
- 実装例を参照することで、複数の実際のAPI提案ユースケースでの効果が実証されています
#124795 [wasm][coreclr] Make run.cmd work with wasm arch
- 作成者: @radekdoulik
- 作成日時: 2026年02月24日 14:36:00(UTC)
- マージ日時: 2026年03月02日 11:16:06(UTC)
- ラベル: arch-wasm area-Infrastructure-coreclr
概要
WebAssembly (WASM) アーキテクチャでのテスト実行環境を整備するPRです。run.cmdスクリプトがWASMアーキテクチャに対応し、テストビルドシステムの設定ファイルが更新されています。Windows環境でWASMターゲットのテスト実行が可能になりました。
変更内容
- src/tests/run.cmd: WASMアーキテクチャ対応ロジックを追加(+21行)。スクリプトがWASMターゲットのテスト環境を正しく認識・処理できるよう拡張
- src/tests/tests.targets: テストビルド設定を微調整(+2/-2行)。WASM環境でのビルドターゲット定義を修正
- src/tests/run.py: Pythonスクリプト内のロジック最適化(+12/-11行)。WASMアーキテクチャ判定処理を改善
パフォーマンスへの影響
影響なし。本変更は環境認識・スクリプト互換性の拡張であり、テスト実行時のパフォーマンスには直接的な影響はありません。
関連Issue
明示的に記載されていません。
その他
- WASM環境でのテスト実行パイプライン整備に関連する変更と推定されます
- Windowsバッチスクリプト(run.cmd)とPythonスクリプト(run.py)の両方が同期的に更新されており、クロスプラットフォーム対応が考慮されています
- テスト実行フレームワーク全体の保守性向上に寄与する変更です
#124764 Switch ilasm to Antlr4BuildTasks
- 作成者: @am11
- 作成日時: 2026年02月23日 20:08:51(UTC)
- マージ日時: 2026年03月02日 22:32:55(UTC)
- ラベル: area-ILTools-coreclr community-contribution
概要
ilasmツール(IL Assembler)のパーサー生成方式をAntlr4BuildTasksに切り替えました。従来の手動メンテナンスされていたパーサー実装から、Antlr4による自動生成ベースの実装へ移行することで、保守性向上とCIL文法の一元管理が実現されます。
変更内容
- eng/Versions.props: Antlr4BuildTasksのバージョン情報を更新(+2/-2行)
- src/tools/ilasm/README.md: プロジェクト説明を新規追加(25行追加)
- src/tools/ilasm/src/ILAssembler/ILAssembler.csproj: プロジェクト設定を簡潔化(-3行)
- CIL.g4: Antlr4文法定義ファイル(既存ファイル)
- 自動生成ファイル群:
- CILLexer.cs(1979行)- トークナイザー
- CILParser.cs(17594行)- 構文解析器
- CILBaseVisitor.cs(1972行)- ビジターパターン基底クラス
- CILVisitor.cs(1201行)- ビジターインターフェース
- メタデータファイル(.interp、.tokens)
パフォーマンスへの影響
影響なし。パーサーロジック自体は変更されておらず、生成方式の変更のため実行時パフォーマンスへの直接的な影響はありません。
関連Issue
なし
その他
- GrammarVisitor.csから1行削除(Antlr4生成ファイルに統合)
- 自動生成ファイル(gen/)はビルドプロセス中にAntlr4により自動生成される想定
- README.mdの追加により、プロジェクト構成の明確化が図られています
- 複数レビュワーによる承認から、重要な基盤変更と考えられます
#124739 [release/10.0] Update dependencies from dotnet/xharness
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年02月23日 05:03:19(UTC)
- マージ日時: 2026年03月02日 12:51:16(UTC)
- ラベル: Servicing-approved area-codeflow
概要
dotnet/xharnessの依存パッケージを更新するPull Requestです。Microsoft.DotNet.XHarness関連の3つのパッケージを11.0.0-prerelease.26114.1から11.0.0-prerelease.26117.1にバージョンアップしています。これはMaestroの自動依存更新メカニズムによるルーチン更新です。
変更内容
- .config/dotnet-tools.json: dotnet toolsの設定ファイルを更新(+1/-1行)
- eng/Version.Details.props: バージョン詳細プロパティファイルを更新(+3/-3行)
- eng/Version.Details.xml: バージョン詳細XMLファイルを更新(+6/-6行)
更新されたパッケージ:
- Microsoft.DotNet.XHarness.CLI
- Microsoft.DotNet.XHarness.TestRunners.Common
- Microsoft.DotNet.XHarness.TestRunners.Xunit
パフォーマンスへの影響
影響なし
このPull Requestは依存パッケージのバージョン更新のみであり、ランタイムやコンパイラの動作に直接的な影響を与えません。
関連Issue
なし
その他
- 更新元: dotnet/xharness リポジトリのmainブランチ(コミット:0eeaa60169)
- 更新日時: 2026年2月17日 16:29:14 UTC
- ビルド: 20260217.1(Azure Pipelines)
- 自動更新: このPRはMaestroの自動依存更新システムによって生成されており、dotnet/runtimeの[release/10.0]ブランチ向けです
- このPRはプレリリース版への更新であるため、本番環境への影響は限定的です
#124714 [wasm] Bump chrome for testing - linux: 145.0.7632.109, windows: 145.0.7632.77
- 作成者: @github-actions[bot]
- 作成日時: 2026年02月22日 00:09:39(UTC)
- マージ日時: 2026年03月02日 08:03:37(UTC)
- ラベル: arch-wasm area-Infrastructure-mono
概要
WebAssembly テスト環境で使用する Chrome for Testing のバージョンを更新しました。Linux 環境を 145.0.7632.109 に、Windows 環境を 145.0.7632.77 にそれぞれアップグレードしています。
変更内容
- eng/testing/BrowserVersions.props: Chrome for Testing のバージョン定義を更新
- Linux: 145.0.7632.109 へ更新
- Windows: 145.0.7632.77 へ更新
パフォーマンスへの影響
影響なし(テスト環境のブラウザバージョン更新のため、ランタイムパフォーマンスへの直接的な影響はありません)
関連Issue
なし
その他
- このPRは自動化ボット(github-actions[bot])により作成されたバージョン更新PRと考えられます
- WASM テスト実行時の Chrome バージョンが統一されることで、テスト環境の再現性と信頼性が向上します
- プラットフォーム別(Linux/Windows)で異なるバージョン番号が指定されている点に注意が必要です
#124663 Add blittable color types Argb and Rgba to System.Numerics.Vectors
- 作成者: @ViveliDuCh
- 作成日時: 2026年02月20日 18:42:33(UTC)
- マージ日時: 2026年03月02日 07:59:26(UTC)
- ラベル: area-System.Numerics
概要
System.Numerics.Vectorsに新しいblittable色型Argb<T>とRgba<T>を追加します。これらのジェネリック構造体は、色データをメモリ効率的に表現し、System.Drawing.Primitivesとの統合をサポートします。実装はSystem.Private.CoreLibに配置され、System.Numerics.Vectorsがファサード層として機能する設計になっています。
// 使用例
var argb = new Argb<byte>(255, 128, 64, 32); // ARGB値
var rgba = new Rgba<byte>(128, 64, 32, 255); // RGBA値
変更内容
- System.Private.CoreLib:
src/System/Numerics/Colors/配下にArgb<T>.cs、Argb.cs、Rgba<T>.cs、Rgba.csを追加(構造体定義、静的ヘルパーメソッド、型変換) - System.Numerics.Vectors: ref定義ファイルに
Argb<T>とRgba<T>の型シグネチャを追加(ファサード層として機能) - System.Drawing.Primitives:
ColorクラスにArgb<T>との相互変換メソッド(FromArgb/ToArgbValue)を追加し、テスト65行追加 - System.ComponentModel.TypeConverter:
Argb<T>とRgba<T>型のTypeConverter対応を追加 - String Resources: エラーメッセージ定義をResources.resxに3行追加
- Tests: 合計808行の新規テスト(
Argb.T.Tests.cs353行、Rgba.T.Tests.cs353行、各51行のシンプル型テスト、ヘルパー関数53行)
パフォーマンスへの影響
改善点:
- blittable型設計により、メモリレイアウトがCPUレジスタやメモリバス最適化に適合
System.Private.CoreLibへの配置により、Vector2やMatrix4x4と同じ最適化パスを利用可能- ジェネリック
<T>パラメータにより、byteやfloatなど異なるコンポーネント型に対応し、メモリ効率を最大化
懸念点: なし(新型追加のため既存パフォーマンスへの悪影響なし)
関連Issue
#48615(元の機能リクエスト)、#106575(@AlexRadchによる原実装)
その他
- 設計上、既存の
System.Numerics.Vectorsをファサード層として維持し、新規アセンブリ導入を回避 ContractTypesPartiallyMovedフラグは不使用、System.Numerics.Vectorsは純粋なファサード(コンパイル対象なし)- 外部参照削除済み(NetCoreAppLibrary.props、netstandard shim、crossgen2_comparison.pyなど6箇所)
Vector2、Matrix4x4、Quaternionと同じ設計パターンに準拠
#124566 Replace string.Compare == 0 patterns with Equals/StartsWith/AsSpan calls
- 作成者: @Copilot
- 作成日時: 2026年02月18日 18:50:10(UTC)
- マージ日時: 2026年03月02日 16:47:54(UTC)
- ラベル: area-Meta
概要
このPRは、string.Compare(...) == 0 パターンを Equals、StartsWith、EndsWith、AsSpan().Equals() などのより慣用的で読みやすいメソッドに置き換えています。約34ファイルにわたり、冗長な比較パターンを簡潔化し、コード品質を向上させます。
// 置き換え例
// 変更前
if (string.Compare(a, b, StringComparison.OrdinalIgnoreCase) == 0) { }
// 変更後
if (string.Equals(a, b, StringComparison.OrdinalIgnoreCase)) { }
// StartsWith の置き換え例
// 変更前
if (string.Compare(header, 0, "Basic ", 0, 6, StringComparison.Ordinal) == 0) { }
// 変更後
if (header.StartsWith("Basic ", StringComparison.Ordinal)) { }
変更内容
- パターン置き換え:
string.Compare(a, b) == 0→string.Equals(a, b, ...)、プレフィックスチェックをStartsWith()に変更、サフィックスチェックをEndsWith()に変更 - Span最適化:部分文字列比較を
AsSpan().Equals()で実装 - 冗長チェック削除:
StartsWith/Equals内で既に処理される長さチェックを削除 - Null安全性:
string.Compareをインスタンスメソッドに置き換える箇所に null ガード追加 - 影響範囲:System.Management(ManagementQuery.cs で32+箇所)、ネットワーク関連(HttpListener、SmtpConnection)、CoreLib、Configuration、Data、XML など34ファイル
パフォーマンスへの影響
改善点:
AsSpan()ベースの比較は不要なメモリアロケーションを削減StartsWith/EndsWithは内部で最適化され、string.Compareより効率的- 冗長な長さチェック削除により、メモリアクセス削減
懸念点:
string.Compareは null 入力を安全に処理しますが、置き換え後のインスタンスメソッドは NullReferenceException をスロー。PR では必要に応じて null ガードが追加されている
関連Issue
なし
その他
- 34ファイル全てについて Copilot がレビュー済みでコメントなし
- 破壊的変更なし(既存動作を保持)
- コード可読性と保守性が向上
#124458 [release/9.0-staging] Update dependencies from dotnet/hotreload-utils
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年02月16日 09:35:28(UTC)
- マージ日時: 2026年03月02日 21:57:08(UTC)
- ラベル: Servicing-approved area-codeflow
概要
dotnet/hotreload-utils リポジトリからの依存関係を更新するPull Requestです。Microsoft.DotNet.HotReload.Utils.Generator.BuildTool が v9.0.0-alpha.0.25625.4 から v9.0.0-alpha.0.26152.4 にアップデートされました。このアップデートは release/9.0-staging ブランチに対する自動依存更新(Maestro経由)です。
変更内容
- eng/Version.Details.xml: バージョン詳細の更新(+2/-2行)
- eng/Versions.props: バージョンプロパティの更新(+1/-1行)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- このPRは dotnet-maestro[bot] による自動生成です
- ビルドバージョン: 20260302.4(2026年3月2日)
- hotreload-utils の release/9.0 ブランチからの最新コミット(2a70fdb0e55455dc067a6f24582b5d9ed75ed373)への更新です
- レビュワーは steveisok です
#124453 [release/10.0] Update dependencies from dnceng/internal/dotnet-optimization
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年02月16日 05:03:54(UTC)
- マージ日時: 2026年03月02日 12:50:22(UTC)
- ラベル: Servicing-approved area-codeflow
概要
dotnet-optimization リポジトリからの依存関係を更新するPull Requestです。MIBC(Migratory Intermediate Branch Cache)Runtime最適化とPGO(Profile Guided Optimization)CoreCLRに関するバージョンが 1.0.0-prerelease.26080.1 から 1.0.0-prerelease.26126.1 に更新されています。このアップデートにより、複数のプラットフォーム向け(Linux ARM64/x64、Windows NT ARM64/x64/x86)の最適化アーティファクトが最新化されます。
変更内容
- eng/Version.Details.props (+6/-6):プロパティファイルのバージョン定義を更新
- eng/Version.Details.xml (+12/-12):XML形式の詳細バージョン情報を更新
- 更新対象:
- optimization.linux-arm64.MIBC.Runtime
- optimization.linux-x64.MIBC.Runtime
- optimization.windows_nt-arm64.MIBC.Runtime
- optimization.windows_nt-x64.MIBC.Runtime
- optimization.windows_nt-x86.MIBC.Runtime
- optimization.PGO.CoreCLR
パフォーマンスへの影響
MIBC(Multi-tier Intermediate Branch Cache)とPGO(Profile Guided Optimization)関連の最適化アーティファクトが更新されるため、ランタイムのパフォーマンス改善が期待できます。ただし、具体的なベンチマーク数値や改善率に関する情報は提供されていません。
関連Issue
なし
その他
本PRは自動依存関係更新ツール(dotnet-maestro[bot])により生成されたもので、定期的なメンテナンスアップデートです。release/10.0ブランチを対象とした更新となります。
#124245 [automated] Merge branch 'release/9.0' => 'release/9.0-staging'
- 作成者: @github-actions[bot]
- 作成日時: 2026年02月10日 22:13:48(UTC)
- マージ日時: 2026年03月02日 21:54:08(UTC)
- ラベル: Servicing-approved area-codeflow
概要
release/9.0 ブランチから release/9.0-staging ブランチへの自動マージPRです。wfurt、vseanreesermsft、bartonjs による3件のコミットを含みます。主な変更は COSE(CBOR Object Signing and Encryption)暗号化機能の拡張と、シンボリックリンク関連のテスト改善です。
変更内容
- NuGet.config: パッケージソース設定の更新(+1/-1)
- eng/Version.Details.xml、eng/Versions.props: 依存関係バージョン情報の更新(合計92行の変更)
- System.Security.Cryptography.Cose: COSE メッセージデコード機能の拡張
CoseMessage.cs: デコード処理のロジック強化(+47行)- 新規テスト追加:
CoseMessageTests.DecodeMultiSign.cs(126行)、CoseMessageTests.DecodeSign1.cs(125行) - カスタムヘッダマップテストの充実(+35/-20)
- SymbolicLinks テスト: ベーステストケースの追加(+8/-1)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
本PRは自動生成されたマージコミットで、リリースブランチの統一を目的としています。マージ時はSquashやRebaseではなく、明示的にマージコミット(--no-ffフラグ)を作成する必要があります。コンフリクト発生時は手動解決が必要です。
#124209 [release/9.0-staging] Update dependencies from dotnet/cecil
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年02月10日 02:03:26(UTC)
- マージ日時: 2026年03月02日 21:58:36(UTC)
- ラベル: Servicing-approved area-codeflow
概要
dotnet/cecil ライブラリの依存関係を更新するPull Requestです。Microsoft.SourceBuild.Intermediate.cecil と Microsoft.DotNet.Cecil が バージョン 0.11.5-alpha.25628.2 から 0.11.5-alpha.26122.3 へ更新されています。これは release/9.0-staging ブランチ向けの自動依存関係更新です。
変更内容
eng/Version.Details.xml (+4/-4)
- Cecil 関連パッケージの詳細バージョン情報を更新
- コミット参照: 1f9985e482 → 4fe10b2349
eng/Versions.props (+1/-1)
- バージョンプロパティを更新
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- 更新元: dotnet/cecil repository の release/9.0 ブランチ
- ビルド番号: 20260222.3
- 自動更新: dotnet-maestro[bot] による自動依存関係更新
- 本PR は依存関係の定期的な同期処理であり、通常のメンテナンス活動の一環です
#124165 [release/9.0-staging] Update dependencies from dotnet/xharness
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年02月09日 05:03:13(UTC)
- マージ日時: 2026年03月02日 22:03:08(UTC)
- ラベル: Servicing-approved area-codeflow
概要
dotnet/xharnessライブラリの依存関係を更新するPull Requestです。Microsoft.DotNet.XHarness.CLI、Microsoft.DotNet.XHarness.TestRunners.Common、Microsoft.DotNet.XHarness.TestRunners.Xunitを9.0.0-prerelease.25615.2から11.0.0-prerelease.26117.1にアップデートしています。これは自動化されたdotnet-maestroによる定期的な依存関係更新です。
変更内容
- .config/dotnet-tools.json: XHarness関連ツールのバージョン更新(1行変更)
- eng/Version.Details.xml: 依存関係の詳細バージョン情報を更新(6行削除、6行追加)
- eng/Versions.props: プロパティファイル内のバージョン定義を更新(3行削除、3行追加)
パフォーマンスへの影響
影響なし(依存関係更新のため、ランタイムパフォーマンスへの直接的な影響はありません)
関連Issue
なし
その他
本PR(release/9.0-staging)はリリースブランチ向けの自動依存関係更新です。xharnessはテストランナーツールであり、.NETランタイムのテスト実行に使用されます。プレリリース版への更新のため、テスト環境での検証が推奨されます。
#124125 Fix WASM boot config ContentRoot to use IntermediateOutputPath
- 作成者: @lewing
- 作成日時: 2026年02月07日 03:23:05(UTC)
- マージ日時: 2026年03月02日 23:41:00(UTC)
- ラベル: arch-wasm area-Meta os-browser
概要
.NET 11のリグレッションを修正し、Blazor WASM増分ビルド時のSRI整合性検証失敗を解決するPRです。Boot configのContentRootを$(OutDir)wwwrootから$(IntermediateOutputPath)に変更し、WebCilアセットの各項目に対してContentRoot="%(RootDir)%(Directory)"を設定することで、ビルド時と発行時のアセットIdentityが実際のファイルパスを正確に指すようにします。
// 修正例:Per-item ContentRoot設定
<ItemGroup>
<_WebCilAssetsCandidates
ContentRoot="%(RootDir)%(Directory)"
Include="..." />
</ItemGroup>
変更内容
Microsoft.NET.Sdk.WebAssembly.Browser.targets (+41/-18)
- Boot config ContentRoot を
$(IntermediateOutputPath)に変更 - Preloadマッチング処理を直接参照に簡略化(FileName%(Extension)スキャンから脱却)
- Build時WebCilアセット候補に per-item ContentRoot を追加
- Boot config ContentRoot を
ComputeWasmPublishAssets.cs (+52/-22)
- Publish時の新規WebCilアセット候補に per-item ContentRoot を追加
- 昇格されたWasmアセットに per-item ContentRoot を設定
- Publish時ContentRootの完全な欠落により発生していたMSB3030エラーを解決
LinkContentToWwwroot.cs (+41/-9)
- ビルドプログレッション(段階的なアプローチ)の検証修正
tests.browser.targets (+2/-2)
- テスト用途のマイナー修正
パフォーマンスへの影響
影響なし。本修正は正確性の修正であり、ビルドパフォーマンスへの直接的な影響はありません。ただし、増分ビルドの信頼性向上により、不正確なアセットハッシュ再計算を回避するため、間接的にはビルド効率が改善されます。
関連Issue
- aspnetcore#65271 - SRI整合性失敗の報告
- dotnet/sdk#52283 - リグレッション根本原因(esproj圧縮修正時に露出)
- dotnet/sdk#52847 - ContentRoot仕様の提案
その他
リグレッション背景: .NET 10ではOriginalItemSpecが先に確認され、誤ったContentRootがマスクされていました。sdk#52283でRelatedAsset(Identity)を優先する修正により、staleなwwwrootパスが使用されるようになり、増分ビルド時に不正確なSRIハッシュが生成される問題が発生。本修正により、Boot configとWebCilアセットが実際のファイル位置を示すContentRootを持つため、Identity計算が正確になります。Publish時のクリーンビルドでは問題がないため、Boot config publish ContentRoot($(PublishDir)wwwroot)は変更していません。
#123251 [clr-interp] Support for breakpoints and stepping
- 作成者: @matouskozak
- 作成日時: 2026年01月16日 08:39:04(UTC)
- マージ日時: 2026年03月02日 13:29:49(UTC)
- ラベル: area-Diagnostics-coreclr
概要
CoreCLR インタープリターにデバッガサポートを追加するPRです。IDEのブレークポイント設定とシングルステップ(ステップイン/オーバー/アウト)機能をインタープリター実行環境で実装しました。新しい INTOP_BREAKPOINT と INTOP_DEBUG_SEQ_POINT オペコードを導入し、インタープリター用の実行制御ロジックを拡張しています。
変更内容
- デバッガコントローラー:
controller.cpp/hでInterpreterStepHelperクラスを追加し、ステップ操作の設定ロジックをカプセル化 - インタープリター実行ウォーカー: 新規ファイル
interpreterwalker.cpp/hでインタープリター固有のスタックウォーキングとパッチ管理を実装 - インタープリター オペコード定義:
intops.defにINTOP_BREAKPOINTとINTOP_DEBUG_SEQ_POINTを追加 - 実行制御:
executioncontrol.cpp/hでインタープリターパッチの有効化フラグm_interpActivatedを実装(オペコード0が有効なINTOP_RETであるため必要) - メソッドエントリ通知:
INTOP_DEBUG_METHOD_ENTERからOnMethodEnterを呼び出して、間接呼び出しのデバッガ通知に対応 - デバッグシーケンスポイント: コンパイラで NOPs 折り畳み対策として
INTOP_DEBUG_SEQ_POINTをシーケンスポイント位置に配置 - スレッド別バイパス: インタープリター用のスレッド別コンテキスト(バイパスアドレス/オペコード)フィールドを
interpexec.hに追加
パフォーマンスへの影響
- デバッグシーケンスポイント処理により、デバッグ構成時のインタープリター実行に軽微なオーバーヘッドが発生する可能性あり
- ブレークポイントはオペコード注入で実装されているため、ブレークポイント非設定時のパフォーマンス影響は最小限
- スタックウォーキング用ワークアラウンド実装により、メモリアクセスに若干のコスト増加
関連Issue
- #124499:
m_interpActivatedの汎化に関する長期的TODO
その他
実装上の注記:
- IL オフセット 0 → IR オフセット 0 マッピングでメソッドエントリブレークポイントをサポート
- スタックウォーキングのワークアラウンド実装あり(将来的に正式な修正への置き換え予定)
- 長期的には JIT 固有コードを
HardwareExecutionControl派生クラスに抽出し、InterpreterExecutionControlを作成予定 - 既存デバッガサポートへの回帰なし(診断テストで検証済み)
#122485 [RISC-V] Enable instruction printing for the Generate code phase in JIT dumps
- 作成者: @SkyShield
- 作成日時: 2025年12月12日 09:15:26(UTC)
- マージ日時: 2026年03月02日 21:06:20(UTC)
- ラベル: area-CodeGen-coreclr community-contribution arch-riscv
概要
RISC-V JIT コンパイラのPHASE Generate codeフェーズで命令印字機能を有効化しました。JitDump設定時に、生成されるRISC-V命令が JIT ダンプ出力に表示されるようになり、デバッグの利便性が向上します。例えばfneg.d fa0, fs6やjalr ra, ??(ra)といった命令が出力されます。
変更内容
- emitriscv64.cpp: RISC-V命令の印字ロジック実装(+526行)
- emitriscv64.h: 命令印字に必要なヘッダー定義追加(+132行)
- emit.cpp: 既存の命令印字フレームワークとの統合(+2/-6行)
パフォーマンスへの影響
影響なし(JitDump設定時のデバッグ出力機能のため、本番環境では動作しません)
関連Issue
- dotnet/runtime#84834
その他
現在のRISC-V実装の制限として、CodeGen フェーズでは実際のジャンプオフセットの計算が困難なため、プレースホルダー「??」が出力されます。これは将来の改善対象です。Samsung チーム向けのデバッグ利便性向上PRです。