Pull Request on 2026年04月04日

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

注意点

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



#126533 Revert FEATURE_CORPROFILER into FEATURE_DYNAMIC_CODE_COMPILED block

  • 作成者: @Copilot
  • 作成日時: 2026年04月04日 04:39:51(UTC)
  • マージ日時: 2026年04月04日 04:47:16(UTC)
  • ラベル: 指定なし

概要

FEATURE_CORPROFILERのフィーチャーフラグ定義が誤ってFEATURE_DYNAMIC_CODE_COMPILEDブロック内に配置されていたのを修正します。プロファイラーサポートは動的コード生成と独立しており、iOS/Androidなどプラットフォーム間で一貫して扱う必要があるため、フラグを独立した箇所に復元します。

変更内容

  • src/coreclr/clrfeatures.cmake:
    • FEATURE_CORPROFILERをデフォルト有効化する定義をFEATURE_DYNAMIC_CODE_COMPILEDブロック外に復元
    • WASM環境でのFEATURE_CORPROFILER 0上書き定義を復元
    • コミット 799c878の変更を部分的に取り消し

パフォーマンスへの影響

影響なし

関連Issue

#126493

その他

本修正は内部実装(CMakeビルド設定)の範囲内での変更です。FEATURE_CORPROFILERは公開APIではなく、プロファイラー機能の内部フラグです。この修正により、プロファイラー機能の有効化がプラットフォームの動的コード生成サポートの有無に左右されなくなります。


#126530 Revert "Inline CORINFO_HELP_ARRADDR_ST helper call, remove WriteBarrier FCall"

  • 作成者: @jkotas
  • 作成日時: 2026年04月04日 01:43:32(UTC)
  • マージ日時: 2026年04月04日 05:08:05(UTC)
  • ラベル: area-CodeGen-coreclr

概要

PR #117583で導入されたJIT側のインライン化・イントリンシック処理を取り除き、stelem.ref配列格納とWriteBarrier処理を従来のパターンに戻すRevartです。RuntimeHelpers.WriteBarrier イントリンシックを削除し、CastHelpers.WriteBarrier をFCALL経由のJIT_WriteBarrier_Callable ヘルパーに置き換えます。これにより#126516の問題を修正することが期待されています。

変更内容

  • JITコンパイラ: CORINFO_HELP_ARRADDR_ST の"helper-or-user-equivalent"ハンドリングをhelper-only検出に戻す、RuntimeHelpers.WriteBarrier イントリンシック関連のコード(namedintrinsiclist、importercalls、morph、importer、gentree、compiler.h)を削除
  • ランタイムヘルパー: 全アーキテクチャ(AMD64、ARM64、ARM、i386、RISC-V、LoongArch64、WASM)で新しいJIT_WriteBarrier_Callable エントリーポイント(アセンブリ実装)を追加
  • マネージドAPI: CastHelpers.WriteBarrierをFCALLとしてecalllist.hに登録、stelem.ref処理をJIT_WriteBarrier_Callable経由に変更
  • NativeAOT: RuntimeHelpers.WriteBarrier シムを削除し、InternalCalls.RhpAssignRef を使用するよう変更

パフォーマンスへの影響

影響なし(Revert による設計パターン変更のため、ベンチマーク結果は提供されていません)

関連Issue

#126516#117583

その他

この変更は前のアプローチの問題点を解決するためのRevert です。ヘルパーコール方式への回帰により、stelem.ref 配列要素格納時のWriteBarrier処理が従来の呼び出し規約に戻ります。


#126497 [release/11.0-preview3] Source code updates from dotnet/dotnet

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年04月03日 05:20:18(UTC)
  • マージ日時: 2026年04月04日 17:49:18(UTC)
  • ラベル: Servicing-approved area-Infrastructure-libraries

概要

dotnet/dotnetから.NET 11.0 Preview 3リリース用のソースコードを同期するCodeflow更新PRです。主にコンパイラツール、ビルドツール、ランタイムコンポーネント、NuGetツール、WebAssembly関連パッケージの依存関係を更新し、複数のリポジトリ(Arcade、ASP.NET Core、EFCore、Roslyn、SDK等)からの最新コード変更を取り込みます。

変更内容

  • 依存関係更新: Microsoft.CodeAnalysis系(5.6.0→5.7.0)、Microsoft.DotNet系ビルドツール(複数パッケージを11.0.0-beta.26172.108→11.0.0-beta.26202.110に更新)、NuGet系ツール(7.6.0-rc.17308→7.6.0-rc.20310)、ランタイムツール(JIT Tools、Mono LLVM、WebAssembly Node Transportを19.1.0-alpha.1.26159.1→26167.1へ更新)
  • Version.Details.props/xml: 全152行と306行の依存関係情報を更新
  • プロジェクトファイル更新: CoreLib、System.Private.CoreLib、各System.*ライブラリ等20+のプロジェクトファイルに標準プロパティ2行を追加
  • ビルド設定: source-index-stage1.ymlとglobal.jsonを更新
  • 関連リポジトリの統合: arcade、aspnetcore、efcore、fsharp、msbuild、roslyn、sdk等13リポジトリの最新コミットを取り込み

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • Codeflow PR(VMRからのソース同期)のため、複数リポジトリの統合更新です
  • ビルド日時: 2026年4月3日 4:36:31 UTC(メタデータ)

#126481 [minipal] Add getentropy() fallback for platforms without getrandom()

  • 作成者: @lewing
  • 作成日時: 2026年04月02日 18:26:24(UTC)
  • マージ日時: 2026年04月04日 17:28:35(UTC)
  • ラベル: area-System.Security

概要

WASI(WebAssembly System Interface)プラットフォーム向けに、getrandom() が利用できない場合の代替手段として getentropy()minipal/random.c に追加します。wasi-libc は getentropy()__wasi_random_get() で実装しており、既に C ランタイムで使用されているため、これを活用して RandomNumberGenerator.Fill() が WASI で動作するようにします。CMake のシンボル検出機能を使用することで、WASI に限らず getentropy() を持つ他のプラットフォームにも対応します。

変更内容

  • random.cHAVE_GETRANDOMHAVE_BCRYPT_H の間に #elif HAVE_GETENTROPY ブランチを追加。getentropy() を使用した暗号化乱数生成処理を実装(1回の呼び出しで最大256バイトをサポート)
  • configure.cmakecheck_symbol_exists(getentropy "unistd.h" HAVE_GETENTROPY)getentropy() のシンボル存在確認を追加
  • minipalconfig.h.in#cmakedefine01 HAVE_GETENTROPY マクロ定義を追加

パフォーマンスへの影響

影響なし。既存プラットフォームの動作に変更はなく、WASI など getentropy() のみ提供するプラットフォームに対して新たな機能を提供します。

関連Issue

#126480

その他

  • この変更は NativeAOT-LLVM が WASI-WASM をターゲットにする際の PlatformNotSupportedException エラーを解決します
  • getentropy() は既に C ランタイム起動時(スタックカナリア用)で使用されており、シンボルが確実にリンクされています
  • __wasi__ 判定の代わりに CMake の機能検出を使用するため、他の getentropy() 対応プラットフォームにも自動的に適用されます

#126338 Improve trimability of System.Diagnostics.Process by lazily initializing remote machine support

  • 作成者: @Copilot
  • 作成日時: 2026年03月31日 00:33:08(UTC)
  • マージ日時: 2026年04月04日 01:40:17(UTC)
  • ラベル: area-System.Diagnostics.Process tenet-performance size-reduction

概要

System.Diagnostics.Process の NativeAOT トリミング性を向上させるため、リモートマシン対応をレイジー初期化し、ローカルプロセス列挙用の専用エントリポイントを追加しました。従来、Process.Start("notepad.exe").WaitForExit() のような単純な使用でもリーチング可能性の連鎖により PerformanceCounterLib やリモートレジストリ機能が含まれていたものを、遅延初期化デリゲート技法により分離します。Win-x64 NativeAOT アプリで約 22% (340kB) のコード削減を実現しました。

変更内容

  • ProcessManager.Windows.cs: リモートサポート用のレイジー初期化デリゲート HandleRemoteMachineSupport と、ローカルのみ対応の GetProcessByIdGetProcessesGetProcessesByName エントリポイントを追加しました(内部APIの変更)。
  • ProcessManager.Unix.cs: リモートマシン呼び出しで HandleRemoteMachineSupport を経由するよう更新し、リモート非対応時に PlatformNotSupportedException をスロー。
  • ProcessManager.Linux.cs: GetProcessInfos にプロセス名フィルタリング機能を追加し、名前指定での列挙効率を復元。
  • ProcessManager.SunOS/BSD/FreeBSD/OSX.cs: ローカルのみの署名に統一。
  • Process.cs: GetProcessByIdGetProcessesGetProcessesByName のローカル専用実装を追加し、リモート対応オーバーロードへのルーティングを回避。
  • Process.Windows/Linux/BSD.cs: マシン名指定のオーバーロードを HandleRemoteMachineSupport 経由に統一。

パフォーマンスへの影響

コード削減:

  • Win-x64 NativeAOT アプリ(Process.Start + WaitForExit のみ): 1550kB → 1210kB(-22%、340kB 削減)
  • PerformanceCounterLib やリモートレジストリ関連の不要なコンパイル対象が削減される

実行時パフォーマンス:

  • ローカルプロセス操作の高速パスにより、不要なリモート対応コード経由を回避
  • Linux での GetProcessesByName で名前フィルタリング効率を復元

関連Issue

#126332 に貢献

その他

  • 内部API変更: ProcessManager の各プラットフォーム実装のメソッド署名が変更されていますが、これらは内部APIのため公開APIの互換性への影響はありません
  • プラットフォーム差異: リモートプロセス列挙は Windows のみ対応で、Unix ベースのプラットフォームではリモート呼び出し時に例外をスロー(既存動作を維持)

#126290 [release/10.0] Update dependencies from dotnet/xharness

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年03月30日 05:03:50(UTC)
  • マージ日時: 2026年04月04日 05:16:31(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

dotnet/xharnessの依存パッケージをプレリリース版からアップデートしています。Microsoft.DotNet.XHarness.CLI、Microsoft.DotNet.XHarness.TestRunners.Common、Microsoft.DotNet.XHarness.TestRunners.Xunitが11.0.0-prerelease.26169.1から11.0.0-prerelease.26173.1にアップデートされました。

変更内容

  • .config/dotnet-tools.json: ツール設定の更新
  • eng/Version.Details.props: バージョン詳細プロパティの更新
  • eng/Version.Details.xml: バージョン詳細XMLの更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPRはMaestroの自動依存更新メカニズムにより生成されました
  • 更新対象のビルド: dotnet/xharness 20260323.1
  • 更新コミット: e5857fbbc3f1d39d2776af5a5e3235c9ff485afa

#126222 Convert MethodDescCallSite to UCO in entrypoints

  • 作成者: @am11
  • 作成日時: 2026年03月27日 19:31:37(UTC)
  • マージ日時: 2026年04月04日 15:01:22(UTC)
  • ラベル: area-VM-coreclr community-contribution

概要

MethodDescCallSiteをUnboxedCallOp(UCO)に変換し、エントリーポイントでの呼び出しを最適化するPRです。スレッド開始時のRunMainInternalとメソッド呼び出し時のCorHost2::ExecuteAssemblyを対象としており、#123864の優先度3項目を実装しています。

変更内容

  • CoreLib層: System.Private.CoreLibに環境関連のネイティブメソッド定義を追加(54行)
  • VM層の呼び出し変換:
    • assembly.cpp/hpp: MethodDescCallSiteからUCOベースの呼び出しに変換(61行変更)
    • corhost.cpp: ExecuteAssemblyの呼び出し方式を更新(23行変更)
  • 周辺機能の対応:
    • debugdebugger.cpp: デバッガ対応の更新(7行)
    • eepolicy.cpp: ポリシー処理の対応(13行)
    • exceptionhandling.cpp: 例外処理の対応(13行)
    • metasig.h: メタシグネチャ定義追加(3行)
    • wasm/callhelpers-reverse.cpp: WebAssembly向けの対応(14行)

パフォーマンスへの影響

影響なし(パフォーマンス数値の記載がないため)

関連Issue

#123864

その他

  • 複数ラウンドのレビューを経ており、特にjkotasAaronRobinsonMSFTjanvorliによる詳細なレビューが実施されている
  • UCOへの変換はランタイムの内部実装(VM層)に関わる最適化であり、公開API互換性への影響はない

#126009 Convert breaking-change-doc workflow to GitHub agentic workflow

  • 作成者: @ericstj
  • 作成日時: 2026年03月24日 02:55:30(UTC)
  • マージ日時: 2026年04月04日 00:41:48(UTC)
  • ラベル: area-skills

概要

Breaking Change ドキュメンテーション自動化ワークフローをレガシーな PowerShell スクリプト + 従来の GitHub Actions ワークフローから GitHub Agentic Workflow(gh-aw)ベースの実装に移行します。新しいアプローチでは、専用の breaking-change-doc スキルとヘルパースクリプトを使用して、PR の破壊的変更に関するドキュメント生成を自動化します。

変更内容

  • 削除: eng/breakingChanges/ 配下のレガシー PowerShell ツール(config.ps1breaking-change-doc.ps1)と関連ドキュメント、および従来の .github/workflows/breaking-change-doc.yml ワークフロー定義
  • 追加:
    • .github/workflows/breaking-change-doc.md(agentic ワークフロー ソース)
    • .github/workflows/breaking-change-doc.lock.yml(コンパイル済みワークフロー定義)
    • .github/skills/breaking-change-doc/SKILL.md(スキル定義と処理フロー)
    • .github/skills/breaking-change-doc/Get-VersionInfo.ps1(Git タグに基づくバージョン検出)
    • .github/skills/breaking-change-doc/Build-IssueComment.ps1(PR コメント生成ヘルパー)
    • .github/aw/actions-lock.json(gh-aw アクション SHA ロック設定)
  • 修正: .gitattributes*.lock.yml をマージ戦略 merge=ours で登録

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

本変更はワークフローインフラストラクチャの現代化に関するもので、公開 API や ランタイム動作には直接的な影響はありません。ワークフロー実行ロジックは PowerShell から agentic workflow へ移行されますが、最終的な破壊的変更ドキュメント生成の機能は維持されます。


#125902 Denote cgroups as unsupported on OpenBSD

  • 作成者: @sethjackson
  • 作成日時: 2026年03月22日 01:35:32(UTC)
  • マージ日時: 2026年04月04日 04:40:17(UTC)
  • ラベル: area-PAL-coreclr community-contribution os-openbsd

概要

OpenBSDがcgroupsをサポートしていないことを明示するための修正です。併せてHAVE_NON_LEGACY_STATFSの問題も修正しています。

変更内容

  • src/coreclr/pal/src/configure.cmake: OpenBSD向けのcgroups非サポート設定を追加
  • src/coreclr/pal/src/misc/cgroup.cpp: OpenBSD向けのcgroups実装を調整

パフォーマンスへの影響

影響なし

関連Issue

その他

なし


目次