Pull Request on 2026年01月10日

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

注意点

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


目次

  1. #123070 [release/9.0] Bump internal MacOS build image to MacOS15
  2. #123067 Restructure copilot-instructions.md to emphasize mandatory baseline build
  3. #123061 [main] Update dependencies from dotnet/runtime-assets
  4. #123054 Fix edge-case Uri debug assert failure
  5. #122986 Defer DOTNET_DbgEnableMiniDump error message until dump creation
  6. #122779 Intrinsify Enum.Equals to avoid boxing
  7. #122739 [release/10.0] Update dependencies from dotnet/icu
  8. #122422 [release/9.0] Move default build images to macos 15 (and xcode 16) (#120589)

#123070 [release/9.0] Bump internal MacOS build image to MacOS15

  • 作成者: @steveisok
  • 作成日時: 2026年01月10日 18:55:55(UTC)
  • マージ日時: 2026年01月10日 21:08:17(UTC)
  • ラベル: Servicing-approved area-Infrastructure

概要

macOS内部ビルドイメージをmacOS-13からmacOS-15に更新するインフラストラクチャ変更です。Azure Pipelinesの設定を更新し、macOS、Mac Catalyst、iOS、tvOS、およびそれらのシミュレータプラットフォーム向けの内部ビルドがより新しいmacOSバージョンで実行されるようになります。

変更内容

  • eng/pipelines/common/xplat-setup.yml
    • OSX Internal PoolのvmImageを'macOS-13'から'macOS-15'に更新(+1/-1)

パフォーマンスへの影響

影響なし。本変更はビルドインフラストラクチャのOSバージョンアップグレードであり、コンパイラやランタイムの動作変更ではありません。ただし、新しいmacOSバージョンでのビルド環境の動作に依存する可能性があります。

関連Issue

なし

その他

  • 本変更はrelease/9.0ブランチへの更新です
  • Azure Pipelinesの内部ビルドのみが対象で、公開ビルド設定には影響しません
  • macOS-15への更新により、より新しいXcodeやビルドツールチェーンが利用可能になる可能性があります

#123067 Restructure copilot-instructions.md to emphasize mandatory baseline build

  • 作成者: @Copilot
  • 作成日時: 2026年01月10日 14:58:00(UTC)
  • マージ日時: 2026年01月10日 22:15:12(UTC)
  • ラベル: 指定なし

概要

dotnet/runtimeプロジェクトのcopilot-instructions.mdを再構成し、AIコーディングエージェントが基本ビルド(baseline build)をスキップするのを防止しました。基本ビルドを最初のセクションに移動し、⚠️MANDATORYの強調表示と明示的な警告を追加。ドキュメントを約325行から約185行に削減(43%削減)し、スキャン性を向上させました。

変更内容

  • .github/copilot-instructions.md (+97/-237)
    • 基本ビルド手順を最初のセクションに移動し「⚠️MANDATORY」見出しを追加
    • スキップ时の結果(testhost/shared framework エラー)を明示的に記載
    • 冗長な箇条書きリストをスキャン可能なテーブル形式に変換(コンポーネントID、ビルドコマンド)
    • 「基本ビルド成功後のみ処理を進める」ゲート条件を追加
    • 目次と詳細なイテレーティブ戦略セクションを削除
    • トラブルシューティングと参照セクションをコンパクトなテーブル形式に統合
    • WASM/WASI検出ロジック、ブランチチェックアウト/切り替え指示、成功条件、ライブラリテストプロジェクト構造を復元
    • Tools、Build Tasks、Runtime Testsコンポーネントとビルドコマンドを新規追加

パフォーマンスへの影響

影響なし(ドキュメント整理のみ)

関連Issue

なし

その他

  • ドキュメント専用の変更のため、リスク低
  • .NET 9以降ではNuGetパッケージのcsproj編集とバージョン更新が不要に変更
  • Copilotコーディングエージェント向けの内部ツール指示書の改善のため、顧客への直接的な影響なし
  • マークダウンガイドラインに従い、末尾の空白文字がないことを確認済み

#123061 [main] Update dependencies from dotnet/runtime-assets

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年01月10日 02:01:17(UTC)
  • マージ日時: 2026年01月10日 22:38:35(UTC)
  • ラベル: area-codeflow

概要

dotnet/runtime-assets リポジトリから依存関係を更新するPull Requestです。テスト データおよび関連アセットの16個の NuGet パッケージを、バージョン 11.0.0-beta.25626.1 から 11.0.0-beta.26059.1 に更新しています。この更新は 2026年1月9日に生成されたビルド 20260109.1 に基づいています。

変更内容

  • eng/Version.Details.props: バージョン情報の更新(+16/-16行)
  • eng/Version.Details.xml: 依存関係メタデータの更新(+32/-32行)

更新されたパッケージ(11.0.0-beta.25626.1 → 11.0.0-beta.26059.1):

  • Microsoft.DotNet.CilStrip.Sources
  • Microsoft.DotnetFuzzing.TestData
  • Microsoft.NET.HostModel.TestData
  • System.ComponentModel.TypeConverter.TestData
  • System.Data.Common.TestData
  • System.Drawing.Common.TestData
  • System.Formats.Tar.TestData
  • System.IO.Compression.TestData
  • System.IO.Packaging.TestData
  • System.Net.TestData
  • System.Private.Runtime.UnicodeData
  • System.Runtime.Numerics.TestData
  • System.Runtime.TimeZoneData
  • System.Security.Cryptography.X509Certificates.TestData
  • System.Text.RegularExpressions.TestData
  • System.Windows.Extensions.TestData

パフォーマンスへの影響

影響なし。このPRはテストデータおよびアセットの依存関係更新であり、ランタイムパフォーマンスに直接的な影響はありません。

関連Issue

なし

その他

このPRは Maestro 自動化ツールによって生成されたボット主導の依存関係更新です。Subscription ID:0c5a34f5-504e-413b-9376-08d8d8ff2d75 の下で管理されています。


#123054 Fix edge-case Uri debug assert failure

  • 作成者: @MihaZupan
  • 作成日時: 2026年01月09日 23:14:20(UTC)
  • マージ日時: 2026年01月10日 02:22:50(UTC)
  • ラベル: area-System.Net

概要

Uri パス正規化処理において、Compress メソッドが先頭スラッシュのないパス全体を削除した場合に発生していたデバッグアサーション失敗を修正しました。ValueStringBuilderthis[] アクセッサで範囲外読み込みが発生していましたが、実際の動作は安全です。修正内容は dest.Length > start の境界チェック追加です。

変更内容

  • src/libraries/System.Private.Uri/src/System/Uri.cs

    • dest[start] にアクセスする前に dest.Length > start の境界チェックを追加
    • 保護ブロック内のコード記述スタイルの統一のためにブレースを追加
  • src/libraries/System.Private.Uri/tests/FunctionalTests/UriRelativeResolutionTest.cs

    • FTP URI でパス全体が圧縮により削除されるエッジケースの再現テストケースを追加

パフォーマンスへの影響

影響なし(デバッグアサーション失敗の修正のみで、ランタイムパフォーマンスに変化なし)

関連Issue

#123054

その他

このバグはデバッグビルドのみで発生していました。本修正により、先頭スラッシュが欠落しているパスが Compress 処理で完全に削除される特殊なケースでも安全に動作するようになります。


#122986 Defer DOTNET_DbgEnableMiniDump error message until dump creation

  • 作成者: @Copilot
  • 作成日時: 2026年01月07日 19:43:26(UTC)
  • マージ日時: 2026年01月10日 06:26:10(UTC)
  • ラベル: area-Diagnostics-coreclr

概要

DOTNET_DbgEnableMiniDump環境変数が設定されている場合、createdumpバイナリが存在しないことを示すエラーメッセージがランタイム初期化時に出力されていました。この変更により、エラーメッセージの出力をダンプ作成時点まで遅延させることで、crossgenのようなダンプ生成が不要なシナリオでの不要な警告を排除します。

変更内容

  • src/coreclr/nativeaot/Runtime/unix/PalCreateDump.cpp
    • PalCreateDumpInitialize()からstat()によるファイル存在確認を削除(初期化時の不要なファイルシステム操作を回避)
    • CreateCrashDump()内でexecv()ENOENTエラーを返した時にcreatedumpバイナリの欠落を検出
    • エラーメッセージをBuildCreateDumpCommandLine()内に移動し、実際にダンプ作成を試行する時点でのみ出力
    • メモリリーク対策としてfree(program)を追加

パフォーマンスへの影響

改善あり

  • ランタイム初期化時の不要なファイルシステム操作(stat()呼び出し)を排除
  • 初期化フェーズでのI/O待機時間を削減
  • ダンプ作成が実際に行われる場合のみエラー検出処理が実行される(遅延検出)

関連Issue

  • #122982:「Hard to use DOTNET_DbgEnableMiniDump when crossgen is involved somewhere in the build」

その他

  • 変更はNativeAOTランタイムの内部実装(unix/PAL層)に限定
  • 破壊的変更なし(ダンプ作成が存在する場合の動作は変わらず)
  • リスク評価:低(エラー検出の遅延化のみで、成功パスと実際のダンプ作成ロジックは変更なし)
  • 互換性:crossgenツール使用時にもDOTNET_DbgEnableMiniDump設定が可能になり、開発ワークフローが改善

#122779 Intrinsify Enum.Equals to avoid boxing

  • 作成者: @EgorBo
  • 作成日時: 2025年12月29日 23:51:49(UTC)
  • マージ日時: 2026年01月10日 21:56:01(UTC)
  • ラベル: area-CodeGen-coreclr

概要

Enum.EqualsメソッドをJIT intrinsicとして実装し、enum比較時のボックス化を排除します。ジェネリック型パラメータでのenum比較が、ボックス化なしで直接基礎型の値を比較するように最適化されます。アセンブリコードサイズが70バイトから10バイトへ削減され、パフォーマンスが大幅に向上します。

bool Test<T>(T a, T b) => a.Equals(b);
// Test<MethodImplOptions>呼び出し時、ボックス化せず直接比較に最適化

変更内容

  • src/libraries/System.Private.CoreLib/src/System/Enum.cs: Enum.Equalsメソッドに[Intrinsic]属性を追加
  • src/coreclr/jit/namedintrinsiclist.h: NI_System_Enum_Equalsを命名intrinsic一覧に追加
  • src/coreclr/jit/importercalls.cpp: intrinsic最適化ロジック実装(型チェック、アンボックス、比較生成)
  • src/coreclr/jit/gentree.cpp: enum比較最適化用の補助実装追加
  • src/coreclr/jit/compiler.h: impFoldEnumEquals関数宣言
  • src/tests/JIT/Intrinsics/EnumIntrinsics.cs: 全enum型(sbyte~ulong)、ジェネリック、フラグ、ボックス化、null処理をカバーするテストスイート

パフォーマンスへの影響

大幅な改善

  • アセンブリコード削減: 70バイト → 10バイト(85.7%削減)
  • ボックス化ヒープ割り当て排除
  • ジェネリック型パラメータ経由のenum比較で、仮想呼び出しが単純な整数比較に最適化
  • メモリ効率とスループット双方で改善

関連Issue

#122684

その他

  • 本PR実装の代替案としてEnum.Equalsのインライン化とInternalGetCorElementTypeのintrinsic化も検討されたが、安定性の観点から採用されず
  • 全基礎型(sbyte、byte、short、ushort、int、uint、long、ulong)でのenum比較に対応

#122739 [release/10.0] Update dependencies from dotnet/icu

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2025年12月26日 02:02:14(UTC)
  • マージ日時: 2026年01月10日 00:21:00(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

dotnet/runtimeのrelease/10.0ブランチにおいて、dotnet/icuリポジトリからの依存関係を更新するPRです。Microsoft.NETCore.Runtime.ICU.Transportパッケージを10.0.0-rtm.25612.2から10.0.0-rtm.25625.1へ更新しており、2025年12月25日のビルド(Build ID: 20251225.1)に基づいています。

変更内容

  • eng/Version.Details.props: バージョン情報の更新(+1行/-1行)
  • eng/Version.Details.xml: Microsoft.NETCore.Runtime.ICU.Transportのバージョン参照更新(+2行/-2行)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 本PRは自動化された依存関係更新(dotnet-maestroによる自動生成)です
  • ICU(International Components for Unicode)ライブラリの更新により、国際化機能の改善や修正が含まれる可能性があります
  • レビュワーはlewingです

#122422 [release/9.0] Move default build images to macos 15 (and xcode 16) (#120589)

  • 作成者: @agocke
  • 作成日時: 2025年12月10日 23:53:47(UTC)
  • マージ日時: 2026年01月10日 12:13:58(UTC)
  • ラベル: Servicing-approved area-Infrastructure

概要

macOS のデフォルトビルド環境を macOS 13 から macOS 15(Xcode 16 を含む)にアップグレードするもの。パブリックビルドプールのインフラストラクチャを更新し、新しい環境で失敗する Swift 相互運用性ストレステストを除外します。

変更内容

ファイル 変更内容
eng/pipelines/common/xplat-setup.yml OSX パブリックビルドプールの vmImage を 'macos-13' から 'macos-15' に更新。ビルドプラットフォームの最新バージョンを維持する方針についてのコメントを追加
src/tests/issues.targets mono minijit x64 設定における SwiftRetAbiStress と SwiftCallbackAbiStress テストを除外
src/coreclr/vm/amd64/jithelpers_fastwritebarriers.S ファイルフォーマット関連の変更(172 行)

パフォーマンスへの影響

影響なし

ビルド環境のアップグレード(macOS 13 → 15)に関連するパフォーマンス測定値は提供されていません。インフラストラクチャの更新のため、実行時パフォーマンスへの直接的な影響はありません。

関連Issue

#120589(元のコミット)

その他

注記: Copilot レビューにより、OSX Internal Pool が macOS 13 のままである一方で、OSX Public Build Pool のみが macOS 15 に更新されていることが指摘されています。コメントでは「最新バージョンを常に使用すべき」とされていますが、内部プール用の方針説明またはトラッキング Issue の記載が不足している可能性があります。