注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #132270 Fix TryParsePartial under-reporting charsConsumed for leading whitespace
- #132265 Enable long paths for AspNetCore sync checkout
- #132257 Wasm: don't zero-pad the caller's return buffer in the interp-to-R2R thunk
- #132252 [release/10.0] Make TestKeyRing.CreateECDsa resilient to transient macOS OSStatus -50 failures
- #132240 Fix CoreLib extern modifier ordering
- #132229 Fix RISC-V unwind scope calculations
- #132223 JIT: Add an inlining stress mode for general runtime async inlining
- #132220 Handle truncation errors in diagnostic IPC transport names
- #132219 Throw when Unix has no shell opener
- #132217 Fix extraction of password-protected ZIP archives with empty files
- #132214 Reject null characters in process environment variable names
- #132210 Add SslStream legacy path compatibility switch
- #132203 [release/10.0] Disable timing out EncryptedXml encoded-DTD tests
- #132199 Disable test using gc cover on interpreter
- #132173 Fix FileNotFoundException in NativeAOT test
- #132161 Merging internal commits for release/9.0
- #132160 Merging internal commits for release/8.0
- #132146 Enable hardware intrinsics for ExtractMostSignificantBits test
- #132130 [manual] Merge release/9.0-staging into release/9.0
- #132129 [manual] Merge release/8.0-staging into release/8.0
- #132113 Deduplicate minipal header helpers
- #132108 ILVerify: Use case-insensitive comparer for assembly binding cache
- #131988 Add Runtime Async profiler API coverage
- #131976 [LoongArch64] Fix some crash CoreRoot tests under --gcstresslevel=4 like Methodical_{r2|d2}.
- #131966 Remove Signature consumer documentation
- #131783 Replace SHA-1/RSA-1024 test data with SHA-256/RSA-2048 equivalents
- #131197 Unify sync/async Options validation contract
- #130097 Diagnose LibraryImport/[GeneratedComInterface] with restricted CCW/RCW options
#132270 Fix TryParsePartial under-reporting charsConsumed for leading whitespace
- 作成者: @Copilot
- 作成日時: 2026年08月13日 10:57:09(UTC)
- マージ日時: 2026年08月13日 22:56:30(UTC)
- ラベル: area-VM-coreclr
概要
INumberBase<T>.TryParsePartial が、フォーマットプロバイダーのサイン記号が "+"/"-" 以外の場合(sv-SE、fi-FI、アラビア語/ヘブライ語ロケールなど約96の言語)に、先頭の空白を charsConsumed に含めずに報告していたバグを修正します。この問題により、呼び出し元が返された消費文字数で位置を進めると、既に読み込んだ数値の途中に巻き戻ります。
int.TryParsePartial(" 5", NumberStyles.Integer, new CultureInfo("sv-SE"), out int v, out int consumed);
// 修正前: v = 5, consumed = 1 (期待値: 2)
// 修正後: v = 5, consumed = 2
変更内容
- src/libraries/System.Private.CoreLib/src/System/Number.Parsing.cs:
Number.TryParseBinaryIntegerStyleで、サイン記号のマッチング時に元のvalueスパンのインデックスをスライス操作で失わないよう、スライスをremaining局所変数に限定。これにより、先頭空白のオフセットが保持され、正確なelementsConsumedが計算されます。 - src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Int32Tests.cs:
TryParsePartialテストケースを追加(先頭空白のみ、+付き、マルチバイト負号、末尾空白の組み合わせ) - src/libraries/System.Runtime/tests/System.Runtime.Tests/System/UInt32Tests.cs: 同様にテストケースを追加
パフォーマンスへの影響
影響なし
関連Issue
その他
- 影響範囲: 全バイナリ整数型(
int、uint、long、ulongなど)で同じコードパスを使用するため、すべてのバイナリ整数型に適用 - 互換性: 修正前の動作は仕様外のバグであり、正しい
charsConsumedを返すことで互換性が向上 - 非部分解析の呼び出し元(
Enum、Version)はelementsConsumedを破棄するため影響なし BigInteger.TryParsePartialの同様のバグは本修正では対象外とし、別途対応予定
#132265 Enable long paths for AspNetCore sync checkout
- 作成者: @Copilot
- 作成日時: 2026年08月13日 08:59:03(UTC)
- マージ日時: 2026年08月13日 11:35:16(UTC)
- ラベル: area-Infrastructure
概要
AspNetCore同期チェックアウト時にWindows環境でGitのパス長制限によるエラーが発生していた問題を解決するため、ワークフロー実行前にGitのlong-path設定を有効化する変更です。
- name: Enable Git long paths
shell: pwsh
run: git config --global core.longpaths true
変更内容
.github/workflows/aspnetcore-sync.yml: AspNetCore checkout実行前にGitのlong-path対応を有効化する設定を追加(+3行)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- この変更はCI/CDワークフローの修正であり、ランタイムコード自体への変更ではありません
- Windows環境でのGit path-length制限(260文字)を回避するための設定で、AspNetCore追跡スナップショットのチェックアウト成功を目的としています
- Copilot reviewerではYAMLファイルのレビューが実施されていません
#132257 Wasm: don't zero-pad the caller's return buffer in the interp-to-R2R thunk
- 作成者: @AndyAyersMS
- 作成日時: 2026年08月13日 01:49:55(UTC)
- マージ日時: 2026年08月13日 22:55:46(UTC)
- ラベル: arch-wasm area-ReadyToRun
概要
WebAssembly interp-to-R2R thunkノードが呼び出し元の戻り値バッファを不適切にゼロパディングしていた問題を修正しました。pRet バッファがインタプリタ自身のリターンスロットではなく、呼び出し元のバッファやCallDescrData用バッファである場合、パディングがバッファサイズを超えて次のフレームスロットに書き込み、メモリ破損を引き起こしていました。12バイト構造体の場合、後続フレームの参照フィールドをゼロ上書きして NullReferenceException を発生させていました。
変更内容
- WasmInterpreterToR2RThunkNode.cs: R2R本体呼び出し後の pRet バッファのゼロパディング処理を削除(18行削減、2行追加)
- Runtime_131640.cs: 回帰テスト追加(JsonDocument.Parse で ReadOnlySpan の参照フィールドが破損する問題を検証)
- Runtime_131640.csproj: テストプロジェクト設定
パフォーマンスへの影響
影響なし(不要なメモリ書き込み処理を削除するため、わずかに高速化の可能性あり)
関連Issue
その他
このバグは WebAssembly インタプリタと R2R コンパイル済みコードの相互運用層(WasmInterpreterToR2RThunkNode)における内部実装の問題です。ユーザーコードに直接の API 変更はありませんが、WebAssembly ホスト環境での JsonDocument.Parse など複数フレームにまたがる呼び出しでメモリ破損を引き起こしていました。
#132252 [release/10.0] Make TestKeyRing.CreateECDsa resilient to transient macOS OSStatus -50 failures
- 作成者: @github-actions[bot]
- 作成日時: 2026年08月13日 00:37:46(UTC)
- マージ日時: 2026年08月13日 08:36:07(UTC)
- ラベル: Servicing-approved area-System.Security
概要
macOS環境においてTestKeyRing.CreateECDsaメソッドが一時的なOSStatus -50エラーに対して耐性を持つように改善するバックポート。PR #125909のrelease/10.0ブランチへのバックポートで、Issue #131140に対応しています。
変更内容
src/libraries/System.Security.Cryptography.Cose/tests/TestKeyRing.cs: TestKeyRing.CreateECDsaメソッドに対して、transient(一時的)なmacOS OSStatus -50エラーに対する耐性を追加(+9行、-1行)
パフォーマンスへの影響
影響なし
関連Issue
その他
- テストユーティリティの変更であり、ランタイムまたはライブラリの公開APIへの影響なし
- macOS環境でのテスト実行の安定性向上を目的としたテスト基盤の改善
#132240 Fix CoreLib extern modifier ordering
- 作成者: @Copilot
- 作成日時: 2026年08月12日 22:53:05(UTC)
- マージ日時: 2026年08月13日 09:58:43(UTC)
- ラベル: area-Infrastructure linkable-framework
概要
CoreLib内の extern修飾子の順序をIDE0036ルールに準拠するよう修正しました。safe extern/unsafe externからextern safe/extern unsafeに並べ替えることで、macOS ARM64ビルドの復旧を実現します。
変更内容
- CoreLib P/Invoke定義: Environment、GC、Math、MathF、RuntimeHelpers、GCSettings、Marshal、JitInfo、StubHelpers、String各クラスのextern修飾子の順序を
extern safe/extern unsafeに統一(合計73行が修正) - ILLink CodeFix: AddUnsafeToExternCodeFixProviderおよびUnsafeModifierCodeFixHelpersを更新して、修飾子の正しい順序でコード生成するよう改善
- テスト: AddUnsafeToExternCodeFixTestsに新規テストケースを追加
パフォーマンスへの影響
影響なし
関連Issue
その他
- この変更はコンパイル時の修飾子順序ルール(IDE0036)への準拠と、macOS ARM64ビルドの失敗を解決するための修正です
- extern修飾子自体の機能に変更はなく、純粋にコードスタイルの統一です
- ILLink codefix toolも連動更新され、今後自動生成されるコードも正しい修飾子順序を採用します
#132229 Fix RISC-V unwind scope calculations
- 作成者: @Copilot
- 作成日時: 2026年08月12日 19:38:54(UTC)
- マージ日時: 2026年08月13日 13:15:38(UTC)
- ラベル: area-Diagnostics-cdac
概要
RISC-V64スタックアンワインダーのスコープ計算をハーフワード単位で統一し、エピログスコープサイズ計算時に最終エピログ命令を考慮するよう修正しました。リターン命令でのアンワインディング時にスタック調整が誤って再適用されないことを検証するリグレッションテストを追加しています。
変更内容
- RISCV64Unwinder.cs: プロログ/エピログのスコープ境界計算をハーフワード単位で統一。最終エピログ命令をスコープサイズ計算に含めるよう修正(+24/-20行)。
- StackWalkTests.cs: シングルエピログ関数のリターン命令でのアンワインディング動作を検証するRISCV64リグレッションテストを追加(+70行)。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
本修正は、cDACコンポーネント(diagnostic情報読み取り用の契約ベースアーキテクチャ)内のRISC-V64ランタイム固有の実装を対象としています。スタック操作計算の精度向上により、RISC-Vプラットフォームでのダンプデバッグ時のスタックウォーク信頼性が改善されます。
#132223 JIT: Add an inlining stress mode for general runtime async inlining
- 作成者: @jakobbotsch
- 作成日時: 2026年08月12日 17:29:00(UTC)
- マージ日時: 2026年08月13日 18:52:37(UTC)
- ラベル: area-CodeGen-coreclr
概要
JIT インライニングのストレステストモード JitStressAsyncInlining を追加するもので、async メソッドの呼び出しを通常のサイズ・予算・採算性ヒューリスティクスを無視して積極的にインラインします。インライン深度と候補インデックスに応じて確率が減衰し、一つのメソッド内の多数の async 呼び出しが全てインラインされることを防ぎます。DEBUG ビルドのみの機能です。
変更内容
- inlinepolicy.h/cpp:
AsyncStressPolicyクラスを実装し、JitStressAsyncInliningが設定された場合に有効化。予算チェックと採算性判定を async 候補向けにカスタマイズ - jitconfigvalues.h:
JitStressAsyncInlining、JitStressAsyncInliningPct、JitStressAsyncInliningDepth、JitStressAsyncInliningRandomSeedの新規設定値を追加 - inline.h:
InlineCandidateInfoに DEBUG 専用フィールドasyncStressIndexを追加 - inline.def:
CALLEE_IS_ASYNCとCALLSITE_ASYNC_STRESS_INDEX観察値を追加 - inline.cpp: async メソッドの情報をインラインポリシーに記録
- fginline.cpp:
Compiler::fgAsyncStressPrepare()メソッドを追加し、メソッド内の async 候補をシャッフルしてインデックスを付与 - compiler.h:
fgAsyncStressPrepare()宣言とcompAsyncInliningStress()ヘルパーを追加
パフォーマンスへの影響
ストレステストモード専用(DEBUG ビルドのみ)のため、リリースビルドへの影響なし。ストレスモード有効時は async メソッドのインライニングが大幅に増加し、実際のランタイム動作をテストするための意図的な負荷機構です。
関連Issue
なし
その他
Copilot レビューで 2 つの潜在的問題が指摘されています:
- BudgetCheck の処理: 現在は全 async 呼び出しの予算チェックをスキップしていますが、
asyncStressIndex == -1(遅延生成された候補)の場合は通常の予算動作にフォールバックすべき可能性がある - DetermineProfitability の処理:
asyncStressIndex == -1の候補を常に採算性ありとして扱っていますが、ドキュメント上は通常ポリシーにフォールバックすべき可能性がある
#132220 Handle truncation errors in diagnostic IPC transport names
- 作成者: @max-charlamb
- 作成日時: 2026年08月12日 17:11:03(UTC)
- マージ日時: 2026年08月13日 15:24:01(UTC)
- ラベル: area-Tracing-coreclr
概要
EventPipe診断IPC転送で、PAL_GetTransportNameの失敗を適切に伝播し、截断または空のUnixドメインソケットパスを拒否するように修正。Linux抽象名前空間で空のsun_pathバインドが許可される問題を防ぎます。
変更内容
- src/coreclr/vm/eventing/eventpipe/ds-rt-coreclr.h: エラーハンドリングロジックを追加(+4行)
- src/native/eventpipe/ds-ipc-pal-socket.c:
PAL_GetTransportNameの失敗を検出し、截断または空のソケットパスを拒否するバリデーション処理を追加(+16行、-6行)
パフォーマンスへの影響
影響なし
関連Issue
その他
- dotnet/dotnet#8241のコミット
90e1097e9e4ad09e4aa3da19bf7dd73ee0eaaa2aからのポート - EventPipe診断IPC機能の安全性改善(ランタイムの内部実装領域)
- テスト済み: イベントパイプの診断ポート関連テストスイートで検証
#132219 Throw when Unix has no shell opener
- 作成者: @Copilot
- 作成日時: 2026年08月12日 17:10:55(UTC)
- マージ日時: 2026年08月13日 17:38:04(UTC)
- ラベル: area-System.Diagnostics.Process
概要
Unix環境でUseShellExecuteを使用する際、シェルオープナーが利用できない場合にWin32Exception(ERROR_NO_ASSOCIATION)をスローするように修正しました。これにより、後続の処理でnullポインタエラーが発生するのを防ぎます。
変更内容
- SafeProcessHandle.Unix.cs:
Process.GetPathToOpenFile()がnullを返す場合、Win32Exception(Interop.Errors.ERROR_NO_ASSOCIATION)をスローするように修正 - ProcessTests.Unix.cs:
PATHをクリアして「シェルオープナーが見つからない」条件を再現し、ERROR_NO_ASSOCIATIONが正しくスローされることを検証する回帰テストを追加 - System.Diagnostics.Process.Tests.csproj: テスト関連の設定を追加
パフォーマンスへの影響
影響なし
関連Issue
その他
このPRはmain branchへのマージ後に特定のbranchへcherry-pickされた修正です。Unix環境でのSystem.Diagnostics.Processの動作を改善し、エラーハンドリングをより堅牢にします。
#132217 Fix extraction of password-protected ZIP archives with empty files
- 作成者: @Copilot
- 作成日時: 2026年08月12日 16:21:15(UTC)
- マージ日時: 2026年08月13日 15:38:37(UTC)
- ラベル: area-System.IO.Compression
概要
パスワード保護されたZIPアーカイブに空のファイルが含まれる場合、抽出に失敗する問題を修正しました。根本原因は、暗号化されたエントリがローカルファイルヘッダーを書き込む前に暗号化ストリームを終了していたため、暗号化メタデータ(ZipCrypto、AES)とローカルヘッダーの順序が逆になり、かつ中央ディレクトリとの記述内容が矛盾していたことです。修正では、空のエントリでも暗号化を考慮した通常のパスでローカルファイルヘッダーを先に書き込み、その後暗号化ストリームを終了するように変更しました(同期・非同期両対応)。
変更内容
- src/libraries/System.IO.Compression/src/System/IO/Compression/ZipArchiveEntry.cs: 同期Disposeパスで、暗号化された空のエントリについてローカルファイルヘッダーを暗号化ストリーム終了前に書き込み、CRC/サイズを後から修正する処理を追加(58行追加、21行削除)
- src/libraries/System.IO.Compression/src/System/IO/Compression/ZipArchiveEntry.Async.cs: 非同期DisposeAsyncパスで同様の修正を適用(5行追加、4行削除)
- src/libraries/System.IO.Compression.ZipFile/tests/ZipFile.Encryption.cs: 回帰テスト追加 -
Encryption_EmptyEntry_RoundTripとUpdateMode_EmptyEncryptedEntry_Unchanged_RoundTrip(4種類の暗号化方式、同期・非同期対応、計157行追加)
パフォーマンスへの影響
影響なし
関連Issue
その他
- 修正対象: ZipCrypto および WinZip AES 暗号化の両方に対応
- 修正されたテスト: ZipFile_EncryptionTests で 181 テストすべてが成功(新規 8 テスト含む)
- 修正はシーク不可能なストリームに対してもデータディスクリプタを用いて対応
- 同期・非同期の両Disposeパスで修正が適用されている
#132214 Reject null characters in process environment variable names
- 作成者: @Copilot
- 作成日時: 2026年08月12日 15:55:55(UTC)
- マージ日時: 2026年08月13日 14:57:45(UTC)
- ラベル: area-System.Diagnostics.Process
概要
環境変数名に含まれるヌル文字がWindowsの環境ブロックを破損させる問題を修正します。環境変数の変更時にヌル文字を含む名前を明示的に拒否し、ArgumentExceptionをスローするようになります。
変更内容
- DictionaryWrapper.cs: インデクサとすべての
Addオーバーロードでヌル文字検証ロジックを追加(16行追加) - Strings.resx: エラーメッセージリソースを追加(3行追加)
- ProcessUtils.Windows.cs: 検証ロジックの参照を追加(1行追加)
- ProcessStartInfoTests.cs: ジェネリック/非ジェネリックの変更パスに対するテストケースを追加(22行追加)
パフォーマンスへの影響
検証処理により僅かなオーバーヘッドが発生する可能性がありますが、環境変数の設定時にのみ実行されるため、実行時パフォーマンスへの実質的な影響は軽微と考えられます。
関連Issue
その他
- 既存のnull-keyの動作は保持されます(nullそのものの拒否ではなく、ヌル文字
\0の含有を拒否) - Windows環境ブロック形式の破損を防ぐためのセキュリティ関連の修正と考えられます
#132210 Add SslStream legacy path compatibility switch
- 作成者: @rzikm
- 作成日時: 2026年08月12日 13:54:07(UTC)
- マージ日時: 2026年08月13日 07:00:13(UTC)
- ラベル: area-System.Net.Security
概要
SslStreamのハンドシェイク処理において、新しい互換性スイッチを追加し、TlsSession経由の新しいパスをバイパスして従来のGenerateToken実装にフォールバックできるようにしました。このスイッチはデフォルトで無効(新しいパスを使用)であり、既存の動作は変わりません。
スイッチの制御方法:
- AppContext:
System.Net.Security.UseLegacySslStreamHandshake - 環境変数:
DOTNET_SYSTEM_NET_SECURITY_USELEGACYSSLSTREAMHANDSHAKE
変更内容
- LocalAppContextSwitches.cs: 互換性スイッチ
UseLegacySslStreamHandshakeを追加し、AppContextキーと環境変数のオーバーライドに対応 - SslStream.Protocol.cs:
NextMessageハンドシェイク処理に条件分岐を追加し、スイッチが有効な場合にTryNextMessageViaTlsSessionをスキップして従来パスを使用 - SslStreamRemoteExecutorTests.cs: RemoteExecutorを用いた機能テストを追加。AppContext/環境変数の切り替え、レガシ/ウェッジパスの選択検証、ハンドシェイク後のデータ転送をテスト
パフォーマンスへの影響
影響なし(互換性スイッチのみで、デフォルト動作は変わらず)
関連Issue
その他
- テストはAppContextのデフォルト値、明示的な値設定、環境変数、双方向のAppContext優先度、クライアント/サーバー両パスの選択、ハンドシェイク後のデータ転送をカバー
- 本PRはオペレーショナルロールバックメカニズムを提供し、#131315で追跡される残作業の完了を待つ間の中間対応
#132203 [release/10.0] Disable timing out EncryptedXml encoded-DTD tests
- 作成者: @github-actions[bot]
- 作成日時: 2026年08月12日 09:10:28(UTC)
- マージ日時: 2026年08月13日 08:37:18(UTC)
- ラベル: Servicing-approved area-System.Security
概要
release/10.0ブランチへのバックポート (#131955)。EncryptedXml関連のエンコードされたDTDテストのタイムアウトを無効化します。
変更内容
src/libraries/System.Security.Cryptography.Xml/tests/EncryptedXmlTests.cs: EncryptedXmlエンコードDTDテストに対するタイムアウト処理を無効化(2行追加)
パフォーマンスへの影響
影響なし
関連Issue
その他
- 本PRはオリジナルの#131955をrelease/10.0ブランチへバックポートしたもの
- テスト関連の変更であり、本体コード(ランタイム/ライブラリ実装)への影響はなし
- タイムアウト無効化の詳細な背景や理由はオリジナルPRを参照する必要があります
#132199 Disable test using gc cover on interpreter
- 作成者: @BrzVlad
- 作成日時: 2026年08月12日 06:37:09(UTC)
- マージ日時: 2026年08月13日 16:11:42(UTC)
- ラベル: area-GC-coreclr
概要
GC coverage(GCStress=4)はJITコンパイルされたコードのみをサポートするため、インタープリタ実行時に互換性がないテストにInterpreterIncompatibleメタデータを追加して、テスト実行時にスキップするようにしました。
変更内容
Runtime_129681.csproj: GC回帰テストにInterpreterIncompatibleメタデータを追加GitHub_27924.csproj: インタープリタ非互換なテストメタデータを削除Runtime_45090.csproj: インタープリタ非互換なテストメタデータを削除
パフォーマンスへの影響
影響なし
関連Issue
その他
なし
#132173 Fix FileNotFoundException in NativeAOT test
- 作成者: @Copilot
- 作成日時: 2026年08月11日 21:58:25(UTC)
- マージ日時: 2026年08月13日 00:17:55(UTC)
- ラベル: area-Infrastructure-libraries
概要
NativeAOT テスト Runtime_101046 における FileNotFoundException を修正するPRです。C# 版と IL 版のプロジェクトが同じ名前を共有していたため出力ディレクトリが競合し、NativeAOT ビルド時に TestLibrary 参照がなくなり、ラッパー生成時に例外が発生していました。C# 版をリネーム(Runtime_101046_1)し、TestLibrary 依存の ActiveIssue ゲートをネイティブアセット用の CLRTestTargetUnsupported ゲートに置き換えることで解決します。
変更内容
- Runtime_101046_1.csproj: プロジェクト名を
Runtime_101046からRuntime_101046_1に変更し、出力・中間ディレクトリの競合を解消。ActiveIssueゲートを削除し、CLRTestTargetUnsupportedゲートを適用 - Runtime_101046_1.cs: テストクラスと関連参照を更新
- Runtime_101046.ilproj: IL 版プロジェクトに
CLRTestTargetUnsupportedゲートを追加し、x64 Unix を除外(JIT の正規化処理に関する既知の問題あり)
パフォーマンスへの影響
影響なし
関連Issue
その他
- C# 版は
TestLibraryProjectReference と[ActiveIssue]を持つため、別出力ディレクトリが必須 - IL 版は x64 Unix で実行時に失敗(JIT が正規化されていない
uint16を渡すが、clang ビルドの被呼び出し側は正規化を想定)し、この問題は JIT チームの決定待機中 - NativeAOT ビルドでは参照アセンブリが不足するとラッパーが throwing body になる仕様が根本原因
#132161 Merging internal commits for release/9.0
- 作成者: @dotnet-bot
- 作成日時: 2026年08月11日 19:23:00(UTC)
- マージ日時: 2026年08月13日 01:05:59(UTC)
- ラベル: Servicing-approved area-System.Net
概要
release/9.0ブランチ向けの内部コミットマージです。バージョン更新、EventPipe診断機能の改善、HttpListener/WebSocketのバグ修正が含まれています。特にWebSocketの圧縮機能(Deflate)に関する修正が主要な変更となっています。
変更内容
- バージョン管理: eng/Versions.propsのバージョン情報を更新
- EventPipe診断: ds-rt-coreclr.hおよびds-ipc-pal-socket.cで診断ランタイム機能を改善
- HttpListener: System.Net.HttpListener内のHttpListenerRequest.Managed.csで実装を簡潔化、テストケースを調整
- WebSocket圧縮機能:
- WebSocketInflater.csに17行の修正を追加
- Strings.resxに新しい例外メッセージを追加
- WebSocketDeflateTests.csに59行の新テストケースを追加(圧縮フレームハンドリングの検証)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このPRはdotnet-botによる自動マージであり、複数のレビュワーによる承認を経た内部修正のまとめです。WebSocketの圧縮機能に関する修正には対応するテストカバレッジが追加されており、安定性向上を目的としていることが推察されます。
#132160 Merging internal commits for release/8.0
- 作成者: @dotnet-bot
- 作成日時: 2026年08月11日 19:22:32(UTC)
- マージ日時: 2026年08月13日 01:05:43(UTC)
- ラベル: Servicing-approved area-System.Net
概要
release/8.0ブランチの内部コミットをマージするリリース準備PRです。バージョン情報の更新、HttpListener/WebSocketsライブラリのバグ修正、EventPipeのネイティブコード改善が含まれています。
変更内容
- eng/Versions.props: バージョン情報の更新
- System.Net.HttpListener: HttpListenerRequestの処理ロジック簡略化、不正なクライアントリクエスト処理の強化
- System.Net.WebSockets:
- WebSocketInflater(圧縮解除)の改善(17行追加)
- リソース文字列の追加(3行)
- WebSocketデフレート圧縮関連のテスト追加(59行)
- EventPipe関連:
- ds-rt-coreclr.h: ネイティブランタイム統合の調整
- ds-ipc-pal-socket.c: IPC通信ソケット層の改善(16行追加)
パフォーマンスへの影響
影響なし。主にバグ修正とコード改善のため、パフォーマンス指標への直接的な影響は記載されていません。
関連Issue
なし
その他
- dotnet-bot による自動マージのため、作成者による詳細な概要なし
- ManickaP、steveisok によるレビュー済み
- WebSocketsの圧縮機能の堅牢性向上とHttpListener の不正リクエスト処理の強化が主要な改善
#132146 Enable hardware intrinsics for ExtractMostSignificantBits test
- 作成者: @tannergooding
- 作成日時: 2026年08月11日 16:58:40(UTC)
- マージ日時: 2026年08月13日 19:09:50(UTC)
- ラベル: area-CodeGen-coreclr
概要
ExtractMostSignificantBits JITテストプロジェクトにおいて、jitstress_isas_nohwintrinsic ストレステスト実行時にハードウェアイントリンシクスを強制的に有効にするための設定を追加しました。このテストはARM64ハードウェアイントリンシク コード生成を検証するディスアセンブリアサーションを含んでいるため、グローバルレベルのハードウェアイントリンシクス無効化を回避する必要があります。
変更内容
- src/tests/JIT/opt/InstructionCombining/ExtractMostSignificantBits.csproj:
DOTNET_EnableHWIntrinsic=1環境変数をテスト設定に追加し、nohwintrinsicストレスシナリオ下でもハードウェアイントリンシクスを有効にするよう強制
パフォーマンスへの影響
影響なし(テスト設定の変更であり、ランタイム実装への変更なし)
関連Issue
その他
- このPull Requestはブランチ保護ルール回避を目的としたものではなく、ARM64ハードウェアイントリンシク検証テストが意図通りに動作するための設定修正です
- JIT ストレステスト環境での テスト可用性を向上させます
#132130 [manual] Merge release/9.0-staging into release/9.0
- 作成者: @mrek-msft
- 作成日時: 2026年08月11日 12:29:02(UTC)
- マージ日時: 2026年08月13日 14:03:04(UTC)
- ラベル: NO-SQUASH Servicing-approved area-codeflow
概要
release/9.0-stagingブランチをrelease/9.0へマージするリリース管理用プルリクエストです。バージョン情報の更新、内部ツールの復元設定の調整、およびテストコードの修正が含まれています。
変更内容
- バージョン管理: eng/Version.Details.xml と eng/Versions.props でバージョン情報を更新
- 開発ツール: .config/dotnet-tools.json のツールバージョンを更新、eng/pipelines/common/restore-internal-tools.yml で内部ツール復元パイプラインを修正
- テスト修正:
- System.Formats.Tar: TarFile.ExtractToDirectory テストにファイルハンドリングの改善を追加
- System.Net.Security: SslStreamStreamToStream テストを改善
- System.Security.Cryptography.Xml: EncryptedXmlSample5.xml テストリソースを削除、EncryptedXmlTests.cs のテストコードを修正
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
これはrelease/9.0ブランチへの定期的なマージであり、ステージングブランチからの変更を本体に統合するリリース管理作業です。
#132129 [manual] Merge release/8.0-staging into release/8.0
- 作成者: @mrek-msft
- 作成日時: 2026年08月11日 12:21:47(UTC)
- マージ日時: 2026年08月13日 14:02:28(UTC)
- ラベル: NO-SQUASH Servicing-approved area-codeflow
概要
release/8.0-stagingブランチをrelease/8.0ブランチにマージするリリース管理用のPull Requestです。バージョン情報、ツール設定、テストコードの更新が含まれています。
変更内容
- バージョン管理: eng/Version.Details.xml、eng/Versions.props、.config/dotnet-tools.jsonの更新(依存関係とツールバージョンの同期)
- ビルドパイプライン: eng/pipelines/common/restore-internal-tools.ymlの修正
- テスト更新:
- System.Formats.Tar: TarFile.ExtractToDirectory.File.Tests.csの安定性向上
- System.Net.Security: SslStreamStreamToStreamTest.csのテスト調整
- System.Security.Cryptography.Xml: テストXMLサンプル(EncryptedXmlSample5.xml)の削除とテストコード修正(4行の実装変更)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このマージは.NET 8.0のリリース管理作業であり、ステージングブランチから本番リリースブランチへの定期的な同期となります。テスト安定性の改善が含まれています。
#132113 Deduplicate minipal header helpers
- 作成者: @mdh1418
- 作成日時: 2026年08月11日 04:14:44(UTC)
- マージ日時: 2026年08月13日 23:48:30(UTC)
- ラベル: area-PAL-coreclr
概要
minipalヘッダーヘルパー関数の重複定義を排除するリファクタリング。パフォーマンス非重視の関数(minipal_getexepath、minipal_get_current_thread_id_no_cache、minipal_set_thread_name)を専用の.cファイルに移動し、out-of-line実装として提供。パフォーマンス重視の関数はinlineをヘッダーに保持しつつ、コンパイラが非インライン化する場合のため外部フォールバック定義を配置。
変更内容
- thread.c/h: スレッド管理ヘルパーを分離。キャッシュなし版の
minipal_get_current_thread_id_no_cacheはout-of-line化。minipal_get_current_thread_idは高速パス(TLS参照)をinlineで保持 - getexepath.c/h: 実行可能ファイルパス解決ロジックをout-of-line化。minipal独自の
getauxval能力チェックをminipalconfig.hに追加 - cpuid.c/h: CPUID フォールバックの外部定義を提供。ソース名は
__cpuid/__cpuidexを保持しつつ、linkerシンボルはminipal_cpuid/minipal_cpuidexに変更(アセンブラー名ラベルを使用) - ospagesize.c/h: 制御マクロ
MINIPAL_OSPAGESIZE_*を導入してinline/out-of-line定義を切り替え - entrypoints.c/h:
minipal_resolve_dllimportをout-of-line化 - CMakeLists.txt: minipal build に新規
.cソースを追加。System.IO.Compression.Nativeがminipalライブラリをリンク
パフォーマンスへの影響
改善点:
- 複数TU(Translation Unit)での重複定義排除によるコード量削減
- 非インライン時の外部シンボル呼び出しで、スタックトレース可視性が向上
- TLS定義の一元化
懸念点:
- 低最適化レベル(-O0)でのコンパイラ判断によるinline非適用時に、新規の外部呼び出しが発生する可能性(ただし設計意図)
関連Issue
#131991(PR内討論から派生)
その他
- C inline linkage パターン: ヘッダーに
inline定義を配置し、対応する.cファイルで#include後にextern再宣言することで、各TUでのstaticコピーを回避しつつ外部フォールバック定義を提供 - 予約シンボル対策:
__cpuid/__cpuidexは標準ライブラリと競合する可能性があるため、アセンブラー名ラベルでminipal_cpuid/minipal_cpuidexに割り当て _GNU_SOURCE局所化:minipal_set_thread_name移動により、GNU特有の宣言要件をthread.cに限定- 検証: GCC/Clang両環境で-O0時の外部定義呼び出し、最適化時のinline有効性、C++ C-linkage互換性、shippedアーカイブのシンボル確認済み
#132108 ILVerify: Use case-insensitive comparer for assembly binding cache
- 作成者: @jkotas
- 作成日時: 2026年08月11日 01:56:33(UTC)
- マージ日時: 2026年08月13日 21:18:01(UTC)
- ラベル: area-Tools-ILVerification
概要
ILVerifyのアセンブリバインディングキャッシュをケース非依存にして、ランタイムのアセンブリバインディング動作と一致させます。--system-module引数のケースの不一致により同じシステムモジュールが複数回ロードされる問題を修正しています。
変更内容
src/coreclr/tools/ILVerify/Program.cs: アセンブリバインディングキャッシュの辞書キーにケース非依存な比較器を適用(+1/-1)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この変更はILVerifyツール内部の実装変更であり、公開APIへの影響はありません。ランタイムのアセンブリバインディング動作(ケース非依存)と同期させることで、キャッシュの重複ロードを防止します。
#131988 Add Runtime Async profiler API coverage
- 作成者: @tommcdon
- 作成日時: 2026年08月07日 04:21:13(UTC)
- マージ日時: 2026年08月13日 15:56:11(UTC)
- ラベル: area-Diagnostics-coreclr
概要
Runtime Async プロファイラー機能のテストカバレッジを拡充するPRです。新たに2つのマネージドテストプロジェクト(runtimeasyncapis、runtimeasynctypes)と対応するネイティブプロファイラー実装を追加し、以下の機能をカバーしています:
- メタデータレス継続と配列の
ClassLoadコールバック GetClassIDInfo/GetClassIDInfo2/GetClassLayoutの拒否動作- JIT コールバックと FunctionID/ネイティブIP の相互往来、IL-ネイティブマッピング
- 例外検索、アンワインド、キャッチャーのコールバック
- GC 参照トラバーサル
Windows x64 および Linux x64 で検証済みです。
変更内容
マネージドテストプロジェクト追加
runtimeasyncapis.cs/csproj: JIT/例外シナリオを駆動する実行ファイル(DOTNET_RuntimeAsync=1で実行)runtimeasynctypes.cs/csproj: GC/継続シナリオを駆動する実行ファイル
ネイティブプロファイラー追加
RuntimeAsyncApisProfiler: JIT/例外/IP マッピング関連コールバックの観測実装RuntimeAsyncTypesProfiler: ClassLoad/GC グラフトラバーサル関連コールバックの観測実装
ビルド構成の更新
- CMakeLists.txt に新しいプロファイラーソースをコンパイル対象に追加
- classfactory.cpp に新プロファイラーのCLSID ルーティングを統合
パフォーマンスへの影響
影響なし(テスト機能の追加のみ)
関連Issue
その他
レビュー指摘事項:複数のプロファイラーコールバック実装で SHUTDOWNGUARD() マクロの使用が推奨されています。これはシャットダウン中/後のプロファイラー状態へのアクセスを保護するためのベストプラクティスであり、今後の改善の参考になります。
#131976 [LoongArch64] Fix some crash CoreRoot tests under --gcstresslevel=4 like Methodical_{r2|d2}.
- 作成者: @LuckyXu-HF
- 作成日時: 2026年08月07日 01:41:40(UTC)
- マージ日時: 2026年08月13日 14:12:40(UTC)
- ラベル: area-CodeGen-coreclr community-contribution arch-loongarch64
概要
LoongArch64アーキテクチャにおいて、GCストレステスト(--gcstresslevel=4)実行時にコアランタイムテストがクラッシュする問題を修正しました。JIT エミッター内の命令範囲チェックと、エピログ処理における大型フレームのREG_FPBASEアンワインドデータ記録の不正確さを改正し、併せてネイティブAoT実装の時代遅れのコードとコメントを更新しました。
変更内容
- JIT エミッター関連(emitloongarch64.cpp):
emitInsMayWriteToGCReg()の命令範囲を修正し、GC対象レジスタへの書き込み判定の精度を向上 - 命令定義(instrsloongarch64.h): 命令定義の更新・整備
- コード生成(codegenloongarch64.cpp): エピログ処理でREG_FPBASEのアンワインドデータ記録を改正
- ネイティブAoT ランタイム(複数の.S、.inc ファイル): アセンブリコード内の時代遅れなコード・コメントを改善
- GC情報デコーダー(gcinfodecoder.cpp): アンワインド情報処理の微調整
パフォーマンスへの影響
影響なし(バグ修正・安定性向上の変更)
関連Issue
その他
- LoongArch64特有のバグ修正であり、他のアーキテクチャへの影響なし
- ガベージコレクション処理の安定性向上を目的とした変更
#131966 Remove Signature consumer documentation
- 作成者: @max-charlamb
- 作成日時: 2026年08月06日 20:57:19(UTC)
- マージ日時: 2026年08月13日 15:25:01(UTC)
- ラベル: area-Diagnostics-cdac
概要
Signature契約のドキュメンテーションから、ダウンストリームコンシューマーの説明を削除するドキュメント更新です。
変更内容
docs/design/datacontracts/Signature.md: ダウンストリームコンシューマーに関する説明を削除(6行削除)
パフォーマンスへの影響
影響なし
関連Issue
その他
なし
#131783 Replace SHA-1/RSA-1024 test data with SHA-256/RSA-2048 equivalents
- 作成者: @joshuajyue
- 作成日時: 2026年08月04日 02:03:51(UTC)
- マージ日時: 2026年08月13日 07:53:39(UTC)
- ラベル: area-System.Security
概要
Fedora/CentOS Streamなどの環境がSHA-1署名の検証を拒否するため、PKCS#7テストデータをSHA-1/RSA-1024からSHA-256/RSA-2048へ移行するPRです。これにより、29個のテストが[ConditionalFact(SupportsRsaSha1Signatures)]による条件付きスキップから解放され、全プラットフォームで実行可能になります。SHA-1検証の互換性テストは新たに2つの明示的なテストケースで担保されます。
変更内容
- テストドキュメント再生成: 8つのSHA-256/RSA-2048署名CMS文書を新規追加(単一署名、カウンター署名、複数カウンター署名など複数のパターン)
- 条件付きテストの削減: SHA-1専用だった29個のテストをSHA-256ドキュメントで無条件化し、プラットフォーム依存をなくす
- SHA-1互換性テストの明示化:
CheckSignature_Pkcs1_Rsa1024WithSha1およびCheckSignature_Pkcs1_Rsa1024WithSha1_CounterSignedの2つのテストを追加し、SHA-1検証を設計上カバー - 新しい機能プローブ追加:
SupportsEcdsaSha1Signaturesを追加(従来はRSA-SHA1プローブに結合されていたECDSA-SHA1テストを分離) - ヘルパー関数拡張:
CheckSignedEncryptedに復号化証明書をオプションパラメータ化し、複数の暗号文書フォーマットに対応 - PFX再暗号化:
RSA2048Sha256KeyTransfer1のPFXをRC2から3DESで再暗号化(Android互換性向上) - 不要なドキュメント削除: SHA-1専用ドキュメント3件を削除
パフォーマンスへの影響
影響なし
関連Issue
その他
- テスト実行結果: .NET 11.0-windows 961パス / 0失敗、.NET 4.8.1 388パス / 0失敗
- Fedora 44での検証: 933パス、20件スキップ(SHA-1関連1件、その他関連なし)
- 生成方法: テストドキュメントはWindows/.NET Frameworkの
crypt32で生成され、ContentType属性を含む標準エンコーディングを保証。ただしNoSignatureプライマリ署名者の場合は.NET Framework実装を使用してハイブリッド生成 - 残存する条件付きテスト: SHA-1設計上カバー用の4テストのみ(
CheckSignature_Pkcs1_Rsa1024WithSha1、カウンター署名版、CheckSignature_SHA1WithRSA、AddCounterSigner_ECDSA_Sha1)
#131197 Unify sync/async Options validation contract
- 作成者: @oroztocil
- 作成日時: 2026年07月22日 09:22:02(UTC)
- マージ日時: 2026年08月13日 16:10:16(UTC)
- ラベル: area-Extensions-Options
概要
Microsoft.Extensions.OptionsとMicrosoft.Extensions.Hostingの同期/非同期オプション検証を統一するPRです。IAsyncValidateOptions<TOptions>をIValidateOptions<TOptions>から派生させることで、両方の検証方式を単一のバリデータコレクションで管理します。スタートアップ検証はIStartupValidator(互換性ルート)とIAsyncStartupValidator(新規の非同期専用)で独立した経路を保持します。
変更内容
- 統一されたオプション検証契約:
IAsyncValidateOptions<TOptions>がIValidateOptions<TOptions>から継承。すべてのバリデータはIValidateOptions<TOptions>で登録・列挙され、非同期パスがIAsyncValidateOptions<TOptions>の有無を検出してValidateAsyncを呼び出します。 - 非同期専用バリデータ: 同期呼び出し時は
Skipまたはエラー結果を返し、sync-over-asyncを避けます。 - スタートアップ検証ルーティング:
ValidateOnStartの組み込みバリデータは両方の互換性契約で同じシングルトンインスタンスとして公開。カスタム同期IStartupValidatorは優先度を保持。それ以外の場合、登録されたIAsyncStartupValidatorすべてを実行して失敗を集約。 OptionsFactory<TOptions>: 非同期作成パスを追加。スタートアップ検証済み値をキャッシュにシード化し、デフォルト名のIOptions<TOptions>スロットに供給。IStartupValidator:SYSLIB0066で廃止。- DataAnnotations: 統一コレクションに参加しながら同期動作と名前付きオプションフィルタリングを保持。
パフォーマンスへの影響
スタートアップ検証がHostedService解決前に実行されるよう順序変更されたため、コンストラクタで検証済み値を観察可能に。スタートアップ失敗時のStopAsyncでの未解決HostedServiceコレクション参照を回避。具体的な数値は記載なし。
関連Issue
その他
重要な制限事項:
IOptions<TOptions>.Valueはスタートアップ検証後のシード値を提供可能。非同期専用バリデータがある場合、スタートアップ前の同期アクセスは明示的に失敗。IOptionsSnapshot<TOptions>とIOptionsMonitor<TOptions>(設定リロード)は依然同期のまま。非同期バリデータがあると明示的に失敗。IAsyncValidateOptions<TOptions>のみで登録するのは無効(IValidateOptions<TOptions>を列挙するため)。IValidateOptions<TOptions>またはOptionsBuilder<TOptions>.Validate<TValidator>()を使用。- 新しいスタートアップバリデータは
IAsyncStartupValidatorのみで登録すべき。カスタムIStartupValidatorは非同期スタートアップルートを意図的に置き換え。 - 非同期スタートアップシード化は組み込み
OptionsFactory<TOptions>のみサポート。
広範なテス
#130097 Diagnose LibraryImport/[GeneratedComInterface] with restricted CCW/RCW options
- 作成者: @Copilot
- 作成日時: 2026年07月01日 19:48:10(UTC)
- マージ日時: 2026年08月13日 18:03:38(UTC)
- ラベル: area-Interop-coreclr
概要
[LibraryImport]および[GeneratedComInterface]でマーシャリング方向に対応しないComInterfaceOptionsが指定された場合、コンパイル時に診断エラーSYSLIB1051を発行するようにしました。従来は無言でランタイムエラーが発生していましたが、ビルド時に問題を検出できるようになります。
// 例: RCW(ComObjectWrapper)が必要ですが、ManagedObjectWrapperのみ指定
[LibraryImport("dxgi")]
public static partial void CreateDXGIFactory2(uint flags, in Guid riid, out IDXGIFactory6 ppFactory);
[GeneratedComInterface(Options = ComInterfaceOptions.ManagedObjectWrapper)]
[Guid("...")]
public partial interface IDXGIFactory6 { }
// エラー: SYSLIB1051 - ComObjectWrapperが指定されていません
変更内容
NativeMarshallingAttributeInfo—SupportsManagedToUnmanagedMarshalling/SupportsUnmanagedToManagedMarshalling(初期値true)の2つのinitプロパティを追加。マーシャラーがどの方向をサポートするかを示します。ComInterfaceMarshallingInfoProvider—[GeneratedComInterface(Options = …)]からComInterfaceOptionsを読み込み、対応フラグを設定(内部的にはintとして読込、0x1=CCW、0x2=RCW)。AttributedMarshallingModelGeneratorResolver.CreateCustomNativeTypeMarshaller— マーシャリング方向が必要なオプションでサポートされているかを検証し、未サポートの場合はSYSLIB1051エラーを返す。- リソース文字列 —
Strings.resxに新規の2つエラーメッセージと対応する多言語.xlfファイルの更新。 - ユニットテスト —
LibraryImportGenerator.UnitTests/CompileFails.csとComInterfaceGenerator.Unit.Tests/CompileFails.csに、各マーシャリング方向と制限オプションのカバレッジを追加。
パフォーマンスへの影響
影響なし
関連Issue
その他
- Copilotのレビューコメント(抑制)指摘:不正な
ComInterfaceOptions値(未知のビット)が指定された場合、両方のフラグがfalseとなり誤解を招く可能性があります。 - ジェネレータのテストカバレッジは充実していますが、エッジケース(マスク外のビット値)への対応は現時点では実装されていません。