Pull Request on 2025年12月31日

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

注意点

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


目次

  1. #122780 Consolidate classlibnative directory into vm
  2. #122581 [main] Source code updates from dotnet/dotnet
  3. #122480 Support ICU v78 changes including IDN and Japanese Meiji era start date
  4. #118123 [System.DirectoryServices] Fixed possible NRE in SAMStoreCtx.cs

#122780 Consolidate classlibnative directory into vm

  • 作成者: @Copilot
  • 作成日時: 2025年12月30日 00:39:51(UTC)
  • マージ日時: 2025年12月31日 03:25:22(UTC)
  • ラベル: 指定なし

概要

src/coreclr/classlibnativeディレクトリをすべてsrc/coreclr/vmに統合するリファクタリング。classlibnativeに残されていたコードが少なかったため、ディレクトリ構造を簡潔にして保守性を向上させる変更。同時に不要な死コードも削除。

変更内容

  • ディレクトリ統合: classlibnative配下のすべてのファイルをvm配下に移動

    • objectnative.cpp/.hcomutilnative.cpp/.hに統合
    • system.cpp/.hからSystemNative::IsServerGCGCInterface::IsServerGCに移動
    • variant.cpp/.hの処理をolevariant.cpp/.hに統合
  • 死コード削除:

    • SystemNative::CaptureStackTraceDataを削除
    • 関連する不要なコードを整理
  • ビルド設定更新:

    • CMakeLists.txtを整理し、classlibnativeディレクトリの参照を削除
    • vmのCMakeLists.txtに統合されたファイルの参照を追加
  • その他変更:

    • ecalllist.h、corelib.cpp、qcallentrypoints.cpp等で参照パスを更新

パフォーマンスへの影響

影響なし。本変更はコード再構成であり、機能やパフォーマンス特性に変化なし。

関連Issue

なし

その他

このPRはFCalls/QCallsの再構成改善の第一段階。将来的にはNAOT(Native AOT)と非NAOT間でコードを共有できるようにすることが目標とのこと。複数のコミットに分けて段階的に実施されており、GC関連コードの更なる抽出(gchelpersnative.cpp/.hへの移行)は続行予定。


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

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2025年12月16日 02:07:35(UTC)
  • マージ日時: 2025年12月31日 20:22:33(UTC)
  • ラベル: area-codeflow

概要

dotnet/dotnetリポジトリからのコードフロー更新PRです。CodeAnalysis、Arcade SDK、NuGet関連パッケージなど複数の依存関係を最新版に更新しています。ビルド日時は2025年12月20日で、主にバージョン管理ファイルと設定ファイルの更新が含まれています。

変更内容

  • eng/Version.Details.props: バージョン情報の更新(+47/-47行)
  • eng/Version.Details.xml: 詳細なバージョン定義の更新(+95/-95行)
  • eng/common/cross/build-rootfs.sh: ビルドスクリプトの軽微な更新(+2/-2行)
  • global.json: グローバルビルド設定の更新(+4/-4行)

主要な依存関係の更新:

  • Microsoft.CodeAnalysis系: 5.3.0-1.25613.101 → 5.3.0-1.25619.109
  • Microsoft.DotNet.Arcade.Sdk: 11.0.0-beta.25613.101 → 11.0.0-beta.25619.109
  • NuGet関連パッケージ: 7.0.0-preview.1.11401 → 7.3.0-preview.1.12009
  • System.Reflection.Metadata、System.Text.Json等のランタイムコンポーネント更新
  • WebAssembly Node Transport関連パッケージの更新

パフォーマンスへの影響

影響なし(バージョン更新とメタデータ変更のみであり、機能的な実装変更は含まれていません)

関連Issue

なし

その他

  • このPRはdotnet-maestro[bot]による自動生成更新です
  • 複数のソースリポジトリ(arcade、aspnetcore、efcore、fsharp、msbuild、nuget.client、sdk等)からの変更が統合されています
  • VMR(Virtual Monorepo)を通じたコードフロー更新プロセスの一環です

#122480 Support ICU v78 changes including IDN and Japanese Meiji era start date

  • 作成者: @tarekgh
  • 作成日時: 2025年12月12日 02:39:30(UTC)
  • マージ日時: 2025年12月31日 00:03:00(UTC)
  • ラベル: area-System.Globalization breaking-change needs-breaking-change-doc-created

概要

ICU v78への対応により、IDN(国際化ドメイン名)の処理とJapaneseCalendarの明治時代開始日が変更されました。明治時代の開始日が1868-09-08から1868-10-23に更新され、IDN処理も新しい仕様に準拠するようになります。これはグローバライゼーション関連の破壊的変更となり、該当APIを使用するアプリケーションでは動作検証が必要です。

変更内容

  • JapaneseCalendar関連: 明治時代の開始日を1868年10月23日に更新

    • JapaneseCalendar.Icu.cs: ICU v78対応ロジック追加
    • JapaneseCalendar.cs: 日付定数の更新
    • テストケースの日付参照値を更新
  • IDN処理テスト: Unicode 17.0対応のIDNAテストデータを追加

    • IdnMapping/Data/Unicode_17_0/ディレクトリ新規作成
    • IdnaTest_17.txt: 6500行以上のテストケースデータ
    • テストファクトリの更新
// 明治時代の新しい開始日
var calendar = new JapaneseCalendar();
var date = new DateTime(1868, 10, 23);
Console.WriteLine(calendar.GetEra(date)); // Output: 1 (明治時代)

// IDN処理の変更例
var idn = new IdnMapping();
string result = idn.GetAscii("faß.de");
// ICU v78では異なる結果が返される可能性あり

パフォーマンスへの影響

影響なし(ICU v78のライブラリ更新に伴う準拠のみ)

関連Issue

その他

  • 破壊的変更: IdnMappingJapaneseCalendarの動作が変更されるため、アプリケーション側での検証が必須です
  • レビュアーより「テスト失敗は既知のもので、関連性なし」とのコメント
  • ドキュメント作成ボットにより破壊的変更の詳細ドキュメント作成が要求されています
  • 国際化対応システムや日本語カレンダー機能を使用するアプリケーションは影響を受ける可能性があります

#118123 [System.DirectoryServices] Fixed possible NRE in SAMStoreCtx.cs

  • 作成者: @sancheolz
  • 作成日時: 2025年07月28日 12:22:09(UTC)
  • マージ日時: 2025年12月31日 00:16:01(UTC)
  • ラベル: area-System.DirectoryServices community-contribution

概要

System.DirectoryServices.AccountManagementのSAMStoreCtx.csにおいて、Principalインスタンス生成時に_sidが初期化されていない場合、principalSidがnullになる可能性があった。Linux Verification Center(SVACE)によって検出されたNullReferenceException(NRE)の潜在的な脆弱性を修正し、652行目のnullチェックを追加してこの問題を解決している。

変更内容

  • ファイル: src/libraries/System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/SAM/SAMStoreCtx.cs
  • 変更内容: principalSidがnullである可能性に対応するnullチェックロジックを追加(+3/-2、合計5行)
  • その他: 末尾の空白文字の警告を修正

パフォーマンスへの影響

影響なし

nullチェックは軽量な処理であり、パフォーマンス上の懸念はありません。

関連Issue

なし

その他

このPRはLinux Verification Centerの静的解析ツール(SVACE)による自動検出を基に作成されたもので、本番環境でのNullReferenceException発生を事前に防ぐための防御的プログラミングです。レビュワー(jeffhandley)からのコメント対応として、トレーリング空白文字の警告も修正されています。