注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #132427 [release/11.0-rc1] Add structural union type classifier
- #132426 Clarify that runtime-async suspension points are forbidden in handlers, not try blocks
- #132411 [System.Text.Json] Add structural union type classifier
- #132408 NativeAOT: remove BOM from generated source/response files
- #132405 Add merge automation for 11.0rc1/rc2 release branches
- #132402 Use stable net/netframework folders for the mono SDK tasks
- #132400 Fix PAL QueryThreadCycleTime test format macros
- #132398 Use GC.AllocateUninitializedArray in File.ReadAllBytes[Async]
- #132376 Upgrade gh-aw compiler to v0.86.2
- #132367 Make the Nullable<T>.Value exception message actionable
- #132363 [wasm] Bump chrome for testing - linux: 151.0.7922.137, windows: 152.0.7977.42, mac: 152.0.7977.42
- #132274 Fix DeflateEncoder.GetMaxCompressedLength conservative bound
- #132259 JIT: fill two gaps in wasm codegen
- #132168 Merge SIMD test sources into grouped runners
- #132047 Enable Azure Pipelines reporter in paltests.proj
- #131771 Add typed self-counting WASM sections
- #129853 fix shutdown tests
#132427 [release/11.0-rc1] Add structural union type classifier
- 作成者: @eiriktsarpalis
- 作成日時: 2026年08月17日 19:34:19(UTC)
- マージ日時: 2026年08月17日 23:07:43(UTC)
- ラベル: Servicing-approved area-System.Text.Json
概要
C# Union型のSTJ(System.Text.Json)対応を完成させるための重要なコンポーネントとして、JsonUnionTypeStructuralClassifier の公開API実装を.NET 11-RC1へバックポートしています。このAPIにより、すべてJSONオブジェクトとしてシリアライズされるUnion型ケースについて、オブジェクトのプロパティ名に基づいた構造的な判別が可能になります。
変更内容
- 新規公開API:
JsonUnionTypeStructuralClassifierおよび補助的なValueBitArray、UTF-8辞書ルックアップヘルパーを追加 - 値形状(JsonValueType)の拡張:
JsonValueType.Anyを導入し、カスタムコンバーターが全JSON値形状をサポートするものとして保守的に扱う - Union値形状分類の更新: ランタイムとソースジェネレーター間の曖昧性検出を統一化し、ネストされたUnionの処理に対応
- リソース・メッセージ更新: 構造分類器の設定およびサポート外シナリオ向けにエラーメッセージを追加
- 組み込みコンバーターの宣言: Object/Array/Collection/Node型のコンバーターに適切な
JsonValueTypeを明示的に指定 - テスト拡充: リフレクション/ソースジェン両モードで構造分類動作と更新された診断をカバー
パフォーマンスへの影響
影響なし
関連Issue
その他
- リスク評価:中。公開API追加のみで既存APIの変更なし
- 互換性:破壊的変更なし。.NET 11の承認済みAPIのバックポート
- テストカバレッジ:完全に含まれており、リグレッションは報告されていません
- Copilotのレビューコメント:ドキュメント内で"POCO"の用語をオブジェクトシリアライズケースの動作説明に置き換えることが推奨されています
#132426 Clarify that runtime-async suspension points are forbidden in handlers, not try blocks
- 作成者: @pcshrosbree
- 作成日時: 2026年08月17日 19:28:55(UTC)
- マージ日時: 2026年08月17日 21:29:00(UTC)
- ラベル: area-VM-coreclr community-contribution
概要
docs/design/specs/runtime-async.mdの制限事項に関する曖昧な表現を明確化するドキュメント更新です。
変更前の記述「Suspension points may not appear in exception handling blocks」は、保護されたtryブロック全体を指すと誤読される可能性がありましたが、意図は例外ハンドラー(catch/filter/finally/fault)内のみを対象としています。
変更により、tryブロック内のawaitは許可され、catch/finallyハンドラー内のawaitのみが禁止されることが明確になります。ランタイム自体のテスト(simple-eh.cs)でもtry内でのawaitが使用されており、SDKの実装でも同様に対応されています。
変更内容
docs/design/specs/runtime-async.md: 制限事項の説明を修正し、「exception handling blocks」を「handler blocks」に明確化。ECMA-335で定義される4つのハンドラー種別(catch、filter、finally、fault)を明記。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- 変更はドキュメントのみで、コード実装の変更なし
- IL rewriter、profiler、analyzerの実装者にとって重要な曖昧性の解消
- 補足として、ハンドラー内の
awaitはコンパイラにより自動的にハンドラーの外に低減され、メソッドはMethodImplOptions.Asyncを保持することが実装の事実として存在(今回の変更では未記載)
#132411 [System.Text.Json] Add structural union type classifier
- 作成者: @eiriktsarpalis
- 作成日時: 2026年08月17日 14:13:50(UTC)
- マージ日時: 2026年08月17日 19:25:23(UTC)
- ラベル: area-System.Text.Json
概要
System.Text.Jsonに公開API JsonUnionTypeStructuralClassifier を追加し、JSONトークン種別と同一レベルのオブジェクトプロパティ名に基づいてユニオン型のケースを分類します。分類器の構築時に曖昧または非サポートの設定を拒否し、ランタイムとソースジェネレータの変換メタデータと診断を統一します。最大64を超えるオブジェクトケースを含むマルチステージの候補除外を備えた包括的なエンドツーエンドカバレッジが実装されています。
変更内容
- 新規公開API:
JsonUnionTypeStructuralClassifierクラス(742行)を追加し、ユニオン型のケース分類ロジックを実装 - ヘルパー型:
ValueBitArray(91行)を追加し、最大64を超えるケースに対応するビット配列ユーティリティを実装 - ソースジェネレータ:
JsonSourceGenerator.Parser.csでパーサロジックを更新(+23/-24) - エラーメッセージ:
Strings.resxに15個の新しい診断メッセージを追加 - テスト整備: 既存テスト(
StructuralJsonTypeClassifierTests.cs)をテスト専用プロトタイプから汎用エンドツーエンドカバレッジに刷新(+927/-648)、カバレッジ率99.78% - 既存コード調整: ユニオン変換関連の実装を整理・簡潔化
パフォーマンスへの影響
影響なし
関連Issue
その他
- 65,954テスト(システム全体)合格、エラー0件
JsonUnionTypeStructuralClassifier.csカバレッジ454/455行(99.78%)、ValueBitArray.cs41/41行(100%)- 公開ユニオンデシリアライゼーションが分類器に転送しないトークン種別の防御的デフォルト以外は全カバレッジ達成
- 参照アセンブリ(ref)に6行の公開API定義を追加
#132408 NativeAOT: remove BOM from generated source/response files
- 作成者: @corngood
- 作成日時: 2026年08月17日 13:24:49(UTC)
- マージ日時: 2026年08月17日 22:18:11(UTC)
- ラベル: community-contribution area-NativeAOT-coreclr
概要
NativeAOT のソースコードおよびレスポンスファイルから BOM(Byte Order Mark)を削除する変更です。レスポンスファイルが BOM で始まり、その後にフラグが続く場合、clang がそれをファイル名として解釈し、no such file or directory: '<feff>-fuse-ld=bfd' というエラーが発生していました。WriteLinesToFile が UTF-8 BOM なしを使用するように修正されています。
変更内容
- src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets (+2/-2)
- レスポンスファイルとソースファイル生成時の encoding 属性を削除
- 結果として UTF-8 BOM なしでファイルが生成されるようになります
パフォーマンスへの影響
影響なし
関連Issue
その他
- 修正対象リビジョン: 4832002fd28748322015287b8fb3b8126334865f
- Unix プラットフォーム(特に clang ツールチェーン)の NativeAOT ビルドシステムに関連する修正です
#132405 Add merge automation for 11.0rc1/rc2 release branches
- 作成者: @akoeplinger
- 作成日時: 2026年08月17日 13:06:40(UTC)
- マージ日時: 2026年08月17日 13:19:19(UTC)
- ラベル: area-Meta
概要
.NET 11.0のリリース候補版ブランチ(rc1/rc2)から本番リリースブランチへの自動マージ設定を追加します。既存の自動化フローを11.0リリースに拡張するもので、release/11.0-rc1とrelease/11.0-rc2からrelease/11.0への自動マージを有効にします。
変更内容
- github-merge-flow.jsonc:
release/11.0-rc1→release/11.0のマージ自動化エントリを追加 - github-merge-flow.jsonc:
release/11.0-rc2→release/11.0のマージ自動化エントリを追加
パフォーマンスへの影響
影響なし(ビルド構成の変更のみ)
関連Issue
なし
その他
この変更はリリース管理の自動化に関するものであり、開発者のコード実装には直接的な影響を与えません。GitHub Actions等のマージワークフローの設定変更です。
#132402 Use stable net/netframework folders for the mono SDK tasks
- 作成者: @akoeplinger
- 作成日時: 2026年08月17日 11:18:01(UTC)
- マージ日時: 2026年08月17日 16:14:22(UTC)
- ラベル: area-Build-mono
概要
Mono/WebAssembly SDK のタスク アセンブリを、TFM バージョン固有のフォルダ(tasks/net11.0、tasks/net472 など)から安定した version-independent フォルダ(.NET Core は net、.NET Framework は netframework)へ移行するもの。これにより、.NET Core TFM バージョンアップ時の調整作業が不要になります。対象は WasmAppBuilder、WasmBuildTasks、MonoAOTCompiler、MonoTargetsTasks、LibraryBuilder、MobileBuildTasks、AppleAppBuilder、AndroidAppBuilder、HelixTestTasks、WorkloadBuildTasks の 10 プロジェクト。
変更内容
- タスク プロジェクトの OutputPath/IntermediateOutputPath オーバーライド: 各タスク
.csprojで出力フォルダを安定したnet/netframeworkに指定 - SDK テンプレート ファイルの静的化:
.inテンプレートファイルからテンプレート トークン(TFM)を除去し、パッケージ プロジェクト(.pkgproj)からGenerateFileFromTemplateステップを削除 - SDK props/targets の更新: タスク解決パスを新しい安定フォルダから参照するよう変更(
Sdk.targets、MonoTargetsTasks.props、Sdk.propsなど) - ローカル ビルド props の更新:
WasmApp.LocalBuild.props、AppleBuild.LocalBuild.propsで新しいフォルダ構造に対応 - ドキュメント更新: README ファイルのパス例を
tasks/net/に修正 - 潜在的なバグ修正:
NetFrameworkToolCurrentが空の場合の誤判定対策(source-only ビルド時の multi-targeting プロジェクトで不正なパス追加が発生)WasmBuildTasks.dllの実際のパッケージ場所とプロパティ参照の不整合を解決- 削除済みの
TestExclusionListTasksへの stale な参照を削除
パフォーマンスへの影響
影響なし
関連Issue
その他
WorkloadBuildTasksは TFM-selected consumption 用に pinned なnet8.0出力フォルダを別途保持- すべてのタスク プロジェクトが通常ビルド/source-only モード両方で正常にビルドされることを確認
- すべての
*TasksAssemblyPathプロパティが実在するファイルに解決されることを検証済み - GitHub Copilot の支援で作成されたプルリクエスト
#132400 Fix PAL QueryThreadCycleTime test format macros
- 作成者: @Copilot
- 作成日時: 2026年08月17日 11:10:34(UTC)
- マージ日時: 2026年08月17日 22:49:45(UTC)
- ラベル: area-Infrastructure
概要
PAL(Platform Abstraction Layer)の QueryThreadCycleTime テスト内のフォーマットマクロを修正します。テスト出力のフォーマット定義に関する問題を解決するための内部テストコード修正です。
変更内容
- src/coreclr/pal/tests/palsuite/threading/QueryThreadCycleTime/test1/test1.cpp
- テスト出力で使用されているフォーマットマクロの修正(5行追加、4行削除)
パフォーマンスへの影響
影響なし(テストコードの修正)
関連Issue
その他
- PAL(Platform Abstraction Layer)の内部テストコード修正であり、ランタイムの本体機能には影響なし
- テスト実行時の出力フォーマットに関する修正と考えられます
#132398 Use GC.AllocateUninitializedArray in File.ReadAllBytes[Async]
- 作成者: @Copilot
- 作成日時: 2026年08月17日 10:45:33(UTC)
- マージ日時: 2026年08月17日 16:21:08(UTC)
- ラベル: area-System.IO tenet-performance
概要
File.ReadAllBytes と File.ReadAllBytesAsync が、読み込みループで即座に上書きされる不要なゼロ初期化コストを削減するため、GC.AllocateUninitializedArray<byte>(count) を使用するよう最適化されました。
変更内容
- src/libraries/System.Private.CoreLib/src/System/IO/File.cs:
File.ReadAllBytesとFile.InternalReadAllBytesAsyncのバッファ割り当てをnew byte[count]からGC.AllocateUninitializedArray<byte>(count)に変更 - 読み込みループが常にバッファ全体を上書きするため、初期化されていないメモリが外部に露出することはなく、初期化されていないメモリが観測される可能性はありません
パフォーマンスへの影響
大規模ファイル読み込みで顕著な改善:
- 10 MBの同期読み込み: 14%高速化 (~1.58秒 → ~1.36秒)
- 10 MBの非同期読み込み: 24%高速化 (~1.82秒 → ~1.39秒)
- 小規模ファイル (1KB~100KB): 誤差範囲内
GC.AllocateUninitializedArray は内部サイズ閾値以下のメモリはゼロ初期化にフォールバックするため、大規模読み込みのみが恩恵を受けます。
関連Issue
なし
その他
- APIドキュメント注記: PR概要では
GC.GetUninitializedArrayと記載されていますが、実際のAPIはGC.AllocateUninitializedArray<T>です - 本PRはGitHub Copilotにより作成されました
#132376 Upgrade gh-aw compiler to v0.86.2
- 作成者: @vitek-karas
- 作成日時: 2026年08月16日 20:39:55(UTC)
- マージ日時: 2026年08月17日 06:31:18(UTC)
- ラベル: area-skills
概要
gh-awコンパイラとセットアップアクションをv0.85.4からv0.86.2にアップグレードしました。主な目的は、Copilot CLIツールキャッシュヒット時のPATH解決の問題を修正することです。v0.85.4では絶対パス/usr/local/bin/copilotが呼び出されていましたが、キャッシュ時には存在せずエラーが発生していました。v0.86.2ではPATHからcopilotを解決し、${RUNNER_TEMP}/gh-aw/bin/copilot下にステージングして実行するように改善されました。
変更内容
.github/aw/actions-lock.json:github/gh-aw-actions/setupをv0.86.2にアップグレード、SHA更新- 6つのエージェントワークフロー
.lock.ymlファイル全て再生成:holistic-review.lock.ymlclosed-issue-reference-check.lock.ymlci-failure-scan.lock.yml(CI外ループ失敗スキャナ)ci-failure-scan-feedback.lock.ymlbreaking-change-doc.lock.ymlci-failure-fix.lock.yml
各ワークフローはgh-aw v0.86.2のコンパイル出力により再生成され、Copilot CLIのステージング処理、MCP gateway環境変数、プロンプト生成フローが更新されました。
パフォーマンスへの影響
影響なし
関連Issue
その他
検証方法: gh aw compile --schedule-seed dotnet/runtime --no-emit --validate --zizmor --poutineで完全コンパイルを実行し、同一の生成ファイルであることを確認
#132367 Make the Nullable<T>.Value exception message actionable
- 作成者: @jeffhandley
- 作成日時: 2026年08月16日 06:42:49(UTC)
- マージ日時: 2026年08月17日 00:53:19(UTC)
- ラベル: area-System.Runtime
概要
Nullable<T>.Value プロパティアクセス時に値がない場合にスローされる例外メッセージを改善しました。メッセージを「Nullable object must have a value.」から「Cannot read the Value property of a Nullable object that has no value. Check HasValue before reading Value.」に変更し、問題の根本原因(.HasValue チェック不足)と解決方法を明確に示すようにしました。
変更内容
src/libraries/System.Private.CoreLib/src/Resources/Strings.resx:InvalidOperation_NoValueリソース文字列の内容を更新src/coreclr/nativeaot/System.Private.Reflection.Execution/src/Resources/Strings.resx: NativeAOT版の同一リソース文字列を更新- リソース名 (
InvalidOperation_NoValue) は変更なし。Nullable<T>.Valueゲッターとそのシムでのみ使用されるため、他の呼び出しサイトへの影響なし
パフォーマンスへの影響
影響なし
関連Issue
その他
- 例外メッセージテキストの変更は破壊的変更に該当しない(Framework Design Guidelines に従い、ユーザーは例外メッセージのテキストに依存しないべき)
- リソース名は変更されていないため、
SR.InvalidOperation_NoValueの呼び出しは継続して機能 - Mono は CoreLib の
.resxを共有するため、追加の変更は不要 - 既存テストでメッセージテキストをアサートしているものはなし
#132363 [wasm] Bump chrome for testing - linux: 151.0.7922.137, windows: 152.0.7977.42, mac: 152.0.7977.42
- 作成者: @github-actions[bot]
- 作成日時: 2026年08月16日 00:06:37(UTC)
- マージ日時: 2026年08月17日 07:26:13(UTC)
- ラベル: arch-wasm area-Infrastructure-mono
概要
WebAssembly テスト環境で使用するChrome for Testingのバージョンを更新します。Linux環境を151.0.7922.137に、Windows/Mac環境を152.0.7977.42に引き上げるバージョン管理の更新です。
変更内容
- eng/testing/BrowserVersions.props: Chrome for Testingのバージョン指定を更新
- Linux: 151.0.7922.137
- Windows: 152.0.7977.42
- Mac: 152.0.7977.42
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
github-actions[bot]による自動更新のPull Requestです。
#132274 Fix DeflateEncoder.GetMaxCompressedLength conservative bound
- 作成者: @BrzVlad
- 作成日時: 2026年08月13日 12:58:57(UTC)
- マージ日時: 2026年08月17日 06:12:47(UTC)
- ラベル: area-System.IO.Compression
概要
DeflateEncoderのGetMaxCompressedLengthメソッドが不正確な上限を返していた問題を修正しました。従来のcompressBound()ベースの実装は、デフォルト設定での圧縮を想定していましたが、.NETの実装は品質レベルやウィンドウサイズなどのカスタム設定をサポートしています。zlib-ngのdeflateBound()に由来するマネージド実装に置き換え、すべてのサポート対象の圧縮設定に対応する保守的な上限を計算するようにしました。
変更内容
- DeflateEncoder.cs:
GetMaxCompressedLengthの実装をzlib-ng由来の公式を使用した保守的な上限計算に置き換え。従来のcompressBound()ベースから、すべての圧縮設定に対応可能なマネージド実装へ変更。 - ZLibEncoder.cs: メソッドコメントを更新し、戻り値が上限値であることを明記。
- GZipEncoder.cs: gzipオーバーヘッドに関するコメントを修正。
- EncoderDecoderTestBase.cs: モバイルプラットフォーム向けのスキップを削除し、
RoundTrip_AllWindowLogsテストを再度有効化。
パフォーマンスへの影響
影響なし。本修正は圧縮の正確性を改善するもので、実際の圧縮パフォーマンスには影響しません。
関連Issue
その他
- モバイルプラットフォーム(iOS、macCatalyst等)での
CompressメソッドがDestinationTooSmallを返す問題を解決します。 - zlib-ng(一部プラットフォーム)とzlib(モバイルプラットフォーム)の両方に対応する保守的な上限を採用しているため、プラットフォーム間での互換性が向上します。
- ただし、プラットフォーム側のzlib実装が変更された場合、ハードコードされた上限値が乖離するリスクは残存します。
#132259 JIT: fill two gaps in wasm codegen
- 作成者: @AndyAyersMS
- 作成日時: 2026年08月13日 02:13:56(UTC)
- マージ日時: 2026年08月17日 17:59:45(UTC)
- ラベル: arch-wasm area-CodeGen-coreclr
概要
WebAssembly JIT バックエンドにおける2つのコード生成ギャップを修正しました。genReturnSuspendでretbuf戻り値とVector128戻り値の処理を追加し、genEmitHelperCallの管理スロー ヘルパーシグネチャテーブルを拡張して、未サポート組み込み関数と範囲外イミディエートパスから到達可能な全ヘルパーに対応させています。
変更内容
- src/coreclr/jit/codegenwasm.cpp
genReturnSuspend: バッファ経由で戻る場合(wasm関数の戻り値がない)にダミー戻り値をプッシュしないよう修正genReturnSuspend: Vector128<T>(v128)戻り値の処理を追加genEmitHelperCall: 4つしかなかった引数なし管理スロー ヘルパーシグネチャを拡張し、既存のJITパスから到達可能な全ヘルパーに対応
パフォーマンスへの影響
影響なし(コード生成正確性の修正)
関連Issue
なし
その他
System.Private.Xmlをクロスジェニング中に、XmlTextReaderImpl.ParseTextAsyncがバッファ経由でValueTuple`4を戻す場合にこの問題が発見されました。この修正により、WebAssemblyプラットフォーム上での非同期メソッド実行時のコード生成エラーが防止されます。
#132168 Merge SIMD test sources into grouped runners
- 作成者: @jkoritzinsky
- 作成日時: 2026年08月11日 20:46:34(UTC)
- マージ日時: 2026年08月17日 23:26:37(UTC)
- ラベル: area-CodeGen-coreclr
概要
SIMDテストを複数の個別プロジェクトから最適化/非最適化の統合ランナーアセンブリに統合。ソースglob経由でC#ソースを両ランナーに直接コンパイルし、テスト数を削減しつつ機能を保持。従来のコンパイル時TARGET_32BIT分岐をプラットフォーム条件付きVectorConvertテストに置き換えて、テスト構造を簡潔化。
変更内容
- テストソース修正: SIMD C#テストファイル約60個に名前空間をラッピング(個別テスト型の分離)
- プロジェクトファイル削除:
*_r.csprojと*_ro.csproj(最適化/非最適化別プロジェクト)を廃止 - ランナー統合:
JIT.SIMD_r(実行時)とJIT.SIMD_ro(読み取り専用)の2つの統合ランナーに統合 - 共通基盤: ベクターヘルパーを共通基底クラスで共有、優先度メタデータと依存ネイティブテストを保持
- プラットフォーム条件:
VectorConvertテストでplatform-conditionalな条件付きコンパイル導入
パフォーマンスへの影響
影響なし(テスト実行ロジックは変更なく、プロジェクト構成の整理のみ)
関連Issue
なし
その他
- テスト検証:
src\tests\build.cmd -Dir JIT\SIMD x64 Checked -Priority 1で両ランナー共に59/59テスト合格 - 破壊的変更なし: 公開API無関係の内部テスト構造の整理
#132047 Enable Azure Pipelines reporter in paltests.proj
- 作成者: @jkoritzinsky
- 作成日時: 2026年08月09日 04:09:48(UTC)
- マージ日時: 2026年08月17日 20:40:00(UTC)
- ラベル: area-Infrastructure
概要
CoreCLR PALTests Helix レグでAzure Pipelines テストレポーターを有効にし、ビルド分析機能を強化する変更です。EnableAzurePipelinesReporter MSBuildプロパティを設定して、テスト失敗の分析と可視化を改善します。
変更内容
src/coreclr/scripts/paltests.proj:EnableAzurePipelinesReporterMSBuildプロパティを有効化(+1行)
パフォーマンスへの影響
影響なし
関連Issue
その他
なし
#131771 Add typed self-counting WASM sections
- 作成者: @jtschuster
- 作成日時: 2026年08月03日 20:49:43(UTC)
- マージ日時: 2026年08月17日 17:33:42(UTC)
- ラベル: area-ReadyToRun
概要
WASM オブジェクトライター実装の第2段階として、型安全な自己カウント機能を持つWASMセクション機構を導入します。共有機能をSectionDataEmitterに統合し、imports、functions、globals、exports、elements用の型付きベクトルセクションを追加。エントリの追加時に自動的にセクションのカウントを追跡し、手動でのカウンター管理を排除します。
変更内容
- WasmSection.cs:
WasmExternallyCountedSectionと型付きセクション基盤クラスを追加。自動カウント追跡機構を実装 - WasmSections.cs: imports、functions、globals、exports、elements用の型付きセクションクラスを追加
- WebcilSection.cs: 基底クラスを
WasmSectionからSectionDataEmitterに変更(WebCILは実際のWASMカスタムセクションではないため) - WasmObjectWriter.cs: 従来の手動カウンター管理とカウント前置き書き込みロジックを削除
- WasmDataSection.cs、WasmDataSegment.cs、WasmNative.cs: セクション出力機構に対応
パフォーマンスへの影響
影響なし。既存の出力構造と動作は保持され、セクションカウントはエントリ書き込み成功に直結することで信頼性が向上します。
関連Issue
#131770(先行PR) #131772(後続PR) #131778(後続PR)
その他
- 互換性: 内部実装の変更で、公開APIへの影響なし
- 注意点: Copilotが2点の潜在的問題を指摘
GetOrCreateSectionの戻り値が未使用(副作用は発生)- Debug ビルドでのみアサート検証。Release ビルドで
SetEntryCount漏れがあると暗黙的に無効なモジュール(ゼロカウント)が生成される可能性
#129853 fix shutdown tests
- 作成者: @rosebyte
- 作成日時: 2026年06月25日 14:08:14(UTC)
- マージ日時: 2026年08月17日 07:40:14(UTC)
- ラベル: area-Extensions-Hosting
概要
Helix環境におけるシャットダウン機能テストの信頼性を向上させるため、プロセス起動とシャットダウン処理を強化します。主な改善点は、dotnetホストをPATHに依存せずアクティブなtesthost レイアウトから解決する、プロセス起動の再試行ロジック(3回、短い遅延)を追加する、未起動のProcessオブジェクト処理を堅牢化することです。
変更内容
- SelfHostDeployer.cs: プロセス起動時の再試行ロジックを追加し、起動フローを再構成することで一時的な起動失敗への耐性を向上
- ApplicationDeployer.cs: dotnetミューサーの解決ロジックを改善(Helix環境対応、PATH フォールバック付き)し、シャットダウン時に未起動Process インスタンスでの例外発生を回避
- DotNetCommands.cs: dotnet解決ロジックの簡潔化(29行追加、56行削除)
- ShutdownTests.cs: テストの追加・改善(23行追加)
- RunnerTemplate.sh、tests.proj: テスト設定の微調整
パフォーマンスへの影響
影響なし
関連Issue
その他
本PR対象はテスト インフラストラクチャの改善であり、ランタイムやコンパイラの公開APIへの影響はありません。Helix環境の制約条件(PATH未設定、一時的なプロセス起動失敗)への耐性強化が主目的です。既存の起動シグナリングとエラー伝播セマンティクスは保持されます。