注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #126033 Revert "Refactor loader heap backout adapter to remove multiple inheritance"
- #126021 [wasm][coreclr] Fix tpa list population in corerun.html
- #125999 [release/8.0] Remove EOL armv6 raspbian build container and pipeline references
- #125997 [release/10.0] Upgrade Ubuntu 22.04 Helix queues to 26.04 containers
- #125996 [release/10.0] Move remaining Linux build pools from Ubuntu 22.04 to Azure Linux 3
- #125985 [release/8.0] Partial backport #118329 - disable and modify Android timezone test
- #125983 [browser][coreCLR] instantiate webCIL in corerun
- #125970 [release/10.0] pass Creator to Helix only for open queues
- #125969 Fix flaky signal handler test on mono on Linux
- #125942 [cDAC] : Implement ClrDataModule GetName
- #125930 Fix OOM in BinHexDecoder, Base64Decoder, and XmlSchemaValidator when throwing on large invalid input
- #125928 Shorten thread names exceeding the 15-char Linux pthread_setname_np limit
- #125882 Add global:: qualifier to System namespaces in OptionsValidatorGenerator
- #125849 Convert more COM interop MethodDescCallSite to UnmanagedCallersOnly (UCO)
- #125836 [Wasm RyuJIT] initblk fix for #125756
- #125824 [wasm][coreclr] Enable more libraries tests
- #125817 [release/10.0] [QUIC] Disable Quic tests on AzL3 VM
- #125774 Increase TTL in SendPingWithLowTtl_RoundtripTimeIsNonZero to fix macOS flakiness
- #125745 Fix SingleConsumerUnboundedChannel WaitToReadAsync returning exception instead of false
- #125721 Add unsafe evolution attributes
- #125716 [release/10.0] use AZL3 instead of Ubuntu for builds
- #125646 [ios-clr] Resolve throw helpers to managed methods in R2R compilation
- #125635 Add BarrierPostPhaseException to Barrier XML doc comments
- #125615 JIT: Add a runtime async optimization to skip saving unmutated locals into reused continuations
- #125604 [release/10.0] Update dependencies from dotnet/xharness
- #125544 [release/8.0-staging] use AZL3 instead of Ubuntu for builds
- #125460 Remove unnecessary RequiresProcessIsolation from 172 tests and update comments on 18 that need it
- #125458 Remove ByValueMarshalKindSupport.Unnecessary and move ByValueContentsMarshalKindValidator to analyzers only
- #125324 improve error handling in OpenSSL init code
- #125213 [release/10.0] [mono][sgen] Fix card scanning in LOS non-array objects
- #125151 [automated] Merge branch 'release/9.0' => 'release/9.0-staging'
- #125074 Convert IDacDbiInterface to COM interface
- #124644 Add JsonNamingPolicy.PascalCase and JsonKnownNamingPolicy.PascalCase
- #124328 [automated] Merge branch 'release/8.0' => 'release/8.0-staging'
- #124192 Fix NativeAOT publish including satellite assemblies despite embedding them
#126033 Revert "Refactor loader heap backout adapter to remove multiple inheritance"
- 作成者: @rcj1
- 作成日時: 2026年03月24日 14:58:07(UTC)
- マージ日時: 2026年03月24日 18:33:03(UTC)
- ラベル: area-VM-coreclr
概要
PR #125867で実施された「ローダーヒープバックアウトアダプターの多重継承削除リファクタリング」をリバートする変更です。ローダーヒープ関連の実装が以前の状態に戻されます。
変更内容
src/coreclr/inc/loaderheap.h: 11行追加、69行削除(リバート処理)src/coreclr/utilcode/loaderheap_shared.cpp: 1行削除
パフォーマンスへの影響
影響なし(リバート処理のため、パフォーマンスは元の状態に戻ります)
関連Issue
その他
このリバートの具体的な理由(後続の問題が判明、テスト失敗など)は提供された情報には含まれていません。
#126021 [wasm][coreclr] Fix tpa list population in corerun.html
- 作成者: @radekdoulik
- 作成日時: 2026年03月24日 10:36:34(UTC)
- マージ日時: 2026年03月24日 16:03:37(UTC)
- ラベル: arch-wasm area-Infrastructure-coreclr
概要
WASM環境のcorerun.htmlにおける、preRunコールバック内でのTPA(Trusted Platform Assemblies)リスト生成の初期化順序の問題を修正しました。EmscriptenのaddOnPreRunはunshift()を使用するため、ファイルプリロードのrunWithFSコールバックがカスタムpreRunより先に実行される場合があり、それによってTPA列挙が失敗していました。修正後は、preRun実行時に仮想ファイルシステムがすでに生成されているか確認し、ロード済みならば即座にTPA列挙を、未ロードならば依存関係監視アプローチにフォールバックします。
変更内容
- src/coreclr/hosts/corerun/wasm/corerun.html:
- TPA列挙処理を
buildTpaList()ヘルパー関数に分離 - 仮想ファイルシステム生成状態の判定ロジックを追加
- 既にデータがロード済みの場合は即座にTPA列挙、未ロードの場合は実行依存性を追加して遅延初期化に変更
- TPA列挙処理を
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この修正はWASM環境特有の初期化順序の問題に対処するもので、公開APIではなく内部のランタイムホストコード(corerun.html)の修正です。
#125999 [release/8.0] Remove EOL armv6 raspbian build container and pipeline references
- 作成者: @richlander
- 作成日時: 2026年03月23日 23:37:00(UTC)
- マージ日時: 2026年03月24日 22:24:23(UTC)
- ラベル: Servicing-approved area-Infrastructure
概要
EOL(End of Life)となったUbuntu 20.04ベースのarmv6 Raspbian 10ビルドコンテナおよびパイプライン参照を削除します。このPRはAIで生成され、release/8.0ブランチを対象としています。
変更内容
- platform-matrix.yml:
linux_armv6プラットフォーム行列エントリを削除(20行削除) - pipeline-with-resources.yml:
ubuntu-20.04-cross-armv6-raspbian-10コンテナ定義を削除(5行削除) - runtime-community.yml: Monoビルド・テストジョブの
linux_armv6参照を削除(34行削除、1行追加)
パフォーマンスへの影響
影響なし
関連Issue
その他
- このPRはAI/Copilotにより自動生成されています
- EOL環境(Ubuntu 20.04)の削除に伴う保守性向上を目的としています
#125997 [release/10.0] Upgrade Ubuntu 22.04 Helix queues to 26.04 containers
- 作成者: @richlander
- 作成日時: 2026年03月23日 23:26:03(UTC)
- マージ日時: 2026年03月24日 17:52:13(UTC)
- ラベル: Servicing-approved area-Infrastructure
概要
release/10.0ブランチのHelix キュー設定を更新し、Linux x64テストをUbuntu 22.04 VM からUbuntu 26.04コンテナ(AzureLinux 3ホスト)に移行します。これにより、テストインフラストラクチャをUbuntu 26.04ロールアウトに合わせます。
変更内容
- Mono最小シナリオ:
Ubuntu.2204.Amd64.OpenVM →ubuntu-26.04-helix-amd64コンテナに変更 - CoreCLR一般設定:
Ubuntu.2204.Amd64.OpenVM →ubuntu-26.04-helix-amd64コンテナに昇格(extra-platformsから促進) - extra-platformsの最適化: 冗長なUbuntu 26.04エントリを削除
- ケーシング修正: Fedora、openSUSE、AzureLinuxのホストVM名で
AzureLinux.3.Amd64.openをAzureLinux.3.Amd64.Openに統一 - 対象外: Androidキュー、WASM/WASIコンテナ参照、ARMコンテナホストVM
パフォーマンスへの影響
影響なし(インフラストラクチャ構成の変更のみ)
関連Issue
#125535(バックポート元)
#125748、#125690
その他
- AI/Copilot生成PR
- release/10.0ブランチへのバックポート
#125996 [release/10.0] Move remaining Linux build pools from Ubuntu 22.04 to Azure Linux 3
- 作成者: @richlander
- 作成日時: 2026年03月23日 23:25:50(UTC)
- マージ日時: 2026年03月24日 22:41:36(UTC)
- ラベル: Servicing-approved area-Infrastructure-libraries
概要
release/10.0ブランチのLinuxビルドプール構成を、Ubuntu 22.04からAzure Linux 3に移行します。エンタープライズテストおよびストレステストのCI/CDパイプラインのイメージオーバーライド設定を統一し、新しいLinuxプール戦略に準拠させます。
変更内容
eng/pipelines/libraries/enterprise/linux.yml: ImageOverride需要をBuild.Ubuntu.2204.Amd64.Openからbuild.azurelinux.3.amd64.openに変更eng/pipelines/libraries/stress/http.yml: ImageOverride需要をBuild.Ubuntu.2204.Amd64.Openからbuild.azurelinux.3.amd64.openに変更eng/pipelines/libraries/stress/ssl.yml: ImageOverride需要をBuild.Ubuntu.2204.Amd64.Openからbuild.azurelinux.3.amd64.openに変更
パフォーマンスへの影響
影響なし(ビルドインフラストラクチャの構成変更のため、コードレベルの変更ではありません)
関連Issue
#125995(mainブランチの同様の変更)、#125748、#125690
その他
- AI/Copilotで生成されたPR
release/10.0ブランチのみに対する変更で、mainブランチへの対応はコンパニオンPR(#125995)で実施
#125985 [release/8.0] Partial backport #118329 - disable and modify Android timezone test
- 作成者: @matouskozak
- 作成日時: 2026年03月23日 18:06:59(UTC)
- マージ日時: 2026年03月24日 11:35:43(UTC)
- ラベル: Servicing-approved area-System.Globalization os-android
概要
Android デバイスの基盤となるグローバライゼーション ライブラリが更新された際、タイムゾーン表示名の変更に対応するためのテスト修正です。Android プラットフォーム固有のテスト失敗を軽減することが目的です。
変更内容
- src/libraries/System.Runtime/tests/System/TimeZoneInfoTests.cs
Platform_TimeZoneNamesテストデータを拡張し、非Windows/非Apple-mobile プラットフォームで Sydney タイムゾーンの追加の有効な表示名バリアントを受け入れるように変更NoBackwardTimeZonesテストをActiveIssue属性で Android 上で無効化し、既知の失敗を回避
パフォーマンスへの影響
影響なし
関連Issue
#117903(トラッキング)、#118329(元の PR)
その他
このは release/8.0 ブランチへの部分的なバックポートです。Android デバイスのグローバライゼーション ライブラリ更新に起因するテスト不安定化への対応となります。
#125983 [browser][coreCLR] instantiate webCIL in corerun
- 作成者: @pavelsavara
- 作成日時: 2026年03月23日 17:56:51(UTC)
- マージ日時: 2026年03月24日 14:20:48(UTC)
- ラベル: arch-wasm area-Host os-browser
概要
WebAssembly(ブラウザ)対応のcorerun ホストをWebCIL読み込み対応に更新しました。.wasm 形式のWebCILモジュールを動的にインスタンス化し、抽出したILペイロードをCoreCLRの外部アセンブリプローブフックを介して返すようにします。
変更内容
- corerun.cpp:
TARGET_BROWSER環境下で外部アセンブリプローブ機構を有効化し、ブラウザ固有のプローブパスを追加(+12行) - libCorerun.js:
BrowserHost_ExternalAssemblyProbe関数を実装し、サイドバイサイドの.wasmファイルを探索、インスタンス化、WebCILペイロードの抽出をサポート(+57行)
パフォーマンスへの影響
影響なし
関連Issue
その他
なし
#125970 [release/10.0] pass Creator to Helix only for open queues
- 作成者: @wfurt
- 作成日時: 2026年03月23日 16:14:14(UTC)
- マージ日時: 2026年03月24日 00:10:59(UTC)
- ラベル: Servicing-approved area-Infrastructure
概要
Helix SDK がアクセストークンを使用する場合、Creator パラメータが禁止されるエラーに対応しました。リリース 10.0 向けのインストーラー Helix パイプラインで、Creator パラメータを公開キュー(public Azure DevOps プロジェクト)でのみ渡すよう条件付けします。
変更内容
- eng/pipelines/installer/helix.yml:
Creatorパラメータの渡し方を条件付けし、公開プロジェクト環境でのみ設定。内部プロジェクト環境ではHelixAccessTokenと内部キューマッピング(.open接尾辞のストリップを含む)を使用。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このPRは Helix SDK 10.0.0-beta.26167.104 以降のバージョンで導入された制約に対応するもので、認証アクセス使用時の Creator パラメータ禁止エラーを解決します。
#125969 Fix flaky signal handler test on mono on Linux
- 作成者: @mrek-msft
- 作成日時: 2026年03月23日 15:54:19(UTC)
- マージ日時: 2026年03月24日 10:23:57(UTC)
- ラベル: area-System.Diagnostics.Process
概要
Mono環境下でのシグナルハンドラーテストの不安定性を修正。Monoランタイムの場合、SIGQUITがスレッドダンプを標準出力に出力し、親プロセスのStandardOutput.EndOfStreamチェックが失敗する問題を解決しました。
変更内容
- src/libraries/System.Diagnostics.Process/tests/ProcessTests.cs:
SignalHandler_CanDisposeInHandlerテストを修正- Mono環境(非Windows)での処理フロー変更:2番目のSIGQUITではなくSIGTERMで遠隔プロセスを終了するよう変更
- Monoの
SIGQUIT動作に関する説明コメントを追加
パフォーマンスへの影響
影響なし
関連Issue
その他
本修正はテスト実装の変更であり、シグナルハンドリングの公開APIには影響しません。Mono固有の動作(SIGQUITによるスレッドダンプ出力)に対応したもので、テストの信頼性向上を目的としています。
#125942 [cDAC] : Implement ClrDataModule GetName
- 作成者: @rcj1
- 作成日時: 2026年03月23日 01:55:20(UTC)
- マージ日時: 2026年03月24日 20:36:51(UTC)
- ラベル: area-Diagnostics-coreclr
概要
cDAC(CoreCLR Data Access Component)レガシーシムの IXCLRDataModule.GetName を実装するPRです。Loaderコントラクトからモジュールの「シンプル名」(UTF-8)を取得する機能を追加し、対象ランタイムからこのシンプル名を公開できるようにLoaderコントラクト/データモデルを拡張します。
変更内容
- Loaderコントラクト層:
ILoader.GetSimpleNameインターフェースを追加し、Loader_1.csで実装を追加 - データモデル:
Data.ModuleにSimpleNameUTF-8ポインタフィールドを追加、VM側(ceeload.h)でオフセット定義を追加 - レガシーシム:
ClrDataModule.GetNameを実装し、ILoader.GetSimpleNameを使用してモジュール名を取得 - テスト: UTF-8文字列読み取り機能を追加、モック記述子でシンプル名の割り当て/書き込みを実装、
GetSimpleNameの複数アーキテクチャ対応テストを追加 - ドキュメント: Loaderコントラクト設計ドキュメントに
GetSimpleNameAPIとModule.SimpleNameフィールドを記載
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- API型: 内部実装。
IXCLRDataModule.GetNameはデバッグ診断API(cDAC)の一部で、既存のpublic APIの機能補完です - 互換性: 破壊的変更なし。Loaderコントラクトにメソッドを追加しており、既存の実装に影響しません
#125930 Fix OOM in BinHexDecoder, Base64Decoder, and XmlSchemaValidator when throwing on large invalid input
- 作成者: @Copilot
- 作成日時: 2026年03月22日 20:00:25(UTC)
- マージ日時: 2026年03月24日 16:13:15(UTC)
- ラベル: area-System.Xml
概要
32ビットプラットフォーム(x86、WASM)で大きな無効入力に対する例外スローの際に発生していたOutOfMemoryExceptionを修正。BinHexDecoderとBase64Decoderが例外メッセージ生成時にデコードバッファ全体(数百万文字)を文字列化していたため、実際の例外送出前にメモリ枯渇が発生していた。またXmlSchemaValidatorも同様に例外メッセージに要素/属性値全体を埋め込んでいた。修正により、無効文字の場合は該当文字のみ、スキーマ検証では値を40文字に截断してメッセージサイズを制限する。
変更内容
- BinHexDecoder.cs: 無効文字エラーで
chars.ToString()→ch.ToString()に変更。リソース文字列を"text sequence"から"character"に更新。奇数個エラーパスではnullを渡しリソース文字列から{0}プレースホルダを削除。 - Base64Decoder.cs: 無効文字エラーと非ホワイトスペース後のパディングエラーの2箇所で
chars.ToString()→ch.ToString()に変更。 - XmlSchemaValidator.cs:
TruncateValueForErrorMessageヘルパーメソッド追加(最大40文字 +"...")。スキーマ検証エラーメッセージの3つの呼び出し箇所で値を截断。 - リソース文字列(Strings.resx): エラーメッセージ文字列を更新。
- テスト:
TestReadBinHex_105376で例外メッセージ長≤100を検証。TestReadBase64_InvalidChar_ErrorMessageBoundedを追加。ValidationErrorMessageTestsで要素/属性スキーマ検証パスのメッセージ長≤500を検証。
パフォーマンスへの影響
大規模無効入力に対する例外スロー時の不要なメモリ割り当てを削減。32ビットプラットフォームで数百万文字のバッファ全体を文字列化することを回避し、OutOfMemoryExceptionを防止する。影響は例外パスのメモリ使用量削減に限定。
関連Issue
その他
- 非推奨化や破壊的変更なし(例外メッセージ内容が変更されるため、例外メッセージの完全一致に依存するコードには影響の可能性)
- XML解析ライブラリの公開APIレベルでは挙動変更なし。内部実装のメモリ効率化が主目的
#125928 Shorten thread names exceeding the 15-char Linux pthread_setname_np limit
- 作成者: @Copilot
- 作成日時: 2026年03月22日 17:55:38(UTC)
- マージ日時: 2026年03月24日 02:06:15(UTC)
- ラベル: area-Diagnostics-coreclr
概要
Linux の pthread_setname_np による15文字の制限を超えるランタイムスレッド名を短縮する変更です。過去にスレッド名が無言で切り詰められていたため、デバッガや診断ツール(ps、top、htop)での識別が困難でした。6つのスレッド名をそれぞれ15文字以下に短縮し、複数のランタイムレイヤー(CoreCLR、Mono WASM)で一貫性を保ちました。
変更内容
以下のスレッド名を短縮:
| 旧名称 | 新名称 | 文字数 | 変更箇所 |
|---|---|---|---|
.NET Stack overflow trace logger |
.NET SO Tracer |
33→14 | src/coreclr/vm/eepolicy.cpp |
.NET Stack overflow create dump |
.NET SO Dumper |
32→14 | src/coreclr/vm/excep.cpp |
.NET Tiered Compilation Worker |
.NET Tiered JIT |
30→15 | src/coreclr/vm/tieredcompilation.cpp |
.NET Long Running Task |
.NET Long Task |
22→14 | ThreadPoolTaskScheduler.cs + worker-thread.ts |
.NET ThreadPool IO |
.NET TP I/O |
18→11 | PortableThreadPool.IO.Windows.cs |
.NET SynchManager |
.NET Sync Mgr |
18→13 | src/coreclr/pal/src/synchmgr/synchmanager.cpp |
既に15文字以下の他のスレッド名(.NET TP Worker、.NET Finalizer、.NET EventPipe など)は変更なし。Mono ブラウザ WASM ランタイムの長実行タスク識別ロジックも対応済み。
パフォーマンスへの影響
影響なし
関連Issue
その他
- マネージド デバッガの互換性:リビュアーの確認により、過去のスレッド名変更でデバッガや診断ツールの問題は報告されていないため、変更は安全と判断されました
- すべての変更は文字列リテラルのみで、ロジック変更なし
#125882 Add global:: qualifier to System namespaces in OptionsValidatorGenerator
- 作成者: @haltandcatchwater
- 作成日時: 2026年03月21日 03:36:25(UTC)
- マージ日時: 2026年03月24日 12:31:55(UTC)
- ラベル: area-Extensions-Options community-contribution
概要
OptionsValidatorGeneratorが生成するコード内のUnconditionalSuppressMessage属性にglobal::修飾子を追加し、名前空間解決の競合を修正します。消費プロジェクトにXXX.Systemのような名前空間が存在する場合、System.Diagnosticsが誤ってXXX.Systemに対して解決され、CS0234エラーが発生していました。
変更内容
- Emitter.cs:
UnconditionalSuppressMessage属性の出力にglobal::プレフィックスを追加。他の属性はすでに一貫してglobal::を使用していたが、この属性のみ不足していました。 - ベースラインファイル(7ファイル): 生成コード出力の更新に対応するため、テストベースラインを更新。これはソースジェネレータの厳密な文字列比較テストに対応するための変更です。
パフォーマンスへの影響
影響なし
関連Issue
その他
このPull Requestはソースジェネレータ内の既存の一貫性を修正するもの(他の属性との統一)で、破壊的変更ではありません。生成されるコードの機能は変わらず、コンパイラの名前空間解決の問題を修正します。
#125849 Convert more COM interop MethodDescCallSite to UnmanagedCallersOnly (UCO)
- 作成者: @Copilot
- 作成日時: 2026年03月20日 18:08:33(UTC)
- マージ日時: 2026年03月24日 04:11:20(UTC)
- ラベル: area-VM-coreclr
概要
COM interop マイグレーションの継続(グループ5)として、3つの MethodDescCallSite 呼び出しを UnmanagedCallersOnly(UCO)パターンに変換し、関連する不要なコードを削除します。StubHelpers.cs に3つの新しいUCOヘルパーを追加し、ネイティブ呼び出しサイトを更新します。
変更内容
- StubHelpers.cs(管理コード):
GetDispatchExPropertyFlags、CallICustomQueryInterface、InvokeConnectionPointProviderMethodの3つのUCOヘルパーを追加(計73行) - stdinterfaces.cpp:
PropertyInfo.CanRead/CanWriteクエリを2つのMethodDescCallSiteから単一のUCOヘルパー呼び出しに変換 - comconnectionpoints.cpp: connection point provider メソッド呼び出しをUCOヘルパーで置き換え(
GetMultiCallableAddrOfCode()を使用して future invoke に対応) - comcallablewrapper.cpp:
InvokeICustomQueryInterfaceGetInterface_CallBackコールバックパターンをUCOヘルパーで置き換え - 不要コード削除:
m_ohDelegateunion フィールド、delegate ハンドル関連API(GetOHDelegate/SetOHDelegate等)、ComCallWrapperTemplateのICustomQueryInterfaceMethodDesc キャッシュ、delegate ベースのCreateAggregatedInstanceパスを削除 - メタデータ更新:
metasig.hに新しいUCO メタシグ定義を追加、corelib.hに新規メソッド登録(1つはNoSig)
パフォーマンスへの影響
影響なし(マイグレーションによる直接的なパフォーマンス変化のデータなし)
関連Issue
#123864(COM interop UCO migration 親Issue)、#125508(フィードバック対象PR)
その他
InvokeConnectionPointProviderMethodではnint/UIntPtrコンストラクタ フォールバックを使用して正確性を確保InvokeICustomQueryInterfaceGetInterface_CallBackの廃止に伴いInvokeThrowing_Ret<INT32>で直接戻り値を処理- 既存の
GetIEnumeratorToEnumVariantMarshalerUCOオーバーロードに[RequiresUnsafe]を追加して一貫性を確保 - PR のレビューコメント1件を生成
#125836 [Wasm RyuJIT] initblk fix for #125756
- 作成者: @kg
- 作成日時: 2026年03月20日 15:20:28(UTC)
- マージ日時: 2026年03月24日 17:45:24(UTC)
- ラベル: arch-wasm area-CodeGen-coreclr
概要
WebAssembly RyuJIT における initblk 操作の識別ロジックを修正するPRです。GenTree::OperIsInitBlkOp() メソッドが、ソースが int 型の値 かつ init-value セマンティクスを持つ場合のみ init block として認識するように厳密化しました。これにより、WASM環境で initblk と copyblk が異なるネイティブオペコードにマッピングされることによる不正な lowering/codegen を防ぎます。
変更内容
- src/coreclr/jit/gentree.h:
GenTree::OperIsInitBlkOp()を更新し、TYP_INTチェックに加えてgtSkipReloadOrCopy()後のIsInitVal()チェックを追加。DEBUG assert-by-equivalence を削除し、直接的なセマンティクチェックに変更。
パフォーマンスへの影響
TP(Throughput Performance)回帰の可能性があります。作成者は既存コードが「明らかに誤りがある」と指摘しており、この修正が性能に与える影響は未確定です。
関連Issue
その他
なし
#125824 [wasm][coreclr] Enable more libraries tests
- 作成者: @radekdoulik
- 作成日時: 2026年03月20日 09:59:08(UTC)
- マージ日時: 2026年03月24日 08:19:22(UTC)
- ラベル: arch-wasm area-Infrastructure-coreclr
概要
WASM CoreCLR環境でのライブラリテスト実行範囲を拡大するPRです。ブラウザ/CoreCLR環境のテスト除外リストを削減し、タイムアウト値を延長することで、より多くのテストスイートをWASM CoreCLRで実行できるようにします。
変更内容
- src/libraries/tests.proj: ブラウザ/CoreCLR除外リストを大幅に削減(+14/-62)。残存する除外をテスト失敗と長時間実行に分類
- src/libraries/sendtohelixhelp.proj:
TargetOS=browser+RuntimeFlavor=CoreCLR環境のHelix work itemタイムアウトを2時間に延長 - eng/testing/tests.wasm.targets: WASM CoreCLRの
WasmXHarnessTestsTimeoutを2時間に延長
パフォーマンスへの影響
直接的なランタイムパフォーマンス改善はありませんが、テスト実行時間が延長されます。タイムアウト値の増加(2時間)により、長時間実行するテストケースの完了を待つことができるようになります。
関連Issue
なし
その他
この変更はテスト基盤にのみ影響し、公開APIや製品ランタイムコードには影響しません。WASM CoreCLR環境でのテストカバレッジ向上を目的とした改善です。
#125817 [release/10.0] [QUIC] Disable Quic tests on AzL3 VM
- 作成者: @github-actions[bot]
- 作成日時: 2026年03月20日 03:45:20(UTC)
- マージ日時: 2026年03月24日 08:58:44(UTC)
- ラベル: Servicing-approved area-System.Net.Quic
概要
release/10.0ブランチへの#125665のバックポート。QUIC機能テストをAzL3 VM環境で無効化する変更です。
変更内容
- QuicTestBase.cs: AzL3 VM環境を検出するロジックを追加
- 各QUIC機能テストファイル: 以下8ファイルに対して、テスト実行時にAzL3 VM環境でのスキップ条件を追加
- MsQuicCipherSuitesPolicyTests.cs
- MsQuicRemoteExecutorTests.cs
- MsQuicTests.cs
- QuicConnectionTests.cs
- QuicListenerTests.cs
- QuicStreamConnectedStreamConformanceTests.cs
- QuicStreamTests.cs
- MsQuicPlatformDetectionTests.cs: 新しい検出ロジックのテストを追加
パフォーマンスへの影響
影響なし(テストのスキップ条件の追加のため)
関連Issue
その他
このバックポートはテストスイートの変更のみで、QUIC実装自体への変更はありません。AzL3 VM環境における既知の問題への対応と考えられます。
#125774 Increase TTL in SendPingWithLowTtl_RoundtripTimeIsNonZero to fix macOS flakiness
- 作成者: @rzikm
- 作成日時: 2026年03月19日 13:46:29(UTC)
- マージ日時: 2026年03月24日 10:52:06(UTC)
- ラベル: area-System.Net
概要
macOSでSendPingWithLowTtl_RoundtripTimeIsNonZeroテストが一貫して失敗する問題を修正します。macOSの生ソケットPing実装は1ms未満のRTT値を整数キャストで0に切り詰めるため、TTL=1では最初のホップまでの往復時間が0msと計測されていました。TTLを1から5に増やし、ICMPパケットがより遠くまで到達してから期限切れになるようにすることで、計測可能なRTTが得られる確率を高めます。
変更内容
- src/libraries/System.Net.Ping/tests/FunctionalTests/PingTest.cs:
SendPingWithLowTtl_RoundtripTimeIsNonZeroテストのoptions.Ttlを1から5に変更- macOSの生ソケット実装のRTT計算ロジックと、高いTTLが必要な理由を説明するコメントを追加
パフォーマンスへの影響
影響なし(テストコードの修正であり、本体ロジックへの変更ではありません)
関連Issue
その他
- 修正対象: macOS(
osx.15.amd64およびosx.26.arm64)でのみ問題が発生していました - Windowsは
IcmpSendEchoを使用しており、OS報告のRTT値を使うため影響なし - TTL値を5に設定することで、ルーターまでの距離が増し、計測時間が1msを超える可能性が高まります
- ただし、ネットワークトポロジーによっては対象ホストがTTL 5以内の距離にあり、成功応答(IPStatus.Success)が返される可能性があることへの懸念がレビュー時に指摘されています
#125745 Fix SingleConsumerUnboundedChannel WaitToReadAsync returning exception instead of false
- 作成者: @Copilot
- 作成日時: 2026年03月18日 20:08:02(UTC)
- マージ日時: 2026年03月24日 17:53:27(UTC)
- ラベル: area-System.Threading.Channels
概要
SingleConsumerUnboundedChannel.WaitToReadAsyncが、先行するReadAsyncのキャンセル後にチャネルが正常に完了した場合に、falseを返すべきところChannelClosedExceptionをスローしていた問題を修正しました。
TryCompleteメソッド内でerror変数がCreateInvalidCompletionExceptionの呼び出しで上書きされ、その結果待機中のリーダーに例外が誤って伝播していた根本原因を解決しています。
変更内容
- SingleConsumerUnboundedChannel.cs:
TryCompleteメソッド内でerror変数への代入を避けるため、CreateInvalidCompletionExceptionの呼び出しをインライン化。これにより、待機中のリーダーが正しい完了状態を観測できるようになりました。 - UnboundedChannelTests.cs: キャンセルされた
ReadAsync→WaitToReadAsync→ 正常なComplete()のシーケンスをカバーする回帰テストを追加。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この修正は内部実装の変更であり、公開APIには影響を与えません。修正は変数スコープの局所化により、共有状態の誤った伝播を防ぐシンプルな改善です。
#125721 Add unsafe evolution attributes
- 作成者: @jjonescz
- 作成日時: 2026年03月18日 10:59:26(UTC)
- マージ日時: 2026年03月24日 18:29:54(UTC)
- ラベル: area-System.Runtime.CompilerServices
概要
unsafe機能の利用に関する属性APIの公開と進化のサポートを追加するPR。RequiresUnsafeAttributeを内部属性から公開APIに変更し、新たにMemorySafetyRulesAttributeをSystem.Runtime.CompilerServicesに導入します。これらはメモリ安全性ルールの進化を追跡するためのコンパイラサポート属性です。
変更内容
- RequiresUnsafeAttribute: 内部/デバッグ限定から公開属性へ昇格、
AttributeTargetsを拡張 - MemorySafetyRulesAttribute:
System.Runtime.CompilerServicesに新規追加、Versionプロパティを備える(System.Runtimeref +System.Private.CoreLib実装) - intrinsics属性付与: ARM(AdvSimd、Sve、Sve2)、Wasm(PackedSimd)、X86(Avx系、Sse系など)の多数のintrinsicsメソッドに
RequiresUnsafeAttributeを追加 - ref surface更新:
System.Runtime.csとSystem.Diagnostics.Tracing.cs、System.Numerics.Vectors.csに公開API定義を追加 - 互換性対応:
CompatibilitySuppressions.xmlに新属性と使用法変更の抑制を記載 - テスト追加:
MemorySafetyRulesAttribute.VersionのRoundtripテストとRequiresUnsafeAttributeの最小限のコンストラクタテスト
パフォーマンスへの影響
影響なし
関連Issue
#125134 Roslyn #81207(テスト計画関連)
その他
- 公開API化による破壊的変更なし(内部→公開への昇格)
- 複数のレビュワーによる段階的レビュー後のマージ
- NativeAOT互換性対応も含む
#125716 [release/10.0] use AZL3 instead of Ubuntu for builds
- 作成者: @github-actions[bot]
- 作成日時: 2026年03月18日 08:49:01(UTC)
- マージ日時: 2026年03月24日 08:57:01(UTC)
- ラベル: Servicing-approved area-Infrastructure
概要
release/10.0ブランチへのバックポート。ビルド環境をUbuntuからAZL3(Azure Linux 3)に変更します。主にCI/CDパイプライン設定とSystem.Net.Quicテストの実行環境指定が対象です。
変更内容
- eng/pipelines/common/xplat-setup.yml: ビルド環境設定をUbuntuからAZL3に変更
- System.Net.Quicテスト群: 以下8ファイルのテスト実行環境をAZL3に更新
- MsQuicCipherSuitesPolicyTests.cs
- MsQuicRemoteExecutorTests.cs
- MsQuicTests.cs
- QuicConnectionTests.cs
- QuicListenerTests.cs
- QuicStreamConnectedStreamConformanceTests.cs
- QuicStreamTests.cs
- QuicTestBase.cs
パフォーマンスへの影響
影響なし(ビルド環境の変更のみ)
関連Issue
#125544(オリジナルのPR)
その他
本PRは#125544のrelease/10.0ブランチへのバックポート版です。内容の詳細については、オリジナルPRを参照してください。
#125646 [ios-clr] Resolve throw helpers to managed methods in R2R compilation
- 作成者: @kotlarmilos
- 作成日時: 2026年03月17日 11:36:46(UTC)
- マージ日時: 2026年03月24日 18:05:51(UTC)
- ラベル: area-crossgen2-coreclr
概要
iOS/MacCatalyst での完全R2R(ReadyToRun)コンパイルを実現するため、4つの throw ヘルパー(CORINFO_HELP_THROW_ARGUMENTEXCEPTION、CORINFO_HELP_THROW_ARGUMENTOUTOFRANGEEXCEPTION、CORINFO_HELP_THROW_PLATFORM_NOT_SUPPORTED、CORINFO_HELP_THROW_NOT_IMPLEMENTED)を Internal.Runtime.CompilerHelpers.ThrowHelpers の管理されたメソッドエントリポイントにマッピングします。これまでこれらのヘルパーを参照するメソッドは crossgen2 でプリコンパイルできず、実行時にインタプリタにフォールバックしていました。
変更内容
- CorInfoImpl.ReadyToRun.cs: JIT throw ヘルパーを
RequiresRuntimeJitExceptionをスローする代わりに R2R helper ID に解決 - ReadyToRunConstants.cs: throw ヘルパーに明示的な serialized helper ID を割り当て、内部限定の「fake helper」セクションから昇格
- readytorun.h: native
ReadyToRunHelperenum に新しい throw ヘルパーを追加(fixed values) - readytorunhelpers.h: native マッピングエントリを追加して、R2R helper ID が対応する
CORINFO_HELP_THROW_*に解決されるよう設定 - ModuleHeaders 関連ファイル: version/magic number 関連の調整
パフォーマンスへの影響
大幅な改善を測定(MAUI .NET 11 iOS composite R2R ビルド):
- インタプリタフォールバックメソッド数: 3,269 → 341 (-2,928 = -89.6%)
- 2,187 件:
CORINFO_HELP_THROW_PLATFORM_NOT_SUPPORTED(ARM intrinsics) - 741 件:
CORINFO_HELP_THROW_ARGUMENTOUTOFRANGEEXCEPTION(ARM intrinsic range checks)
- 2,187 件:
実行速度向上とメモリ効率改善が期待される(インタプリタ実行からプリコンパイル済みコードへの移行)。
関連Issue
その他
- この変更は R2R compilation インフラストラクチャの内部実装に関わるもので、公開 API への直接的な影響はありません
- iOS/MacCatalyst の完全 R2R/JIT なし環境での動作を実現するための platform-specific な修正です
#125635 Add BarrierPostPhaseException to Barrier XML doc comments
- 作成者: @Copilot
- 作成日時: 2026年03月16日 21:09:11(UTC)
- マージ日時: 2026年03月24日 17:30:34(UTC)
- ラベル: area-System.Threading
概要
System.Threading.BarrierクラスのXMLドキュメントコメントを更新し、BarrierPostPhaseExceptionの発生可能性を正確に文書化しました。RemoveParticipant(s)メソッドと全6つのSignalAndWaitオーバーロードにBarrierPostPhaseExceptionの例外ドキュメントを追加しています。これはドキュメント修正のみで、ランタイム動作への変更はありません。
変更内容
- src/libraries/System.Threading/src/System/Threading/Barrier.cs:
RemoveParticipantメソッドに<exception cref="BarrierPostPhaseException">タグを追加RemoveParticipantsメソッドに<exception cref="BarrierPostPhaseException">タグを追加- 6つの
SignalAndWaitオーバーロード全てに<exception cref="BarrierPostPhaseException">タグを追加
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- この変更は公開API(
System.Threading.Barrier)の外部向けドキュメントの修正です - 既に設計通りのランタイム動作として例外が発生していたが、XMLドキュメントに記載されていなかったため、IntelliSense表示や公式リファレンスとの不一致が解消されます
- Microsoft公式APIリファレンスでは既に
BarrierPostPhaseExceptionが記載されていました
#125615 JIT: Add a runtime async optimization to skip saving unmutated locals into reused continuations
- 作成者: @jakobbotsch
- 作成日時: 2026年03月16日 14:15:12(UTC)
- マージ日時: 2026年03月24日 10:05:11(UTC)
- ラベル: area-CodeGen-coreclr runtime-async
概要
非同期メソッドの継続(continuation)再利用時に、前の再開ポイント以降に変更されていないローカル変数の保存をスキップする最適化を追加しました。PR #125556で導入された継続再利用の仕組みを活用し、変更されていないローカル変数への不要な書き込みバリアを削減することで、約10%のパフォーマンス向上を実現します。
変更内容
- PreservedValueAnalysis: ローカル変数が前の再開ポイント以降に変更されたかを追跡するフォワード型データフロー解析を導入し、続きオブジェクト再利用時に保存をスキップすべき変数を判定
- 続きレイアウト構造の再設計: 単発の
ContinuationLayoutからContinuationLayoutBuilder/ContinuationLayoutの二相設計に変更し、複数の中断点間で共有可能なレイアウトを計算可能に - フラグエンコーディング変更:
HAS_*ビットマスクから例外・コンテキスト・結果オフセットのインデックスベースエンコーディングに切り替え(corinfo.h、AsyncHelpers.CoreCLR.cs、object.h、interpexec.cpp、interpreter/compiler.cppで対応) - 中断・再開の二相処理:
CreateSuspensionとCreateResumptionをブロック作成フェーズとIR生成フェーズに分割し、新しいCreateResumptionsAndSuspensionsメソッドで統合制御 - JITコンフィグ追加:
JitAsyncReuseContinuationsとJitAsyncPreservedValueAnalysisRangeを追加して最適化の有効/無効制御とデバッグ対応 - レグレッションテスト: src/tests/async/regression/125615.cs/csprojを追加
パフォーマンスへの影響
改善: 約10% - マイクロベンチマーク結果(DOTNET_TC_OnStackReplacement=0環境下)
- 改善前: ~410ms
- 改善後: ~375ms
改善の主要因は、継続再利用時に変更されていないローカル変数への不要な書き込みバリアコール(CORINFO_HELP_ASSIGN_REFなど)を削減したこと。コード生成も若干最適化され、総バイト数がわずかに増加(767→768バイト)しつつ実行時間が大幅に短縮。
関連Issue
#125556 (先行PR、継続再利用の基盤を提供)
その他
- 内部API変更: JIT コンパイラ内部の
ContinuationLayoutと非同期状態追跡の構造が大幅に変更されており、他の JIT パスやプロファイラが継続情報にアクセスする場合は確認要 - フラグエンコーディングの互換性:
HAS_*ビットマスクからインデックスベース形式への切り替えはランタイム全体に波及するため、カスタムランタイムやプロファイルツールの対応要件あり - レビュー指摘:
mutatedSinceResumptionの取得タイミングが最適でない可能性が指摘されており、CanonicalizeCallDefinition後に再取得することで精度向
#125604 [release/10.0] Update dependencies from dotnet/xharness
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年03月16日 05:04:00(UTC)
- マージ日時: 2026年03月24日 20:20:53(UTC)
- ラベル: Servicing-approved area-codeflow
概要
dotnet/xharness の依存関係を更新するPull Requestです。Microsoft.DotNet.XHarness 関連パッケージ(CLI、TestRunners.Common、TestRunners.Xunit)を 11.0.0-prerelease.26117.1 から 11.0.0-prerelease.26169.1 にアップデートしています。
変更内容
- .config/dotnet-tools.json: dotnet tools の設定ファイルを更新
- eng/Version.Details.props: バージョン定義ファイルを更新
- eng/Version.Details.xml: バージョン詳細ファイルを更新
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- このPR は dotnet-maestro[bot] による自動依存関係更新です
- xharness ビルド: 20260319.1(2026年3月19日)
- 更新対象は [release/10.0] ブランチです
#125544 [release/8.0-staging] use AZL3 instead of Ubuntu for builds
- 作成者: @wfurt
- 作成日時: 2026年03月13日 23:51:58(UTC)
- マージ日時: 2026年03月24日 08:55:55(UTC)
- ラベル: Servicing-approved area-Infrastructure
概要
内部ビルドインフラストラクチャのLinuxイメージを Ubuntu 22.04 から Azure Linux 3(AZL3)に変更する、release/8.0-stagingブランチ向けの更新です。内部ビルドの非公開LinuxプールのImageOverride設定を更新します。
変更内容
- eng/pipelines/common/xplat-setup.yml: 内部Linux jobのイメージ設定を
build.azurelinux.3.amd64に変更(+2/-2行)
パフォーマンスへの影響
影響なし(ビルドインフラストラクチャの変更であり、ランタイム/コンパイラの機能変更ではない)
関連Issue
なし
その他
- このPRは内部ビルド環境の変更であり、公開APIやランタイム動作には影響しません
- release/8.0-stagingブランチへの統合のため、既存の.NETランタイムビルドプロセスに影響を与えない限定的な変更です
#125460 Remove unnecessary RequiresProcessIsolation from 172 tests and update comments on 18 that need it
- 作成者: @Copilot
- 作成日時: 2026年03月11日 21:56:24(UTC)
- マージ日時: 2026年03月24日 03:16:01(UTC)
- ラベル: area-Infrastructure
概要
src/tests/配下の190個のテストプロジェクトに対して、RequiresProcessIsolation属性の必要性を監査しました。172個のテストではこの属性が不要であることが確認されたため削除し、18個のテストでは実際の必要理由に基づいてコメントを置き換えました。これにより、テストプロジェクト定義の精度が向上し、不要なプロセス分離オーバーヘッドが削減されます。
変更内容
- 172テスト:
RequiresProcessIsolation属性と関連コメントを削除(プロジェクトファイルまたはソースコードにトリガーなし) - 18テスト: 汎用的な「mechanical merging」コメントを実際の必要理由に置き換え
- 7件:
ReferenceXUnitWrapperGenerator=false(カスタムMain エントリポイント) - 5件:
CLRTestTargetUnsupported(readytorun/Directory.Build.propsから継承) - 3件:
MonoAotIncompatible - 2件:
NativeAotIncompatible - 1件:
CMakeProjectReference+CopyToOutputDirectory
- 7件:
- 空になった
<PropertyGroup>要素はクリーンアップ - GC/API、GCHandle関連テストプロジェクトなど、主にマネージド機能テストが対象
パフォーマンスへの影響
172個のテストでプロセス分離が不要になることにより、テスト実行時間が短縮されます。具体的な改善率の数値は提供されていません。
関連Issue
なし
その他
- 変更は内部テストのみに限定(公開API無影響)
docs/workflow/testing/coreclr/requiresprocessisolation.mdに定義された28個のルールに基づいて監査実施- 「mechanical merging」コメントを持つファイルが全て処理されたことが検証済み
#125458 Remove ByValueMarshalKindSupport.Unnecessary and move ByValueContentsMarshalKindValidator to analyzers only
- 作成者: @Copilot
- 作成日時: 2026年03月11日 21:54:02(UTC)
- マージ日時: 2026年03月24日 03:17:56(UTC)
- ラベル: area-System.Runtime.InteropServices
概要
interop ソースジェネレータインフラのクリーンアップが行われました。ByValueContentsMarshalKindValidator を検証・診断専用のアナライザ側に移動し、コード生成パイプラインから削除。また、実際に使用されることのない ByValueMarshalKindSupport.Unnecessary 列挙値と関連する死コードを削除しました。
変更内容
ByValueContentsMarshalKindValidatorの移動:DefaultMarshallingGeneratorResolver.Create()とDownlevelLibraryImportGeneratorHelpers.GeneratorResolverから削除し、各アナライザ呼び出し箇所(LibraryImportDiagnosticsAnalyzer、ConvertToLibraryImportAnalyzer、DownlevelLibraryImportDiagnosticsAnalyzer、ComInterfaceGeneratorDiagnosticsAnalyzer、VtableIndexStubDiagnosticsAnalyzer、ConvertComImportToGeneratedComInterfaceAnalyzer)で明示的にラッパーを適用ByValueMarshalKindSupport.Unnecessaryの削除: 未使用の列挙値とその依存コード(スイッチケース)を削除TypePositionInfo.ByValueMarshalAttributeLocationsの削除:Unnecessary診断の属性ソース位置提供のためだけに存在していたプロパティを削除GetByValueContentsMarshalKindの簡潔化: 戻り値型を3タプルから単純なByValueMarshalKindに変更- リソース文字列の削除:
SR.InOutAttributes文字列リソースと13言語の xlf 翻訳エントリを削除 - ドキュメント修正:
ByValueMarshalKindSupportDescriptor.Defaultの XML ドキュメントコメントの誤記([In]が不要とされているが実際はNotSupported)を修正
パフォーマンスへの影響
コード生成パイプラインから検証ステップを削除することで、生成時の処理が若干簡潔になりますが、顕著なパフォーマンス改善は期待されません。
関連Issue
なし
その他
本変更は内部実装のクリーンアップであり、公開APIへの影響はありません。削除される機能はいずれも実装上の死コードであり、実際のマーシャリング動作に変化はありません。
#125324 improve error handling in OpenSSL init code
- 作成者: @wfurt
- 作成日時: 2026年03月09日 10:23:26(UTC)
- マージ日時: 2026年03月24日 15:57:25(UTC)
- ラベル: area-System.Net.Security
概要
OpenSSL初期化処理のエラーハンドリングを改善し、OpenSSL設定の問題によるハードフェイルure(セグメンテーション違反など)を削減するPR。System.Security.Cryptography.Nativeのネイティブコード層で、初期化失敗時のフォールバック処理とnullポインタチェックを追加します。
変更内容
- openssl.c:
OPENSSL_INIT_LOAD_CONFIGフラグでの初期化失敗時に、フラグなしでOPENSSL_init_sslを再試行するフォールバック処理を追加。またTLS_method()の戻り値に対するデバッグassertを削除。 - pal_ssl.c:
CryptoNative_SslCtxCreateでnullSSL_METHOD*を明示的に検処理し、無効なポインタをSSL_CTX_newに渡すことを防止。
パフォーマンスへの影響
影響なし
関連Issue
その他
本PR変更は内部実装(ネイティブ層)の堅牢性向上で、公開APIへの影響はなし。OpenSSL設定の問題に起因する予期しないクラッシュ(JITコンパイルスタブから発生していた)の回避を目的としています。
#125213 [release/10.0] [mono][sgen] Fix card scanning in LOS non-array objects
- 作成者: @github-actions[bot]
- 作成日時: 2026年03月05日 11:22:32(UTC)
- マージ日時: 2026年03月24日 09:00:19(UTC)
- ラベル: Servicing-approved area-VM-meta-mono
概要
Mono SGen ガベージコレクタにおいて、Large Object Store (LOS) の非配列オブジェクト(8KB以上のサイズ)に対するカードスキャンの不具合を修正しました。カード マーキングが正しく機能していなかったため、大きなオブジェクト内に格納されたオブジェクト参照をGCが検出できず、GCクラッシュまたはその他の予測不可能な動作を招く可能性がありました。
変更内容
src/mono/mono/sgen/sgen-cardtable.c: アドレスアライメント処理を追加してカードスキャン時に追加のカードが正しくスキャンされるよう修正(+1行)
パフォーマンスへの影響
影響なし。修正はアドレスアライメント処理のみで、パフォーマンスへの悪影響はありません。
関連Issue
#125116(オリジナルプルリクエスト)
その他
- 本変更は release/10.0 ブランチへのバックポートです
- カスタマー報告済みの問題で、お客様により GC デバッグフラグを使用した調査も実施されています
- リスクレベルは低く、他の未診断の GC クラッシュの修正にも貢献する可能性があります
- すべての Mono ワークロードに影響する可能性があります
#125151 [automated] Merge branch 'release/9.0' => 'release/9.0-staging'
- 作成者: @github-actions[bot]
- 作成日時: 2026年03月03日 22:38:03(UTC)
- マージ日時: 2026年03月24日 08:48:28(UTC)
- ラベル: Servicing-approved linkable-framework area-codeflow
概要
release/9.0ブランチからrelease/9.0-stagingブランチへの自動マージです。複数のコミッター(vseanreesermsft、Copilot、hoyosjs、rbhanda、jozkee、dotnet-maestro[bot]、wfurt、bartonjs)による変更を統合します。このマージはマージコミットで実行する必要があります。
変更内容
- バージョン管理: eng/Version.Details.xml、eng/Versions.props の依存パッケージバージョン更新
- ビルド設定: NuGet.config、SourceBuildPrebuiltBaseline.xml、install-native-dependencies.sh の更新
- Base64処理: System.Buffers.Text.Base64DecoderHelper.cs にデコーダーロジック追加
- テスト修正:
- Base64 URL Unicode API テスト (System.Memory)
- System.Net.Sockets SendTo テスト
- LibraryImportGenerator 関連テスト (複数ファイル)
- 正規表現アナライザーテスト
- IL リンカーテスト
- テストランナー: GeneratedTestRunner.cs の軽微な実装変更
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- このPRは自動マージされません。チェック完了後、スクイャッシュやリベースではなくマージコミットで完了する必要があります。
- マージコンフリクトが発生した場合は手動で解決が必要です。
- コマンドラインでのマージ手順が提供されています。
#125074 Convert IDacDbiInterface to COM interface
- 作成者: @max-charlamb
- 作成日時: 2026年03月02日 20:36:36(UTC)
- マージ日時: 2026年03月24日 14:36:03(UTC)
- ラベル: area-Diagnostics-coreclr
概要
IDacDbiInterfaceをプレーンなC++抽象クラスからCOMインターフェースに変換します。これにより、将来的にマネージド(C#)のcDAC実装でIDacDbiInterfaceを実装可能になり、標準的なCOMのライフサイクル管理(ref-counting)が適用されます。このPRはISOSDacInterface / SOSDacImplパターンに従います。
変更内容
- dacdbiinterface.h:
IDacDbiInterfaceをMIDL_INTERFACEで定義しIUnknownを継承。カスタムDestroy()メソッドを削除し、Release()による自動ライフサイクル管理に変更。メソッドシグネチャをCOM互換に調整(bool→BOOL、参照→ポインタ、呼び出し規約をSTDMETHODCALLTYPEに統一)。オーバーロードのGetReJitInfoをGetReJitInfoByAddressに改名 - dacdbi.idl: COM契約の正式なIDL定義(159メソッド)を追加。
[local]属性で関数内通信のみを指定 - dacdbi_i.cpp: Windowsプラットフォームで実行できない環境向けのプリビルトGUID定義
- IDacDbiInterface.cs:
[GeneratedComInterface]属性付きのC#マネージドインターフェース定義 - dacdbiimpl.h/cpp:
QueryInterface/AddRef/Release実装を追加。ダイアモンド継承(ClrDataAccessとIDacDbiInterfaceの両方からIUnknownを継承)の解決。メソッド実装をポインタベースの出力パラメータに対応 - DBI呼び出し箇所の更新: 参照からポインタへの変更に対応(
rstype.cpp,module.cpp,process.cpp,divalue.cpp,rsthread.cpp) - 内部インターフェース:
IAllocatorとIMetaDataLookupをIUnknownを継承するCOMインターフェースに変更。IStringHolderはスタック割り当てのため従来のC++抽象クラスのまま
マイナーなバグ修正:
GetMetaDataFileInfoFromPEFile:pPEAssemblyがNULLの場合、S_OKを返しつつ他の出力パラメータが未設定だったのをE_FAILを返すように修正IsThreadDead(rsthread.cpp): BOOL正規化のためreturn _isDead;をreturn _isDead != FALSE;に修正
パフォーマンスへの影響
影響なし
関連Issue
その他
- ローカルRelaseビルド検証: daccess.lib、mscordbi.dll、mscordaccore.dll、mscordaccore_universal.dll共にエラー・警告なし
- ICorDebugサーバー側テスト: 761項目中、失敗・エラー0件(ベースラインと同一)
- レビュアー側で複数の低信頼度コメント提示:
GetMetaDataFileInfoFromPEFileとGetStackFramesFromExceptionでポインタ引数のnullチェック不足の可能性が指摘されている
#124644 Add JsonNamingPolicy.PascalCase and JsonKnownNamingPolicy.PascalCase
- 作成者: @Copilot
- 作成日時: 2026年02月20日 14:40:57(UTC)
- マージ日時: 2026年03月24日 19:22:36(UTC)
- ラベル: area-System.Text.Json
概要
System.Text.Jsonに新しいPascalCase命名ポリシーを追加します。JsonNamingPolicy.PascalCase静的プロパティとJsonKnownNamingPolicy.PascalCase = 6を実装し、camelCaseをCamelCaseに、XMLHttpRequestをXmlHttpRequestに変換するなど、各単語の最初の文字を大文字に統一します。既存のCamelCaseポリシーとは異なり、単語境界を適切に検出して処理します。
// 使用例
var policy = JsonNamingPolicy.PascalCase;
string result = policy.ConvertName("camelCase"); // "CamelCase"
変更内容
JsonSeparatorNamingPolicy.cs— 単語境界トークナイザーを一般化し、WordCasing列挙型(LowerCase/UpperCase/PascalCase)とchar?型の区切り文字(nullの場合は区切り文字なし)をサポートJsonPascalCaseNamingPolicy.cs— 新規追加、WordCasing.PascalCaseを使用した新しいポリシークラスJsonNamingPolicy.cs—PascalCase静的プロパティを追加JsonKnownNamingPolicy.cs—PascalCase = 6を追加ref/System.Text.Json.cs— ref アセンブリの更新- ソースジェネレータ — Emitter/Parserで新しい列挙型値への対応を追加
- テスト —
NamingPolicyUnitTests.csに57ケースの包括的な[Theory]テストを追加(2文字頭字語、数字、Unicode境界ケースなど対応)
パフォーマンスへの影響
影響なし
関連Issue
その他
- 本実装は承認されたAPI仕様に準拠しています
- CamelCaseとは異なり、単語境界を正確に検出するため、
XMLHttpRequest→XmlHttpRequest、IO→Io、AIProvider→AiProviderなど適切な変換を実現します - 既存テストの出力は変更されず、SnakeCaseやKebabCaseテストにもPascalCaseテストと同じ入力を追加して一貫性を確保しています
#124328 [automated] Merge branch 'release/8.0' => 'release/8.0-staging'
- 作成者: @github-actions[bot]
- 作成日時: 2026年02月12日 09:20:42(UTC)
- マージ日時: 2026年03月24日 08:48:17(UTC)
- ラベル: Servicing-approved area-codeflow
概要
release/8.0ブランチからrelease/8.0-stagingブランチへの自動マージPRです。hoyosjs氏とjozkee氏によるコミットを含みます。このPRは自動マージされず、チェック完了後にマージコミット(squashやrebaseではなく)で手動マージされる必要があります。
変更内容
- NuGet.config: NuGetパッケージソース設定の更新
- eng/Version.Details.xml: 依存パッケージバージョン情報の更新(6行変更)
- eng/Versions.props: ビルドバージョンプロパティの更新(4行変更)
- eng/install-native-dependencies.sh: ネイティブ依存関係インストールスクリプトに7行追加
- src/libraries/System.IO.FileSystem/tests/Base/SymbolicLinks/BaseSymbolicLinks.cs: シンボリックリンクテストの修正(8行追加、1行削除)
- src/libraries/System.Security.Cryptography.Cose/src/System.Security.Cryptography.Cose.csproj: COSE暗号化ライブラリのプロジェクト設定更新
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このPRはgithub-actions[bot]により自動生成された定期的なブランチマージです。マージ時にコンフリクトが発生した場合は手動で解決が必要です。
#124192 Fix NativeAOT publish including satellite assemblies despite embedding them
- 作成者: @Copilot
- 作成日時: 2026年02月09日 18:26:41(UTC)
- マージ日時: 2026年03月24日 17:41:51(UTC)
- ラベル: linkable-framework area-NativeAOT-coreclr
概要
NativeAOTアプリケーション公開時に、ネイティブバイナリに埋め込まれているサテライトアセンブリ(リソースアセンブリ)が公開フォルダにも重複してコピーされる問題を修正します。PR #124801のリファクタリング後、ComputeLinkedFilesToPublishターゲットでIntermediateSatelliteAssembliesWithTargetPathをResolvedFileToPublishから削除することで、冗長なサテライトアセンブリの公開をスキップします。
サテライトアセンブリ(例:es\AppName.resources.dll)はNativeAOTコンパイル時にネイティブバイナリに埋め込まれており、ディスクに配置する必要がありません。
変更内容
- src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets
ComputeLinkedFilesToPublishターゲットにResolvedFileToPublish Remove="@(IntermediateSatelliteAssembliesWithTargetPath)"を追加- マネージドアセンブリやデバッグシンボルの削除と同じパターンに従う
パフォーマンスへの影響
影響なし。公開出力から不要なサテライトアセンブリファイルが削除されるため、公開パッケージサイズがわずかに減少します。
関連Issue
その他
- 互換性への影響: なし(公開出力から冗長なファイルを削除するのみ、実行時動作に変更なし)
- テスト: SDK リポジトリで追加予定
- リスク評価: 最小限。確立されたパターンに従う1行の変更で、サテライトアセンブリは引き続きネイティブバイナリに埋め込まれて機能します