2025年12月のダイジェスト

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

← アーカイブ一覧へ戻る

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

53
PR 数(Total)
25
PR 数(Community)
4
PR 数(AI Agent)
24
PR 数(Bot)
28
ラベルタイプ数
10
更新日数

日別 Pull Request 数

日付をクリックするとその日のセクションへ移動します。

ラベル別 Pull Request 数(上位10)

ラベル別 Pull Request 数の上位10 上位10件の合計76件を100%とした内訳です。各スライスの番号は凡例の番号に対応します。ラベルごとの件数は凡例を参照してください。 1. area-codeflow — 24 PRs (31.6%) 2. Servicing-approved — 20 PRs (26.3%) 3. community-contribution — 10 PRs (13.2%) 4. area-NativeAOT-coreclr — 7 PRs (9.2%) 5. area-VM-coreclr — 4 PRs (5.3%) 6. runtime-async — 3 PRs (3.9%) 7. arch-loongarch64 — 2 PRs (2.6%) 8. area-System.Threading — 2 PRs (2.6%) 9. breaking-change — 2 PRs (2.6%) 10. needs-breaking-change-doc-created — 2 PRs (2.6%)
  1. area-codeflow24 PRs31.6%
  2. Servicing-approved20 PRs26.3%
  3. community-contribution10 PRs13.2%
  4. area-NativeAOT-coreclr7 PRs9.2%
  5. area-VM-coreclr4 PRs5.3%
  6. runtime-async3 PRs3.9%
  7. arch-loongarch642 PRs2.6%
  8. area-System.Threading2 PRs2.6%
  9. breaking-change2 PRs2.6%
  10. needs-breaking-change-doc-created2 PRs2.6%
上位10件で全95件中76件(80.0%)を占めます。ラベルは1つの Pull Request に複数付くため、比率は PR 数ではなくラベル付与の延べ数に対するものです。

各 Pull Request の概要

この月にマージされた 53 件を新しい日から順に並べています。タイトルをクリックするとその日のページの該当箇所へ移動します。Bot が作成した 24 件はタイトルのみにして、各日の最後にまとめています。

2025年12月31日 (4 PRs)うち Bot 1 件 この日のページ →

#122780 Consolidate classlibnative directory into vm

@Copilot・GitHub

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

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

@tarekgh・GitHub・area-System.Globalizationbreaking-changeneeds-breaking-change-doc-created

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

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

@sancheolz・GitHub・area-System.DirectoryServicescommunity-contribution

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

Bot PRs (1 PRs)

2025年12月30日 (4 PRs) この日のページ →

#122769 Fix file descriptor leak

@dovydenkovas・GitHub・area-System.Securitycommunity-contribution

System.Security.Cryptography.Native ライブラリの X.509 処理において、メモリ不足エラー時にファイルディスクリプタがリークしていた問題を修正します。opendir()で開かれたディレクトリストリームが、メモリ割り当て失敗時に適切にクローズされていませんでした。Linux Verification Center の静的解析ツール SVACE により検出されました。

#122767 [LoongArch64] Align PR#108419: Verify TLS resolver code for LA64.

@LuckyXu-HF・GitHub・area-VM-coreclrcommunity-contributionarch-loongarch64

このPRはLoongArch64(LA64)アーキテクチャ向けのTLS(スレッドローカルストレージ)リゾルバーコードの検証を行うもので、PR#108419の対応をLoongArch64に適用しています。TLS Descriptorリロケーションタイプ(R_LARCH_TLS_DESC6)を有効にするため、コンパイルパラメータ-mtls-dialect=descを追加しています。

#122723 Move stgpool to md subsystem, extract memory streams, eliminate VM dependencies on MD internals

@Copilot・GitHub・area-VM-coreclr

このPRは、メタデータ管理の責務分離を目的として、ストレージプール関連のコード(stgpool)をVM内部から独立したメタデータサブシステムに移動しました。メモリストリーム機能を独立したmemorystreams.*に抽出し、VMのメタデータ内部実装への依存性を排除しています。

#122646 [browser][coreCLR] running main/exit/abort/logging and infra for unit testing

@pavelsavara・GitHub・arch-wasmarea-Hostos-browser

WebAssemblyのブラウザランタイムにおいて、メインメソッドの実行制御とユニットテスト用のインフラストラクチャを強化するPRです。dotnet.runMainAndExit()とdotnet.runMain()の新APIを追加し、dotnet.run()の動作を変更(CoreCLRではランタイムを生存させる)。診断機能(dotnet.diagnostics.js)を追加し、スタックトレースの記号化、終了処理、コンソール転送などのテスト支援機能を実装しました。

2025年12月29日 (12 PRs)うち Bot 9 件 この日のページ →

#122775 [browser] [browser] provide dummy icon and template icon

@pavelsavara・GitHub・area-Build-monoos-browser

WebAssemblyブラウザアプリケーション関連のHTMLファイルにダミーアイコンとテンプレートアイコンを追加するPR。テストログに出現していた404エラー(アイコンファイル不在)を解消することが目的。ダミーアイコンは最小限のPNG形式で、デフォルトWASMテンプレートには実際のdotnetアイコンを使用。

#122768 Handle QueueUserAPC2 failure during thread suspension

@jkotas・GitHub・needs-area-label

マシンが高負荷状態にある場合、QueueUserAPC2 APIが失敗する可能性があります。本PRではこの失敗を適切に処理するため、スレッド一時停止時のQueueUserAPC2エラーハンドリングを改善しました。失敗時には他の機構(hijackingなど)による一時停止の試行に頼り、APIの失敗を無視する戦略を採用しています。

#122537 Include CMakeConfigureLog in logs artifacts

@am11・GitHub・area-Infrastructure-coreclrcommunity-contribution

dotnet/runtimeのビルドパイプラインにおいて、ログアーティファクトの収集対象にCMakeConfigureLog.yamlファイルを追加するPRです。従来はbinlogファイルのみ収集していましたが、CMakeの構成結果を含めることで、ビルド時の内部検査結果の追跡が容易になります。global-build-job.ymlに変更を加え、artifacts/objフォルダが存在する場合のみこのファイルをコピーするよう条件付きで実装されています。

2025年12月27日 (3 PRs) この日のページ →

#122571 Refactor lock upgrade logic

@jkoritzinsky・GitHub・area-VM-coreclr

ロック(Monitor)のアップグレード処理におけるGCホール問題を修正するPR。NativeAOTで使用されているポインタオーバーロード版のCompareExchangeをCoreClrに適用し、ARM32プラットフォームで完全に形成されたrefが報告されることによるクラッシュを防止。

#122466 Resolve dllimport.cpp runtimeasync todos

@jkoritzinsky・GitHub・area-Interop-coreclrruntime-async

P/Invoke(DllImport)メソッドとデリゲートのInvokeメソッドに対して、asyncメソッドフラグが設定されるシナリオを防ぐための改善。Roslynはこれらのメソッドにasyncマークを付けないため、不正な組み合わせの検出と エラーハンドリングを強化しました。例えば以下のような不正なコードはロード時に失敗します:

[DllImport("kernel32.dll")]
private static extern Task QueryPerformanceFrequency(out long frequency);

2025年12月26日 (5 PRs)うち Bot 3 件 この日のページ →

#122665 Add exit code check after bootstrap build in eng/build.ps1

@Copilot・GitHub・area-Infrastructure

eng/build.ps1のbootstrapビルド後に終了コードチェックを追加するPR。従来はbootstrapビルドの失敗が無視され、その後のアーティファクト削除とメインビルドが実行されていました。この修正により、bootstrap失敗時は即座にビルドが停止し、開発者に明確なエラーメッセージが表示されます。

if ($lastExitCode -ne 0) {
  Write-Error "Bootstrap build failed. Stopping build."
  exit 1
}

2025年12月25日 (2 PRs)うち Bot 1 件 この日のページ →

#122682 Fix GCInfoDumper

@jkotas・GitHub・area-VM-coreclr

GC情報ダンパーとデコーダーから廃止されたオフセット調整を削除するクリーンアップPRです。gcinfodumper.cppとgcinfodecoder.cppの2ファイルから不要なオフセット調整処理を削除し、コードを簡潔化しています。

2025年12月24日 (1 PRs) この日のページ →

#122706 Use QueryUnbiasedInterruptTime instead of GetTickCount64 to allow more responsive Windows apps when they opt-in

@tannergooding・GitHub・area-System.Threadingbreaking-changeneeds-breaking-change-doc-created

WindowsでのタイマーAPI実装をGetTickCount64からQueryUnbiasedInterruptTimeに変更し、スリープ・休止時間を除外してタイマー応答性を向上させます。これにより、Windows上のEnvironment.TickCount64の動作がUnix系プラットフォーム(Linux/macOS)と一貫性を持つようになり、アプリケーションがタイマー精度を向上させるためのオプト設定(例:timeBeginPeriod)に対応可能になります。

2025年12月23日 (6 PRs)うち Bot 3 件 この日のページ →

#122714 [LoongArch64] Fix the random failed for Fp32x2StructFunc in the profiler test: slowpatheltenter.sh.

@LuckyXu-HF・GitHub・area-Diagnostics-coreclrcommunity-contributionarch-loongarch64

LoongArch64プラットフォームにおいて、プロファイラーテスト(slowpatheltenter.sh)でFp32x2StructFuncがランダムに失敗する問題を修正したPRです。struct{single, single}型の引数を処理する際に、ProfileArgIterator::GetNextArgAddr()でバッファアドレスを正しく返すように改善しました。500回のテスト実行で確認されています。

#122710 Fix MethodBase.GetCurrentMethod with runtime async

@eduardo-vp・GitHub・area-NativeAOT-coreclrruntime-async

Native AOT コンパイルで runtime-async が有効な場合、MethodBase.GetCurrentMethod()が非同期メソッド内で正常に動作するように修正しました。以下のコードが正常に実行されるようになります。

static async Task MyAsyncMethod()
{
    MethodBase currentMethod = MethodBase.GetCurrentMethod();
    Console.WriteLine($"Current method: {currentMethod?.Name}");
    await Task.Delay(100);
}

#121674 Fix overflow in LengthBuckets for large strings

@prozolic・GitHub・area-System.Collectionscommunity-contribution

FrozenDictionary/FrozenSetの作成時に、極めて大きな文字列(Array.MaxLengthに近いサイズ)を使用した場合にLengthBucketsの計算でinteger overflowが発生し、負の値がArrayPool<T>.Shared.Rentに渡されてArgumentOutOfRangeExceptionが発生していた問題を修正しました。オーバーフロー検出を追加してバケット作成を防止します。

2025年12月22日 (14 PRs)うち Bot 7 件 この日のページ →

#122701 Add native AOT arm64 CFG testing

@MichalStrehovsky・GitHub・area-NativeAOT-coreclr

Native AOT対応のARM64プラットフォームにおいて、CFG(Control Flow Guard)テスティングを追加するPull Requestです。従来はx64でのCFGテストが実施されていましたが、ARM64プラットフォームでも同等のテストカバレッジを確保することで、ネイティブコンパイル時のセキュリティ機能の品質向上を目指しています。

#122689 Delete redundant RhpUniversalTransition

@jkotas・GitHub・area-NativeAOT-coreclr

.NET Nativeの呼び出し規約変換から残されていた冗長なRhpUniversalTransition関数を削除するPR。テールコール用途のUniversal Transitionのみが必要であるため、汎用版を削除して余分なコードを整理します。複数のアーキテクチャ(x64、ARM、ARM64、i386、LoongArch64、RISC-V)とNativeAOTランタイムに関連する変更が含まれています。

#122658 Move managed type system APIs to UTF-8

@eduardo-vp・GitHub・area-crossgen2-coreclr

マネージド型システムAPIをUTF-8ベースに移行し、文字列割り当てを削減するメモリ最適化を実施。複数のコンパイラツールチェーン関連ファイルで、名前マングリング・メタデータ処理・IL生成などの処理をUTF-8操作に統一し、不要な文字列アロケーションを削減。

#122631 Fix up hijacking on x64 platforms in presence of runtime async

@MichalStrehovsky・GitHub・area-NativeAOT-coreclrruntime-async

x64プラットフォームでランタイム非同期実行時のハイジャッキング処理を修正するPRです。GC割り込み時に継続レジスタ(continuation register)を適切に保存・復元することで、非同期GCが正常に動作するようにします。これはNative AOTランタイムがJIT/VM側の非同期GC対応に合わせるための変更です。

2025年12月21日 (2 PRs) この日のページ →

#122652 Add NoInlining and NoOptimization attributes to ClearWaitSleepJoinState method

@Copilot・GitHub・area-CodeGen-coreclr

Issue #122479のランタイム障害に対する一時的な回避策として、Thread.ClearWaitSleepJoinState()メソッドにNoInliningとNoOptimization属性を追加しました。コンパイラの最適化によって引き起こされるスレッド待機/スリープ/結合状態遷移の問題を防ぐための最小限の変更です。

[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
private static void ClearWaitSleepJoinState()
目次