Pull Request on 2026年03月17日

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

注意点

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


目次

  1. #125667 [cDAC] Use BinaryThenLinearSearch in GetExceptionClauses
  2. #125649 [main] Source code updates from dotnet/dotnet
  3. #125627 [cDAC]: Flush contract caches
  4. #125601 [release/10.0] Source code updates from dotnet/dotnet
  5. #125593 [main] Source code updates from dotnet/dotnet
  6. #125591 Port coreclr interpreter to loongarch64
  7. #125590 Fix race in BackgroundService exception aggregation during Host shutdown
  8. #125570 Fix race condition in BackgroundServiceExceptionTests
  9. #125531 [Wasm RyuJIT] Generate element section and populate function pointer table
  10. #125528 Use ref struct key loaders
  11. #125494 Improve api-proposal skill using skill-creator analysis
  12. #125447 Add missing XML documentation for Microsoft.Extensions.FileSystemGlobbing APIs
  13. #125445 Add missing API documentation for Microsoft.Extensions.FileProvider
  14. #125422 Fix crossgen2 JitHost OOM crash: throw on allocation failure
  15. #125372 [r2r] Fix rule for skipping compilation of methods with CompExactlyDependsOn
  16. #125273 Add issue-triage Copilot skill with type-specific guides
  17. #125228 Re-enable generator tests on big endian architectures
  18. #125053 Fix getdomainname for SunOS
  19. #124701 Add RegexOptions.AnyNewLine via parser lowering
  20. #124352 Add support for pre-compiling interop type maps in crossgen2
  21. #124225 Fix non-dense TensorSpan handling in SequenceEqual, Fill*, Resize*, IndexOf*, and ConcatenateOnDimension
  22. #124200 Restore blocking mode after successful ConnectAsync on Unix
  23. #123660 [release/10.0] Deny unmasked frame receive for WebSocket Server

#125667 [cDAC] Use BinaryThenLinearSearch in GetExceptionClauses

  • 作成者: @max-charlamb
  • 作成日時: 2026年03月17日 17:53:24(UTC)
  • マージ日時: 2026年03月17日 19:57:29(UTC)
  • ラベル: area-Diagnostics-coreclr

概要

ReadyToRunJitManagerGetExceptionClausesメソッドをリファクタリングし、インラインの二分探索+線形探索の実装を共有ヘルパーBinaryThenLinearSearchに置き換えました。動作は同一(閾値10、中点計算、分岐方向、最初のマッチセマンティクスは変わらない)で、コード重複を削減します。

変更内容

  • ExecutionManagerCore.ReadyToRunJitManager.cs: GetExceptionClausesメソッドをリファクタリング。インラインの二分探索+線形探索ロジック(26行)を共有のBinaryThenLinearSearchヘルパー呼び出し(13行)に統合。cDAC(Data Contract for Debugger)の例外句検索ロジックを簡潔化しました。

パフォーマンスへの影響

影響なし(共有ヘルパーへの置き換えで動作は完全に同一)

関連Issue

なし

その他

このPRはコード品質向上を目的とした内部リファクタリングで、公開APIに変更なく、デバッガ診断機能の挙動に影響はありません。


#125649 [main] Source code updates from dotnet/dotnet

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年03月17日 13:39:47(UTC)
  • マージ日時: 2026年03月17日 18:22:17(UTC)
  • ラベル: area-codeflow

概要

dotnet/dotnetリポジトリからのコードフロー更新PRです。Maestroの自動化により、VMR(Virtual Mono Repository)からの依存関係の更新とビルド構成の統合を行っています。Microsoft.CodeAnalysis、NuGet、System.Text.Jsonなど複数の.NET関連パッケージが更新されるほか、SDL(Security Development Lifecycle)ツール関連のファイルが削除されています。

変更内容

  • 依存関係更新: Microsoft.CodeAnalysis(5.6.0-2.26165.107→5.6.0-2.26166.111)、NuGet.Frameworks/Packaging/ProjectModel(7.6.0-rc.16607→7.6.0-rc.16711)、System.Text.Json(11.0.0-preview.3→同)、System.Reflection.Metadata、System.CommandLineなど多数のパッケージを更新
  • JIT・Mono・Wasmランタイムツール更新: 複数プラットフォーム向け(linux-x64、linux-arm64、osx、win)のランタイム関連パッケージを更新
  • ビルド構成の削除: SDL関連スクリプト(configure-sdl-tool.ps1、execute-all-sdl-tools.ps1など)およびCodeQL・Renovateテンプレートの簡素化
  • バージョンファイル更新: eng/Version.Details.props/.xmlの依存関係バージョン記述を更新
  • クロスプラットフォーム構成: root filesystemビルド構成(build-rootfs.sh)の更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRはコードフロー自動化による機械的な更新です。Azure DevOpsビルド20260316.11から生成されており、arcade、aspnetcore、nuget.client、runtime、sdkリポジトリの並行更新を含みます。


#125627 [cDAC]: Flush contract caches

  • 作成者: @rcj1
  • 作成日時: 2026年03月16日 18:16:13(UTC)
  • マージ日時: 2026年03月17日 02:21:30(UTC)
  • ラベル: area-Diagnostics-coreclr

概要

cDAC(Compact Data Access Component)の contract キャッシュフラッシング機構を実装するPRです。デバッグ対象プロセスの状態変化(例:resume後)時に、キャッシュされたcontract データをクリアするための統一的なFlush()メカニズムを追加し、既存のDAC フラッシュエントリポイント(IXCLRDataProcess.Flush()ISOSDacInterface13.LockedFlush())に統合します。

変更内容

  • 抽象層(Abstractions)

    • IContract インターフェースに Flush() メソッドを追加(デフォルト実装は no-op)
    • ContractRegistry 抽象クラスに Flush() を追加
    • Target クラスに Target.Flush() を追加し、ProcessedData クリアと contract フラッシュを実行
  • 実装層(CachingContractRegistry)

    • CachingContractRegistry.Flush() で作成済みのすべての contract インスタンスに対して Flush() を呼び出し
  • Contract 実装(Contracts)

    • 複数 contract で Flush() メソッドを追加
    • キャッシュ保持 contract のみ実装:
      • ExecutionManager:code-info キャッシュをクリア
      • RuntimeTypeSystem:method table/desc/type handle キャッシュをクリア
      • EcmaMetadata:metadata provider キャッシュをクリア
      • SignatureDecoder:signature provider キャッシュをクリア
    • その他 contract:no-op 実装
  • レガシーDAC COM インターフェース

    • IXCLRDataProcess.Flush()_target.Flush() にルーティング
    • ISOSDacInterface13.LockedFlush()_target.Flush() にルーティング

パフォーマンスへの影響

影響なし。本変更はキャッシュクリア機構の追加で、パフォーマンス特性の変更はありません。

関連Issue

なし

その他

注意点:レビュアー(Copilot)から指摘されている通り、IXCLRDataProcess.Flush() は COM境界であるため、_target.Flush() 呼び出しで例外が発生した場合、COM境界を越えて伝播する可能性があります。例外処理を追加して HRESULT を返すか、Target.Flush() が例外をスローしないことを保証する必要があります。


#125601 [release/10.0] Source code updates from dotnet/dotnet

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年03月16日 03:18:34(UTC)
  • マージ日時: 2026年03月17日 10:30:21(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

このPull Requestは、dotnet/dotnetリポジトリからのコードフロー更新です。.NET 10.0.1xxリリースブランチの最新ビルド(Build 20260315.9)を取り込み、ビルドツール、アナライザー、ランタイムコンポーネントなど複数の依存関係をアップデートしています。

変更内容

  • ビルドシステム関連: NuGet.config、global.json、Version.Details.props/xml、Versions.propsを更新
  • ツールチェーン更新:
    • Microsoft.CodeAnalysis関連(5.0.0-2.26161.102 → 5.0.0-2.26165.109)
    • Microsoft.DotNet.Arcade.Sdk、ビルドタスク群(10.0.0-beta.26161.102 → 10.0.0-beta.26165.109)
    • NuGet.Frameworks/Packaging/ProjectModel/Versioning(7.0.2-rc.16202 → 7.0.2-rc.16609)
  • ランタイムコンポーネント: Microsoft.NETCore.App.Ref、System.Reflection.Metadata、System.Text.Jsonなど(バージョン10.0.6)
  • テスト関連: Base64UrlUnicodeAPIsUnitTests.csの更新(+3/-2行)
  • バグ修正: Base64DecoderHelper.csに5行追加(具体的な修正内容は提供情報に記載なし)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRは自動生成されるコードフロー更新で、以下の複数リポジトリの変更を統合しています:

  • dotnet/arcade
  • dotnet/aspnetcore
  • dotnet/efcore
  • dotnet/roslyn
  • dotnet/runtime
  • dotnet/sdk
  • dotnet/source-build-reference-packages
  • dotnet/templating

#125593 [main] Source code updates from dotnet/dotnet

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年03月15日 23:51:19(UTC)
  • マージ日時: 2026年03月17日 10:27:29(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

VMR(Virtual Mono Repository)からのコードフロー更新です。dotnet/dotnet の build 306238 (2026年3月15日) をベースに、複数のリポジトリ(aspnetcore、efcore、razor、runtime、sdk、symreader)の関連ソースコード変更と依存関係の更新が含まれています。

変更内容

  • eng/Version.Details.props: バージョン詳細の更新(39行追加、39行削除)
  • eng/Version.Details.xml: バージョン詳細XMLの更新(79行追加、79行削除)
  • global.json: グローバル設定ファイルの更新
  • src/libraries/System.Formats.Cbor/tests/CborDocument/System.Formats.Cbor.Tests.DataModel.fsproj: F# テストプロジェクトファイルの更新

依存関係更新

  • Microsoft.CodeAnalysis: 5.6.0-2.26163.109 → 5.6.0-2.26165.107
  • Microsoft.CodeAnalysis.* 関連パッケージ(CSharp、Analyzers、NetAnalyzers など)
  • Microsoft.DotNet.* ビルド・ツール関連パッケージ(Arcade.Sdk、GenAPI、Helix.Sdk など)
  • NuGet.* パッケージ(Frameworks、Packaging、ProjectModel、Versioning)
  • System.Text.Json、System.Reflection.Metadata など標準ライブラリ
  • System.CommandLine: 3.0.0-preview.3.26163.109 → 3.0.0-preview.3.26165.107

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • これは自動コードフロー更新(dotnet-maestro による)です
  • 複数リポジトリの同期更新を含みます
  • ビルド詳細: 20260315.7
  • 比較: 08e21da...5ff448a

#125591 Port coreclr interpreter to loongarch64

  • 作成者: @am11
  • 作成日時: 2026年03月15日 22:27:14(UTC)
  • マージ日時: 2026年03月17日 16:11:22(UTC)
  • ラベル: community-contribution arch-loongarch64 area-CodeGen-Interpreter-coreclr

概要

CoreCLR インタープリタを LoongArch64 アーキテクチャに移植するPRです。riscv64 ポートと同様のアプローチで、LoongArch64 プラットフォーム対応の実装を追加します。

変更内容

  • アーキテクチャサポート: LoongArch64 用のアセンブリヘルパー (asmhelpers.S)、ASM定数 (asmconstants.h)、スタブ実装 (stubs.cpp) を新規追加
  • インラインTLS: LoongArch64 専用の InlineTls.inc を実装
  • ビルド設定: clr.featuredefines.propsclrfeatures.cmake を更新してLoongArch64インタープリタ対応を有効化
  • 共通実装: callstubgenerator.cpp/h を修正し、アーキテクチャ間の差異に対応
  • 既存ポート調整: riscv64/asmhelpers.S に変更を加え、riscv64 ポートの実装を補完
  • ネイティブAOT: unixasmmacrosloongarch64.inc を整理し、PAL の macro ファイルに統合
  • テスト構成: InterpreterTester.csproj の依存関係を更新

パフォーマンスへの影響

影響なし(新規プラットフォーム対応のため、既存プラットフォームへの直接的なパフォーマンス変化はなし)

関連Issue

なし

その他

  • 本ポートは riscv64 移植 (#121276) と同じアプローチを採用しています
  • 1768 行の LoongArch64 アセンブリコードが追加される大規模な実装となっています
  • ネイティブAOT と CoreCLR インタープリタの両方で LoongArch64 対応が進められています

#125590 Fix race in BackgroundService exception aggregation during Host shutdown

  • 作成者: @danmoseley
  • 作成日時: 2026年03月15日 22:15:06(UTC)
  • マージ日時: 2026年03月17日 15:27:46(UTC)
  • ラベル: area-Extensions-Hosting

概要

BackgroundServiceStopHost 動作で複数同時に失敗する場合、一部の例外が失われるレース条件を修正します。火・忘れ(fire-and-forget)で実行されていた TryExecuteBackgroundServiceAsync の監視タスクを追跡し、StopAsync でそれらが例外を記録するまで待機してから例外リストを読む仕様に変更しました。これにより、複数の BackgroundService が同時故障する本番環境シナリオでも全ての例外が正しく集約されます。

変更内容

  • Host.cs: TryExecuteBackgroundServiceAsync 監視タスクをリストで保持し、StopAsync でシャットダウンタイムアウトを尊重しながらそれらの完了を待機。その後、_backgroundServiceExceptions を読み込み例外を集約する処理に変更
  • BackgroundServiceExceptionTests.cs: レース条件を決定的に再現するための回帰テスト追加。カスタム ExecuteTask を使用して 500ms の遅延を注入し、スレッドプール スケジューリングの競合をシミュレーション

パフォーマンスへの影響

影響なし。修正はシャットダウンパス固有のロジックであり、通常の実行時パフォーマンスには影響しません。

関連Issue

#125589

その他

検証: 遅延注入テストで修正なし + 遅延時は 10/10 失敗、修正あり + 遅延時は 0/10 成功、修正あり + 遅延なし時は 291 件全ホスティング単体テストが合格。macOS arm64 での本来の再現が困難だったため、この決定的シミュレーション手法により全プラットフォームで検証可能になりました。


#125570 Fix race condition in BackgroundServiceExceptionTests

  • 作成者: @lewing
  • 作成日時: 2026年03月15日 01:58:04(UTC)
  • マージ日時: 2026年03月17日 08:36:29(UTC)
  • ラベル: area-Extensions-Hosting

概要

BackgroundServiceExceptionTestsのフレーキーなテストを修正します。タイミング依存のTask.Delay(200ms)を、より決定的な同期メカニズムに置き換えることで、CI環境での不安定な実行を解決します。

特にBackgroundService_AsynchronousException_StopAsync_ThrowsExceptionテストが高負荷CI環境で例外の伝播を待ちきれず失敗していたため、IHostApplicationLifetime.ApplicationStoppingシグナルを活用して、ホストが実際に例外を処理した後の正確なタイミングで検証するように改善されました。

変更内容

  • BackgroundServiceExceptionTests.cs: StopAsync_ThrowsExceptionおよびStopTwiceAsync_ThrowsExceptionテストで、Task.Delay(200ms)IHostApplicationLifetime.ApplicationStoppingへの待機に置き換え
  • 10秒のタイムアウト(WaitAsync)をCI安全弁として追加
  • テストコメントの更新

パフォーマンスへの影響

影響なし。テスト信頼性の改善であり、製品コードのパフォーマンスへの影響はありません。

関連Issue

#125550

その他

このPRはMicrosoft.Extensions.Hostingライブラリのユニットテスト領域における改修で、公開APIや製品実装への変更は含まれていません。修正対象は内部テストのレーシング条件です。


#125531 [Wasm RyuJIT] Generate element section and populate function pointer table

  • 作成者: @kg
  • 作成日時: 2026年03月13日 19:28:15(UTC)
  • マージ日時: 2026年03月17日 08:09:01(UTC)
  • ラベル: arch-wasm area-CodeGen-coreclr

概要

WebAssembly RyuJIT コンパイラの関数ポインタテーブル初期化機能を実装するため、Wasm オブジェクトライターを更新しました。Element セクションを生成し、モジュール内のすべての関数に対して順序付けられた関数ポインタを作成します。

(import "env" "__image_function_pointer_base" (global (;2;) i32))
(elem (;0;) (offset global.get 2 i32.const 0 i32.add) func 0 1 2 3 ... 22)

変更内容

src/coreclr/tools/Common/Compiler/ObjectWriter/WasmObjectWriter.cs

  • インポートグローバルの名前を __r2r_start から __image_base にリネーム(データセグメント配置に使用)
  • 新しいインポートグローバル __image_function_pointer_base を追加し、関数ポインタテーブル配置のオフセット式として使用
  • Element セクションを生成し、すべての関数インデックスを順序付けて初期化するエレメントセグメントを出力
  • テーブルセクションの制限を修正し、関数ポインタテーブルが初期サイズ 0 で割り当てられない問題を解決

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

この変更は Wasm R2R コンパイルのインフラストラクチャ改善で、内部実装(ツール側)の変更です。公開APIへの影響はありません。


#125528 Use ref struct key loaders

  • 作成者: @vcsjones
  • 作成日時: 2026年03月13日 17:30:06(UTC)
  • マージ日時: 2026年03月17日 19:41:12(UTC)
  • ラベル: area-System.Security reduce-unsafe

概要

ASN.1キーローダーをref structベースの値型(Value*)に移行し、メモリ割り当てを削減しPointerMemoryManagerの使用を排除する変更です。エミットされたref structローダーにEncodeメンバーのサポートを追加し、asn:Choiceの検証をファイルスコープ型のバリデータに移動しました。暗号キー関連の多くのASN.1型がrefエミット専用に変更されます。

変更内容

  • ASN.1型の移行: AlgorithmIdentifierAsnECPrivateKeyEncryptedPrivateKeyInfoAsnRSAPublicKeyAsnRSAPrivateKeyAsnPssParamsAsnなど60以上のASN.1型をemitType="ref"に変更し、Value*ローダーに対応させました
  • Encodeサポート追加: ValueAlgorithmIdentifierAsnValueAttributeAsnValueSubjectPublicKeyInfoAsnなど複数の値型ローダーにEncodeメンバーを追加
  • Choice型の検証リファクタ: asn:Choiceの検証ロジックをファイルスコープ型のバリデータに移動し、emitType="both"で単一の検証実行を保証
  • ReadOnlySpanへの統一: キーローダー、RSA/EC/DSA/PQC型の読み込みヘルパーをReadOnlyMemory<T>ベースからReadOnlySpan<T>Value*ローダーに変更
  • ポインタピン除去: PointerMemoryManagerの使用を大幅に削除(PKCS#12は今後の対応)
  • テスト更新: 暗号化PKCS#8検査、PKCS#1デコード、算法識別子パースなどのテストをValue*デコーダーとspan基底APIに更新

パフォーマンスへの影響

  • メモリ割り当て削減: ref struct値型ローダーの使用により、ヒープ割り当てが削減されます
  • ピンの排除: PointerMemoryManagerベースのメモリピン操作を廃止し、GCの負荷軽減とセキュリティ向上
  • スタック効率: スパンベースのAPIによるインライン化の可能性向上
  • 具体的なベンチマーク数値は提供されていません

関連Issue

#125528

その他

  • 破壊的変更なし(パブリックASN.1 API互換性は保持、内部実装の最適化)
  • PKCS#12におけるPointerMemoryManager使用は今後のPRで対応予定
  • emitType="both"設定の型については、検証ロジック(DEBUG時)が静的コンストラクタ経由で単一実行される設計

#125494 Improve api-proposal skill using skill-creator analysis

  • 作成者: @eiriktsarpalis
  • 作成日時: 2026年03月12日 13:55:38(UTC)
  • マージ日時: 2026年03月17日 15:45:38(UTC)
  • ラベル: area-skills

概要

dotnet/runtime の API提案スキルのドキュメントを改善し、実際のAPI承認プロセスに合わせて再構成。スキルトリガーの説明を拡充し、LLMの一般的な失敗パターンを記載し、提案テンプレートをAPI Issue テンプレートに統一。

変更内容

  • .github/skills/api-proposal/SKILL.md: スキルトリガーの説明を詳細化し、使用例と非使用例を明確化
  • "Common Pitfalls" セクションを新規追加し、LLMが生成する提案の一般的な問題パターンを記載
  • 提案テンプレートを Background / API Proposal / Usage / Alternative Designs / Risks の構成に再構成
  • 関連 Issue とプロトタイプへのリンク方法に関するガイダンスを追加
  • ジェネリック警告の削除

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このコミットは機能追加ではなく、開発ドキュメントとAIアシスタントスキルの改善です。dotnet/runtime の API提案プロセスを自動化・改善するための GitHub Skills メタデータの更新であり、ランタイム・ライブラリコードには直接の影響はありません。


#125447 Add missing XML documentation for Microsoft.Extensions.FileSystemGlobbing APIs

  • 作成者: @Copilot
  • 作成日時: 2026年03月11日 15:01:30(UTC)
  • マージ日時: 2026年03月17日 12:48:06(UTC)
  • ラベル: area-Extensions-FileSystem

概要

Microsoft.Extensions.FileSystemGlobbing APIの欠落していたXML documentation を追加・修正するPRです。MatcherExtensionsクラスへの<summary>追加、各クラスのコンストラクタと プロパティのドキュメンテーション整備、FilePatternMatch.GetHashCode()の<returns>タグ修正、およびFileInfoWrapper.FullNameの不正な remarks参照の修正を実施しました。dotnet-api-docsへの後続ポートを前提としています。

変更内容

  • MatcherExtensions.cs: <summary> XML documentation を追加
  • FilePatternMatch.cs: GetHashCode()<returns> タグを修正
  • DirectoryInfoBase.cs: protected constructor にドキュメンテーション追加
  • FileInfoBase.cs: protected constructor にドキュメンテーション追加
  • FileSystemInfoBase.cs: protected constructor とプロパティのサマリーを"Gets..."パターンに統一
  • DirectoryInfoWrapper.cs: constructor サマリーをガイドライン準拠に修正、FileInfoWrapper.FullNameの remarks を修正(FileSystemInfo.NameFileSystemInfo.FullName
  • FileInfoWrapper.cs: constructor サマリーをガイドライン準拠に修正
  • PatternMatchingResult.cs: constructor サマリーをガイドライン準拠に修正
  • InMemoryDirectoryInfo.cs: constructor サマリーをガイドライン準拠に修正

パフォーマンスへの影響

影響なし

関連Issue

#43908

その他

  • すべての変更は公開APIに対するドキュメンテーション整備です
  • 内部実装は変更されません
  • dotnet-api-docsのドキュメンテーションガイドラインに準拠した修正です

#125445 Add missing API documentation for Microsoft.Extensions.FileProvider

  • 作成者: @Copilot
  • 作成日時: 2026年03月11日 14:25:34(UTC)
  • マージ日時: 2026年03月17日 15:15:18(UTC)
  • ラベル: area-Extensions-FileSystem

概要

Microsoft.Extensions.FileProviders名前空間のAPI文書化を改善するPRです。XML文書コメントの追加・修正により、コンストラクタの説明を標準化し、パラメータの説明を明確化しています。NullFileProviderNotFoundDirectoryContentsには明示的なパラメータなしコンストラクタが追加されました。

変更内容

  • NullFileProvider.cs: 明示的なパラメータなしコンストラクタを追加し、XML文書コメントを整備
  • NotFoundDirectoryContents.cs: 明示的なパラメータなしコンストラクタを追加し、XML文書コメントを整備
  • PhysicalFileProvider.cs他: コンストラクタのXML文書コメント表現を「Initializes a new instance of the … class」に統一
  • PollingFileChangeToken.cs: コールバック・状態パラメータの説明を改善
  • PhysicalDirectoryContents.cs: コンストラクタ・パラメータのXML文書を明確化・統一
  • CompositeDirectoryContents.cs: コンストラクタのXML文書の文法を調整・統一
  • その他ファイル: 各コンストラクタのXML文書コメント表現を統一

パフォーマンスへの影響

影響なし

関連Issue

#43900

その他

  • すべての変更は内部実装ではなく公開API(パブリックコンストラクタ)に対する文書化です
  • 破壊的変更なし:既存のコンストラクタ動作に変更はなく、明示的コンストラクタの追加のみ
  • この文書化は後述dotnet-api-docsへのポートを前提としています

#125422 Fix crossgen2 JitHost OOM crash: throw on allocation failure

  • 作成者: @jtschuster
  • 作成日時: 2026年03月11日 00:15:18(UTC)
  • マージ日時: 2026年03月17日 03:06:04(UTC)
  • ラベル: area-CodeGen-coreclr

概要

crossgen2のJitHostメモリ割り当て失敗時の処理を改善。従来はmallocの失敗時にNULLを返していたため、JIT's ArenaAllocatorがNULLチェックなしに逆参照してアクセス違反が発生していました。本修正により、malloc/calloc失敗時にstd::bad_allocを発生させ、JitCompileMethod境界で捕捉してCORJIT_OUTOFMEMを返すことで、メモリ不足時の例外処理を統一します。

変更内容

  • jithost.cpp: malloc/calloc呼び出しでNULL返却時にstd::bad_allocを発生させる実装に変更
  • jitwrapper.cpp: JitCompileMethodでstd::bad_alloc例外を捕捉し、CORJIT_OUTOFMEMステータスコードを返すエラーハンドリング追加
  • CorInfoImpl.cs: 対応する<new>ヘッダーの追加(3ファイルで4行追加)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 互換性: 内部実装変更。公開APIの変更なし
  • 問題指摘: Copilotコメントで、std::bad_alloc捕捉時にppExceptionパラメータが未設定のままCORJIT_OUTOFMEMを返す可能性が指摘されています。呼び出し側の状態が不定になるリスクがある点に注意が必要です
  • 影響範囲: crossgen2(AOT コンパイラ)のOOM処理。ARM/x86でのクロスコンパイル時にこの問題が発生していました

#125372 [r2r] Fix rule for skipping compilation of methods with CompExactlyDependsOn

  • 作成者: @BrzVlad
  • 作成日時: 2026年03月10日 11:37:31(UTC)
  • マージ日時: 2026年03月17日 07:02:24(UTC)
  • ラベル: area-crossgen2-coreclr

概要

ReadyToRun (R2R) コンパイラが CompExactlyDependsOn 属性を持つメソッドをスキップする判定ロジックのバグを修正。対象アーキテクチャに適用されない命令セット(InstructionSet.ILLEGAL)を参照する場合、メソッドが不正にR2R コンパイルから除外されていました。修正により、ILLEGAL命令セットは既知の非サポート状態として扱われ、メソッドがR2Rでコンパイルされるようになります。JSON シリアライゼーション/デシリアライゼーションのパフォーマンスが約2倍向上。

変更内容

  • CorInfoImpl.ReadyToRun.cs: CompExactlyDependsOn 属性の検証ロジックを修正。doBypass デフォルト変数と早期終了パスを削除し、ILLEGAL命令セットを既知のコンパイル時サポート状態として処理
  • CompHasFallbackAttribute.cs: 新規作成(関連属性の定義)
  • System.Private.CoreLib.Shared.projitems, SearchValues.cs, Ascii.Utility.cs: ファイル参照の追加

パフォーマンスへの影響

改善あり。iOS-arm64 での JSON シリアライゼーション/デシリアライゼーションが約 2倍高速化(インタプリテーション回避によるオーバーヘッド削減)。

関連Issue

なし

その他

  • 破壊的変更: なし(内部実装の修正)
  • 対象: ReadyToRun コンパイラの内部ロジック(公開API変更なし)
  • 修正対象: SIMD命令セット属性(Ssse3など)の扱い。Arm64など別アーキテクチャでは不要な Intel 特有命令セットがILLEGALとして返される場合の処理改善

#125273 Add issue-triage Copilot skill with type-specific guides

  • 作成者: @eiriktsarpalis
  • 作成日時: 2026年03月06日 16:39:00(UTC)
  • マージ日時: 2026年03月17日 17:36:56(UTC)
  • ラベル: area-skills

概要

dotnet/runtime リポジトリ向けの GitHub Issue トリアージ用 Copilot skill を追加します。このスキルは Issue を調査し、KEEP/CLOSE/NEEDS INFO の推奨事項を構造化されたマークダウンレポートで出力します。8段階のワークフロー(安全性スキャン、Issue 分類、重複検出、タイプ別調査など)と、バグ・API提案・パフォーマンス回帰・質問など Issue タイプ別の詳細ガイドで構成されています。

変更内容

  • .github/skills/issue-triage/SKILL.md: メインの orchestrator ファイル。8段階のトリアージワークフロー、安全性チェック、Issue 分類、重複検出、出力テンプレート、アンチパターンとティップスを定義
  • タイプ別トリアージガイド:
    • bug-triage.md: 再現手順検証、リグレッション確認、最小化アルゴリズム、根本原因分析
    • api-proposal-triage.md: API の長寿命性閾値、メリット評価、命名規則チェック、複雑性推定
    • perf-regression-triage.md: BenchmarkDotNet 検証、git bisect ワークフロー、ResultsComparer 統合
    • enhancement-triage.md: 機能強化のサブカテゴリ分類、実現可能性分析
    • question-triage.md: 回答作成、信頼度検証
  • 支援リファレンス:
    • area-label-heuristics.md: 名前空間から area ラベルへのマッピング
    • supplementary-labels.md: 補足ラベル(tenet、runtime、qualifier など)のガイド
    • triage-patterns.md: メンテナー応答テンプレート例
    • output-format.md: 出力形式仕様
  • evals/evals.json: スキル評価用データ

パフォーマンスへの影響

影響なし(開発支援ツールの追加であり、ランタイムやコンパイラ動作に影響なし)

関連Issue

なし

その他

  • このPRはコード変更ではなく、GitHub Actions 内で Copilot AI が使用する Skill(プロンプトとガイドライン)の追加です
  • 出力はマークダウン形式で、コピペ可能な GitHub コメントとして機能するよう設計されています(triple backticks でコード化)
  • 提案された応答は fenced code blocks で表示され、ターミナルの改行やマークダウン렌더링の破損を防ぎます

#125228 Re-enable generator tests on big endian architectures

  • 作成者: @svick
  • 作成日時: 2026年03月05日 16:28:10(UTC)
  • マージ日時: 2026年03月17日 14:13:34(UTC)
  • ラベル: area-Extensions-Configuration

概要

Roslynの問題修正に伴い、ビッグエンディアンアーキテクチャ上で無効化されていたソースジェネレータテストを再度有効化します。先行するPR #105485の変更を取り消します。

変更内容

  • GeneratorTests.cs: ビッグエンディアン環境でのテストをスキップしていた[ActiveIssue(..., nameof(IsBigEndian))]属性と関連するコメント(計4行)を削除

パフォーマンスへの影響

影響なし

関連Issue

その他

なし


#125053 Fix getdomainname for SunOS

  • 作成者: @gwr
  • 作成日時: 2026年03月02日 14:03:27(UTC)
  • マージ日時: 2026年03月17日 16:11:42(UTC)
  • ラベル: area-System.Net os-SunOS community-contribution

概要

SunOS環境でgetdomainname()関数を正常に動作させるための修正です。System.Net.NetworkInformation.Functional.Testsが実行時にアボートするのを防ぐため、SunOS固有のライブラリリンク設定と関数宣言を追加しています。

変更内容

  • src/native/libs/configure.cmake: SunOS環境でgetdomainnameを検出する際に、socketおよびnslライブラリに対してリンクしながらcheck_function_existsを実行するよう修正。CMAKE_REQUIRED_LIBRARIESを適切に保存・復元。
  • src/native/libs/System.Native/pal_networking.c: SunOS固有のgetdomainname関数の前方宣言(プロトタイプ)を追加。
  • src/native/libs/System.Native/extra_libs.cmake: System.NativeがSunOS上でsocketおよびnslライブラリに対してリンクするよう設定。

パフォーマンスへの影響

影響なし

関連Issue

#124728

その他

この修正はSunOS環境固有のものであり、System.Native(ランタイムの基盤となるネイティブライブラリ)の内部実装に該当します。公開APIへの影響はありません。


#124701 Add RegexOptions.AnyNewLine via parser lowering

  • 作成者: @danmoseley
  • 作成日時: 2026年02月21日 08:27:44(UTC)
  • マージ日時: 2026年03月17日 03:44:48(UTC)
  • ラベル: area-System.Text.RegularExpressions

概要

RegexOptions.AnyNewLine フラグ (値: 0x0800) を新規追加し、^$\Z. が Unicode のすべての行区切り文字 (\r\r\n\n\u0085\u2028\u2029) を認識するようにします。これにより、Windows 形式の \r\n や Unicode 改行に対応する際の煩雑な回避策(\r?\n(\r\n|\n) など)が不要になります。

// 修正前: match.Value == "foo\r" (末尾の\rが含まれる)
var match = Regex.Match("foo\r\nbar", ".*$", RegexOptions.Multiline);

// 修正後: match.Value == "foo" (正しく動作)
var match = Regex.Match("foo\r\nbar", ".*$", RegexOptions.Multiline | RegexOptions.AnyNewLine);

変更内容

  • RegexOptions.cs: AnyNewLine = 0x0800 を追加
  • RegexParser.cs: AnyNewLineEndZNode()AnyNewLineEolNode()AnyNewLineBolNode() メソッドを実装し、^$\Z. の解析時にルックアラウンドベースの RegexNode ツリーに変換
  • RegexCharClass.cs: NotNewLineOrCarriageReturnClass 定数を追加(. の処理用)
  • Regex.cs / RegexCompilationInfo.cs: 検証ロジックを更新(NonBacktrackingECMAScript との組み合わせで ArgumentOutOfRangeException をスロー)
  • RegexGenerator.Parser.cs: ソースジェネレータで新フラグをサポート
  • テストファイル: ~800 行の新規テストケースを追加(アンカー、改行の組み合わせ、RightToLeft モード、インライン オプション、エッジケースをカバー)

パフォーマンスへの影響

影響なし。ローイングは AnyNewLine フラグが設定されている場合のみ実行されるため、既存のパターンは同じコードパスを使用します。パーサーでのフラグチェック((_options & RegexOptions.AnyNewLine) != 0)は無視できる程度の性能影響です。

関連Issue

#25598

その他

  • 互換性: NonBacktracking および ECMAScript モード と AnyNewLine の組み合わせは使用不可(ルックアラウンド構文を使用するため)
  • Singleline との優先順位: .Singleline | AnyNewLine を指定した場合、改行を含むすべてにマッチします(Singleline の仕様に準拠)
  • \A\z への影響: 絶対アンカーは変更されません
  • スコープ外: \R メタ文字(任意の改行シーケンスをマッチング・消費)は実装されていません。将来の独立した機能として実装可能です

#124352 Add support for pre-compiling interop type maps in crossgen2

  • 作成者: @jkoritzinsky
  • 作成日時: 2026年02月12日 19:49:56(UTC)
  • マージ日時: 2026年03月17日 18:05:43(UTC)
  • ラベル: area-crossgen2-coreclr linkable-framework

概要

crossgen2でInterop型マップの事前コンパイル機能を追加します。従来はTypeMap属性を実行時に処理していましたが、本変更ではNativeAOTと同様にネイティブ形式のハッシュテーブルにエンコードします。3つの新しいReadyToRunセクション(ExternalTypeMaps、ProxyTypeMaps、TypeMapAssemblyTargets)を導入し、型マップをR2Rイメージに事前計算して格納することで、実行時の属性処理オーバーヘッドを削減します。

変更内容

  • ランタイム側(VM):3つの新しいR2Rセクションからの型マップ検索を実装。readytoruninfo.cppでハッシュテーブル検索ロジック、TypeMapLazyDictionaryでQCall統合
  • コンパイラ側(crossgen2)
    • ReadyToRunExternalTypeMapNodeReadyToRunProxyTypeMapNodeTypeMapAssemblyTargetsNodeで型マップハッシュテーブルをネイティブ形式で生成
    • ImportReferenceProviderで型/モジュール参照をR2R import fixupにエンコード
    • TypeMapMetadataを拡張し、NativeAOT向け「Traverse」モード、R2R向け「Record」モードをサポート
  • 共有インフラINativeFormatTypeReferenceProviderインターフェースで型参照エンコーディングを抽象化
  • バージョン更新:ReadyToRun minor version を18.1に引き上げ
  • NativeAOT対応:既存のNativeAOTコードをReadyToRunSectionType対応に更新

パフォーマンスへの影響

事前コンパイルされた型マップにより、実行時の属性処理が削減され、型解決の高速化が見込まれます。ただし具体的なベンチマーク数値は提供されていません。

関連Issue

#123678

Depends on #124247#124202

その他

  • 破壊的変更なし:公開APIの変更はなく、内部実装が対象
  • Copilotレビュー指摘:一部でGetSectionがWritableなDataSectionに強制され、セキュリティ/メモリレイアウトへの影響が懸念されている(詳細はレビューコメント参照)
  • NativeAOTでは既に同様機構を利用していることから、ReadyToRun統一化により保守性向上が期待される

#124225 Fix non-dense TensorSpan handling in SequenceEqual, Fill*, Resize*, IndexOf*, and ConcatenateOnDimension

  • 作成者: @Copilot
  • 作成日時: 2026年02月10日 15:16:10(UTC)
  • マージ日時: 2026年03月17日 16:05:03(UTC)
  • ラベル: area-System.Numerics.Tensors

概要

非密集(strided)テンソルスパンにおける複数のメソッドの不正な動作を修正するPRです。これらのメソッドが基となるストレージ全体を処理していたのに対し、論理的なテンソル要素のみを操作するように改善しました。主な対象メソッドは SequenceEqualFill*Resize*IndexOf*ConcatenateOnDimension です。

問題例:

int[] d1 = [10, 20, 99, 99, 30, 40, 99, 99];
int[] d2 = [10, 20, 77, 77, 30, 40, 77, 77];
var ts1 = new ReadOnlyTensorSpan<int>(d1, [2, 2], [4, 1]);
var ts2 = new ReadOnlyTensorSpan<int>(d2, [2, 2], [4, 1]);
// 論理要素は同じ [10, 20, 30, 40] だが、SequenceEqual が false を返していた
bool result = ts1.SequenceEqual(ts2); // 修正後: true

変更内容

  • SequenceEqual:非密集スパン向けに論理要素のみを比較する処理を追加、密集高速パスを維持
  • Fill系メソッドFillGaussianNormalDistributionFillUniformDistribution):非密集レイアウトに対応
  • Resize系メソッドResizeResizeTo):非密集スパンの正規化処理を修正
  • IndexOf系メソッドIndexOfMaxIndexOfMinIndexOfMaxMagnitudeIndexOfMinMagnitude):非密集スパン対応、ArrayPool<T>.Shared を使用してアロケーション削減
  • ConcatenateOnDimension:非密集宛先スパンのレイアウト処理を修正
  • 密集高速パス_shape.LinearLength から FlattenedLength に統一
  • テスト追加TensorConcatenateNonDenseDestinationTests など非密集宛先連結のリグレッションカバレッジ追加

パフォーマンスへの影響

影響なし(密集パスは維持、非密集パスでのメモリアロケーション削減)

関連Issue

#124112

その他

  • テスト結果:System.Numerics.Tensors.Tests 5401テスト中、エラー0、失敗0
  • 内部実装の変更で、公開API署名に変更なし
  • コード一行制御フロー本体にブレースを追加する静的品質改善も含む
  • リグレッションテストが以前はコメントアウトされていたため、本修正で有効化

#124200 Restore blocking mode after successful ConnectAsync on Unix

  • 作成者: @liveans
  • 作成日時: 2026年02月09日 21:26:54(UTC)
  • マージ日時: 2026年03月17日 20:26:31(UTC)
  • ラベル: area-System.Net.Sockets

概要

Unix環境において、ConnectAsyncの成功後にソケットをブロッキングモードに復元します。ユーザーが明示的にSocket.Blocking = falseを設定していない場合、その後の同期操作(Send/Receive)がepoll/kqueueでのエミュレーションではなくネイティブなブロッキングシステムコールを使用することで、パフォーマンスを最適化します。後続の非同期I/O操作が実行される際には、既存のSetHandleNonBlocking()メカニズムを通じてソケットは非ブロッキングモードに戻されます。

await socket.ConnectAsync(endpoint);
// 以降の同期操作がネイティブブロッキングシステムコールを使用(より効率的)
socket.Receive(buffer);
socket.Send(data);

変更内容

  • SafeSocketHandle.Unix.cs: ブロッキングモード復元機能を実装
  • SocketAsyncContext.Unix.cs: ConnectAsync完了後にソケットをブロッキングモードに復元するロジックを追加。非同期操作実行時には非ブロッキングモードに切り替わる仕組みを統合
  • Connect.Unix.cs: Unix環境でのConnectAsync後のブロッキングモード復元動作を検証するテストケース追加(237行)

パフォーマンスへの影響

改善あり。ConnectAsync後の同期操作(Send/Receive)において、ネイティブなブロッキングシステムコールを使用するようになるため、マネージドコード層でepoll/kqueueを使用したエミュレーションを行うオーバーヘッドが削減されます。

関連Issue

#124200

その他

Copilotレビューでは、ConnectOperation.InvokeCallbackにおいて接続失敗時(ErrorCode != SocketError.Success)のコールバック呼び出しとブロッキングモード復元の実装に関する指摘がありますが、提供されたファイル内容のみからは最終的な実装の詳細は確認できません。


#123660 [release/10.0] Deny unmasked frame receive for WebSocket Server

  • 作成者: @github-actions[bot]
  • 作成日時: 2026年01月27日 09:58:48(UTC)
  • マージ日時: 2026年03月17日 20:23:43(UTC)
  • ラベル: Servicing-approved area-System.Net

概要

WebSocket サーバーが RFC 6455 に準拠するように、マスクなしフレームの受信を拒否する機能を追加します。RFC 6455 では、クライアント→サーバー通信では必ずペイロードをマスクする必要がありますが、この要件を厳密に実装することで、非準拠のクライアントからの不正なフレーム受信を防止します。

変更内容

  • System.Net.WebSockets/src/Resources/Strings.resx: エラーメッセージリソースを追加(マスクなしフレーム受信時のエラー通知用)
  • System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs: WebSocket サーバーがクライアントからのマスクなしフレームを検出・拒否するロジックを実装
  • System.Net.WebSockets/tests/WebSocketTests.cs: マスクなしフレーム受信時の拒否動作を検証するテストケースを追加

パフォーマンスへの影響

影響なし

関連Issue

#123485

その他

  • 本PR は release/10.0 ブランチへのバックポート
  • RFC 6455 非準拠のクライアント(マスクなしフレーム送信)のみが影響を受ける
  • 準拠クライアントの動作変化なし
  • テスト方針:手動検証 + 自動テスト

目次