注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #133988 [manual] Merge release/9.0-staging into release/9.0
- #133951 [release/11.0] Honor JsonNumberHandlingAttribute declarations on C# unions
- #133949 [release/11.0] Improve IEEE decimal transcendental accuracy
- #133942 Correct HTTP/2 stream window cap test expectations
- #133936 Disable Runtime_133587 on Mono
- #133935 [release/11.0] Fix double monitor release in synchronized runtime-async methods
- #133933 Switch ci-failure-fix to GPT model
- #133922 Fix portable prestub frame lifecycle
- #133921 Improve IEEE decimal transcendental accuracy
- #133894 [wasm] Fix null shadow stack pointer in reverse-pinvoke calls into the interpreter
- #133893 Fix flaky assertion in OverlappingExtensions_AllMatchTypes_Comprehensive
- #133886 [release/11.0] Fix System.Text.Json source-generated unsafe accessors
- #133885 Fix DotNet-helixApi-Access for internal runtime.yml/perf.yml PR runs
- #133884 JIT: Keep intrinsic-only loops fully interruptible
- #133875 Use private PKI for untrusted TLS session certificate test
- #133869 JIT: Preserve checked additions in rotation recognition
- #133866 Fix double monitor release in synchronized runtime-async methods
- #133854 Fix async profiler overflow test's full-depth resume filtering.
- #133847 Use RuntimeCustomAttribute consistently across runtimes
- #133845 [release/8.0-staging] Update dependencies from dotnet/xharness
- #133825 JIT: Prevent loop hoisting across volatile reads
- #133764 Add aot.slnx for working on crossgen2 and ilc at the same time
- #133732 Relax rundown stub validation under interpreter
- #133708 Preserve mask element granularity in SIMD transformations
- #133673 Honor JsonNumberHandlingAttribute declarations on C# unions
- #133655 [main] Source code updates from dotnet/dotnet
- #133623 [automated] Merge branch 'release/8.0' => 'release/8.0-staging'
- #133620 [automated] Merge branch 'release/9.0' => 'release/9.0-staging'
- #133537 Resolve WASM NativeAOT object relocations
- #133417 [clrinterp] Split interpreter entry betwen managed and unmanaged callers
- #133015 [release/11.0] Restore current task tracking for runtime async dispatch
- #132927 Replace CoreCLR PAL wait subsystem
- #132744 [mono][llvm] Fix malformed uaddlp/saddlp intrinsic declarations
#133988 [manual] Merge release/9.0-staging into release/9.0
- 作成者: @ViveliDuCh
- 作成日時: 2026年09月15日 19:57:02(UTC)
- マージ日時: 2026年09月15日 23:31:17(UTC)
- ラベル: NO-SQUASH Servicing-approved area-codeflow
概要
release/9.0-stagingからrelease/9.0への定期的なリリースブランチマージです。System.Text.Jsonのプロパティキャッシュ衝突の修正、QUIC接続のSNI処理の改善、テスト調整、依存関係更新を含みます。
変更内容
- System.Text.Json: PropertyRef.csのプロパティ名の等値性チェック修正、キャッシュ衝突に関する回帰テスト50行追加
- System.Net.Quic: QuicConnection.csでのSNI値の欠落時の安全な処理、MsQuicConfiguration.csでの一時キー障害の追加検出(5行追加)
- System.Security.Cryptography.Xml: EncryptedXmlTests.csのタイミング依存テストの無効化
- System.Net.HttpListener: InvalidClientRequestTests.csの実装依存ケースの制限
- ビルドシステム: Version.Details.xml、Versions.props、dotnet-tools.jsonの依存関係バージョン更新
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
Copilotレビューにより「より詳細なレビューが必要」と指摘されています。リリースマージであり、ランタイム動作、テスト、依存関係、ツール群にまたがる変更が含まれるため、最終的な人的レビューが推奨されます。
#133951 [release/11.0] Honor JsonNumberHandlingAttribute declarations on C# unions
- 作成者: @github-actions[bot]
- 作成日時: 2026年09月15日 14:20:46(UTC)
- マージ日時: 2026年09月15日 20:12:37(UTC)
- ラベル: Servicing-approved area-System.Text.Json
概要
.NET 11で新たに導入されたユニオン型サポートとJsonNumberHandlingAttributeの間に存在する機能ギャップを修正するバックポート。ユニオン型の型定義に対してJsonNumberHandlingAttributeが正しく認識・適用されるようになります。
変更内容
- JsonSourceGenerator.Parser.cs: ユニオン型の解析時に
JsonNumberHandlingAttributeの宣言を認識するロジックを追加 - SourceGenerationOptionsSpec.cs: 属性情報の保持オプションを拡張
- JsonUnionConverter.cs, JsonTypeClassifierContext.cs, JsonUnionTypeStructuralClassifier.cs: ユニオン型の分類・処理時に
JsonNumberHandlingAttributeを考慮する処理を実装 - JsonTypeInfo.cs, JsonSchemaExporter.cs: スキーマエクスポート時の属性処理を調整
- テスト: ユニオン型でのNumber Handling属性の適用を検証する新規テスト120行以上、スキーマエクスポーターテスト78行、型分類テスト104行を追加
パフォーマンスへの影響
影響なし
関連Issue
#133673(元のPull Request)
その他
- 本変更はバックポートであり、既にmainブランチにマージされた機能をrelease/11.0に適用
- 低リスク変更で、テスト充実度が高い(複数のテストケースが追加される)
- 顧客報告の機能ギャップ修正
#133949 [release/11.0] Improve IEEE decimal transcendental accuracy
- 作成者: @github-actions[bot]
- 作成日時: 2026年09月15日 13:35:40(UTC)
- マージ日時: 2026年09月15日 20:11:49(UTC)
- ラベル: Servicing-approved area-System.Numerics
概要
IEEE 754 Decimal(Decimal32/64/128)の超越関数の精度を改善するバックポート。Asin/Acosなど複数の超越関数で、1に近い入力値に対する精度損失を修正。例えば x = 1 - 1e-30 の場合、修正前は Acos(x) で約 2.24e24 decimal ULP のエラーがあったのに対し、修正後は約 0.07 ULP に削減されます。
変更内容
DecimalIeee754 超越関数実装(内部実装)
DiyFp128Conversions.cs: 小数点剰余の保存と変換精度の改善DiyFp128Exp.cs: 指数計算定数の修正(冗長計算削減)DiyFp128InvHyper.cs: 逆双曲線関数(Acosh等)の精度改善DiyFp128InvTrig.cs: 逆三角関数(Asin/Acos等)の精度改善DiyFp128PiTrig.cs: Pi スケール三角関数の精度向上、キャンセレーション対策DiyFp128Pow.cs: べき乗計算の改善Transcendental.cs: ログベース精度向上、サブノーマル丸め修正、endpoint residuals の保存
テスト拡充
Decimal128Tests.cs: 211,483 個の有限数学参照値を使用した精度検証(220桁演算)Decimal32/64Tests.cs: ログベース計算等の回帰テスト強化(例:Log(2.5, 3)ケース)
パフォーマンスへの影響
混在。正確な結果パスと対になった評価パスは大幅に改善されたが、精度保存パスではオーバーヘッド増加。ローカル測定は Windows x64 のみ。ベンチマーク結果の具体値は提供されていません。
関連Issue
その他
- 互換性: 破壊的変更なし。Decimal32/64/128 は .NET 11 新規機能のため、既存リリースの動作変更ではありません。公開 API、オブジェクトレイアウト、ソース/バイナリ互換性は変更なし。
- リスク評価: 低。基本アルゴリズムは Intel DFP からの移植で既知のもの。新しい近似スキームの導入や大幅な書き直しはなく、集中した精度損失の修正です。
- テスト: ローカル 7,407 テスト合格(69 スキップ、0 失敗)。キャンセレーション対応エンドポイント、サブノーマル、オーバーフロー境界、代替 10 進表現など広範な検証済み。
- 備考: 本バックポートはローカルで未テスト。クロスプラットフォーム検証は CI に依存します。
#133942 Correct HTTP/2 stream window cap test expectations
- 作成者: @rzikm
- 作成日時: 2026年09月15日 11:38:01(UTC)
- マージ日時: 2026年09月15日 15:44:57(UTC)
- ラベル: area-System.Net.Http
概要
HTTP/2ストリームウィンドウキャップテストの不正な期待値を修正します。RTT PING最適化に関する古い仕様をテストから削除し、ストリームウィンドウが最大値を超えてスケーリングしないことを検証するより厳密なテストケースを追加しました。プロダクトコードの動作変更は含まれません。
変更内容
- SocketsHttpHandlerTest.Http2FlowControl.cs
TestClientWindowScalingAsync内の古い期待値を削除:RTT PINGがストリームクレジット90%超過後に停止するという仕様は、RTT推定が個別ストリームではなくコネクション単位だったため実装されていなかった- 正確なウィンドウキャップ検証テストを追加:初期ウィンドウ327161(キャップ超過時の倍増)と654321(キャップでの補充)で、ちょうど1つの更新閾値分のデータ送信後にWINDOW_UPDATEがクレジットを654321に復元することを確認
- スケーリング係数をゼロに設定して帯域幅への依存を除去
- 既存のペイロード長、フレーム形式、PING洪水チェックは保持
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
テスト検証結果:
- Windows x64、CoreCLR Release + libraries/tests Debugで実施
- SocketsHttpHandler_Http2FlowControl_Testクラス全体:11 passed, 0 failed
- 新しい正確クレジット理論を10回繰り返し実行:20 passed, 0 failed
- 制御されたネガティブテスト(キャップ削除時):期待値654321に対し実際654322で失敗を確認
元のテストはCI環境で間欠的に失敗していましたが、この修正により具体的で再現性のあるテスト条件に改善されています。
#133936 Disable Runtime_133587 on Mono
- 作成者: @EgorBo
- 作成日時: 2026年09月15日 09:33:24(UTC)
- マージ日時: 2026年09月15日 14:28:56(UTC)
- ラベル: area-Infrastructure-mono
概要
Mono ランタイムで発生している問題 #133910 に対応するため、Runtime_133587.TestEntryPoint テストを一時的に Mono でのみ無効化します。非 Mono ランタイムではテストの 6 つの理論ケースすべてが引き続き有効に保たれます。
変更内容
src/tests/JIT/Regression_ro_2/Runtime_133587.cs: メソッドレベルのActiveIssue属性を追加し、#133910 に関連する Mono 専用の隔離を実装
パフォーマンスへの影響
影響なし
関連Issue
その他
この変更は一時的なものであり、Mono ランタイムの問題が解決されれば削除予定と考えられます。非 Mono ランタイム(CoreCLR など)では引き続きテストが実行されるため、他のランタイムの回帰検出には支障がありません。
#133935 [release/11.0] Fix double monitor release in synchronized runtime-async methods
- 作成者: @github-actions[bot]
- 作成日時: 2026年09月15日 08:39:10(UTC)
- マージ日時: 2026年09月15日 19:16:43(UTC)
- ラベル: Servicing-approved area-VM-coreclr
概要
ランタイム非同期メソッド内で同期化されたタスク返却メソッドが例外をスロー時に、同期化ロックが二重解放される問題を修正しました。修正前は誤った例外型(SynchronizationLockException)がスローされ、修正後は正しい例外型(TaskCanceledException等)がスローされます。
例えば、以下のコードは修正前に誤った例外をスローしていました:
using StreamWriter sw = new StreamWriter(new MemoryStream());
var sb = new StringBuilder();
await TextWriter.Synchronized(sw).WriteLineAsync(sb, new CancellationToken(canceled: true));
変更内容
- src/coreclr/jit/importer.cpp: JITコンパイラの同期化ロック処理に3行追加。ランタイム非同期メソッド内での同期化ロックの二重解放を防止する処理を実装
- src/tests/async/regression/synchronized-async-version.cs: 43行の回帰テストコースを新規追加。同期化されたタスク返却メソッドが例外をスロー時の動作を検証
パフォーマンスへの影響
影響なし
関連Issue
#133866(メインリポジトリへのバックポート元)
その他
- release/11.0ブランチへのバックポートPRです
- 回帰は#129901で導入されたランタイム非同期版の実装に由来します
- リスク評価は低とされています
- ユニットテストが追加されており、テスト済みです
#133933 Switch ci-failure-fix to GPT model
- 作成者: @vitek-karas
- 作成日時: 2026年09月15日 06:21:25(UTC)
- マージ日時: 2026年09月15日 08:20:26(UTC)
- ラベル: area-Infrastructure agentic-workflows
概要
CI失敗修正ワークフローで使用するAIモデルをClaude OpusからGPT-5.6-Terraに切り替え、Azure DevOpsビルドIDをリンク形式で表示するよう要件を追加しました。ワークフロー設定と評価モデル設定を更新し、コンパイル済みワークフロックファイルを再生成しています。
変更内容
.github/workflows/ci-failure-fix.md: モデル設定とエビデンステンプレートを更新。Azure DevOpsビルドIDのリンク表示要件を追加(+12/-7行).github/workflows/evals/ci-failure-fix.eval.yaml: 評価設定でTerraモデルを適用(+1/-1行).github/workflows/ci-failure-fix.lock.yml: ワークフロックファイルを再生成し、モデルメタデータと環境設定を反映(+5/-5行)
パフォーマンスへの影響
影響なし(CI/CD自動化の内部ワークフロー変更のため、ランタイムパフォーマンスに影響しません)
関連Issue
なし
その他
- このPull Requestはワークフロー定義とロックファイルの変更のため、人間によるレビューが推奨されています
- 作成者によって以下のコマンドで検証済み:
gh aw compile ci-failure-fix --no-check-updategh aw validate ci-failure-fix --strict --no-check-updategit diff --check
#133922 Fix portable prestub frame lifecycle
- 作成者: @lewing
- 作成日時: 2026年09月15日 00:09:32(UTC)
- マージ日時: 2026年09月15日 16:27:45(UTC)
- ラベル: area-VM-coreclr
概要
ポータブルプレスタブフレームのライフサイクル管理を修正し、完了した遷移(FCallを含む)が追加の管理対象アクティベーションとして報告されないようにします。プレスタブフレームは引数のルート化と物理的なアンワインド中は有効なままです。この修正により、github60486回帰テストは冷時に0フレーム、温時に0フレームを報告するようになります(修正前は冷時に1フレーム)。
変更内容
- frames.h: ポータブルプレスタブのライフサイクル状態を追跡するフィールドを追加・修正
- prestub.cpp: ポータブル遷移とFCall完了時の処理を更新し、完了状態をマーク
- stackwalk.cpp: 関数のみスタックウォーク時に完了したポータブルプレスタブフレームをフィルタリング
- github60486.cs: マネージドFCallの冷時/温時スタックフレーム動作を検証するテストを追加
パフォーマンスへの影響
影響なし。この変更はフレームレポートの正確性を改善するもので、パフォーマンス特性には影響しません。
関連Issue
その他
FEATURE_PORTABLE_ENTRYPOINTS対象ビルドのみに適用され、TARGET_WASM限定から拡大- Copilotレビューで、FCallの冷時/温時カバレッジ追加についての指摘あり
- browser-wasm CoreCLR Checkedで検証済み(Release ライブラリ使用)
- Mono の aggressive-inlining 問題(#133775)は別途対応が必要として除外
#133921 Improve IEEE decimal transcendental accuracy
- 作成者: @tannergooding
- 作成日時: 2026年09月14日 23:36:46(UTC)
- マージ日時: 2026年09月15日 13:33:18(UTC)
- ラベル: area-System.Numerics
概要
IEEE Decimal32/64/128の超越関数(三角関数、対数、指数、べき乗など)の精度を大幅に改善するランタイムライブラリの内部実装変更です。十進数形式での引数削減と最終丸め処理の最適化により、キャンセレーション敏感な範囲(例:Asin(1-δ)、Log(1±δ))での精度エラーを劇的に削減しています。Decimal128では多くのAPIで最大エラーが1e+29 ULPから0.50 ULPへ改善、特にSinPi/CosPi/TanPiでは-1000~1000の範囲で1.26~7.51 ULPから0.50 ULPへ改善されました。公開APIの追加はなく、ソース/バイナリ互換性は変わりません。
変更内容
- Number.DecimalIeee754.Transcendental.cs:逆三角・逆双曲・対数・べき乗関数の残差保護ロジックを追加
- Number.DecimalIeee754.DiyFp128PiTrig.cs:π低減を十進数で実施、SinCosPi/TanPiで多項式評価を共有、完全な結果に対する完全数ハンドリング
- Number.DecimalIeee754.DiyFp128InvTrig.cs / DiyFp128InvHyper.cs:十進数での小さな端点残差の形成
- Number.DecimalIeee754.DiyFp128Exp.cs:Exp2/Exp2M1で既存のln(2)定数を再利用
- Number.DecimalIeee754.DiyFp128Conversions.cs:最終十進数量子の選択を丸め前に実施、亜正規結果の二重丸めを回避
- Number.DecimalIeee754.DiyFp128Pow.cs:近一べき乗の削減を改善
- テスト追加:Decimal32/64/128テストで精度・亜正規・境界カバレッジを強化
パフォーマンスへの影響
初期精度修正では完全な入力で0~5%、残差保護が必要な逆三角・双曲・LogP1で7~22%のオーバーヘッド。後続最適化により、通常のSinCosPiで約8~15%高速化、TanPiで10~23%高速化。wide log-base評価でDecimal128ケースが11~23%改善。完全数ショートカットでは劇的:RootN(0.7,1)は384ns→6ns(Decimal32)、TanPi(1000.000)は38ns→7.8ns。CoreLib増加は+4,096バイト(18.3MB)、大規模ルックアップテーブルの追加なし。
関連Issue
その他
- 完全な結果(例:SinPi(1000.000))で正確なゼロを保持するよう修正
- 1の別表現(例:Decimal64 1.0000000)を正しく処理、NaN返却を防止
- Intel DFP Update 3ベクトル4,924個で検証、完全一致の1,386サンプル保証
- 211,483有限参照評価、後続性能最適化で224,518評価を全ビット一致確認
- 通常の
#133894 [wasm] Fix null shadow stack pointer in reverse-pinvoke calls into the interpreter
- 作成者: @pavelsavara
- 作成日時: 2026年09月14日 16:58:28(UTC)
- マージ日時: 2026年09月15日 07:48:14(UTC)
- ラベル: arch-wasm area-CodeGen-Interpreter-coreclr
概要
WebAssembly上で[UnmanagedCallersOnly](reverse-pinvoke)メソッドが解釈型マネージコードへ再入する際に発生する「memory access out of bounds」クラッシュを修正します。SkiaSharpなどの実アプリケーションで発生していた問題で、shadow stack pointerが不正にゼロ折り畳みされることが原因でした。
変更内容
- lclvars.cpp: reverse-pinvoke用shadow-SP local変数に
lvHasExplicitInitフラグを設定し、値番号付け時にゼロ定数に最適化されることを防止 - WasmInterpreterTransitions.cs: reverse-pinvoke呼び出しが解釈型コードに遷移するケースのリグレッション テストを追加(GCHandle解決→shared generic→castclass→仮想メソッド呼び出しのパターンをミラー化)
- WasmInterpreterTransitions.csproj: unsafe関数ポインタのサポートを有効化
パフォーマンスへの影響
影響なし。修正はデバッグ/最適化フェーズの値番号付けロジックを調整するもので、パフォーマンス特性に変化はありません。
関連Issue
なし
その他
- 破壊的変更なし(内部JIT実装の修正のみ)
- 修正前:outgoing呼び出しのshadow-SP引数が
i32.const 0に定数折り畳みされた - 修正後:
local.get <sp>で実際のスタックポインタが渡される - SSAフェーズに入った複雑なメソッド(汎用ジェネリックメソッドなど)でのみ問題が顕在化。直線的なreverse-pinvoke メソッドは影響なし
- Node/corerunでのR2R実行検証済み
#133893 Fix flaky assertion in OverlappingExtensions_AllMatchTypes_Comprehensive
- 作成者: @Copilot
- 作成日時: 2026年09月14日 16:46:57(UTC)
- マージ日時: 2026年09月15日 15:26:24(UTC)
- ラベル: area-System.IO
概要
テストのOverlappingExtensions_AllMatchTypes_Comprehensiveが非決定的に失敗する問題を修正しました。従来のアサーションは完全な絶対パスで"foo"部分文字列をチェックしていましたが、GetTestFilePath()が追加するランダム文字列にfooが含まれる場合にテストが失敗していました。正確な期待パスとの比較に変更することで、ランダム性に依存しない厳密なテストに改善しています。
変更内容
- src/libraries/System.Runtime/tests/System.IO.FileSystem.Tests/Enumeration/MatchTypesTests.cs
- 結果数カウントと部分文字列フィルタリングによる曖昧なアサーションを削除
- 4つの
bar*マッチ結果(bar、bar.b、bar.ba、bar.baz)に対し、テストディレクトリを基準とした完全パスとの正確な比較に変更 FSAssert.EqualWhenOrderedを使用した厳密な検証に強化
パフォーマンスへの影響
影響なし(テストのみの変更)
関連Issue
その他
- この修正は製品コード変更ではなく、テストの安定性向上のためのものです
- テストファイル内の他の箇所でも同様の問題が発生する可能性をスキャン済み
#133886 [release/11.0] Fix System.Text.Json source-generated unsafe accessors
- 作成者: @github-actions[bot]
- 作成日時: 2026年09月14日 15:18:16(UTC)
- マージ日時: 2026年09月15日 20:15:33(UTC)
- ラベル: Servicing-approved area-System.Text.Json
概要
System.Text.Json ソースジェネレータにおけるunsafeアクセッササポートの回帰バグを修正します。.NET 11で導入されたunsafeアクセッサ機能に対応していないコーナーケースと、unsafe v2セマンティクスとの非互換性問題に対処しています。これらの問題により、ソースジェネレータを使用するプロジェクトでunsafe v2を有効にするとコンパイル不可能なコードが生成されていました。
変更内容
- JsonSourceGenerator.Emitter.cs: unsafeアクセッサのコード生成ロジックを大幅改良。unsafe v2セマンティクスに対応し、属性や修飾子の生成を修正(119行追加/37行削除)
- JsonSourceGenerator.Parser.cs: パーサ側でコーナーケースをより包括的に処理(54行追加/10行削除)
- RoslynExtensions.cs: unsafeアクセッサ生成をサポートするヘルパーメソッドを追加
- Model層の拡張: PropertyGenerationSpec、TypeGenerationSpec、ParameterGenerationSpec、ContextGenerationSpecに必要なメタデータプロパティを追加
- 包括的なテスト追加: 非公開プロパティ、Init-onlyプロパティ、コンストラクタパラメータマッチング、属性の存在確認など複数のテストを追加。unsafe v2を有効にしたテストプロジェクトでの動作確認も実施
パフォーマンスへの影響
影響なし
関連Issue
#124650 - .NET 11でのunsafeアクセッササポート導入
その他
- カスタマーレポート済みの回帰バグ対応
- リスクレベル: 中(ソースジェネレータ出力ロジックの重大な変更)
- 元のPRは#133599で、これはrelease/11.0ブランチへのバックポート
- unsafe v2セマンティクスにも対応し、今後の互換性を確保
#133885 Fix DotNet-helixApi-Access for internal runtime.yml/perf.yml PR runs
- 作成者: @akoeplinger
- 作成日時: 2026年09月14日 15:04:21(UTC)
- マージ日時: 2026年09月15日 08:31:48(UTC)
- ラベル: area-Infrastructure
概要
Azure Pipelines内部設定にて、HelixモニターがPR実行時に認証できるようDotNet-HelixApi-Accessを有効化する変更。runtime.ymlとperf.ymlに対して、内部PRの監視に必要なHelix APIアクセス権限を追加しています。
変更内容
- eng/pipelines/runtime.yml: Helix APIアクセスグループを条件付きで有効化(内部プロジェクト向け)
- eng/pipelines/performance/perf.yml: 内部パフォーマンスPR監視のためのHelix APIアクセスを有効化
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
⚠️ 重要な指摘: Copilotレビューによると、runtime.ymlの変更にはまだ対応漏れがあります。Helixモニターが動作するには、xplat-job.ymlにおいて内部PR実行時の_HelixSourceハンドリングが必要とされていますが、現在xplat-job.ymlはこの組み合わせに対応していません。内部非PR実行とパブリック実行のみで定義されており、PR実行時には空または異なるソースで送信される可能性があり、モニターが正しくジョブを報告できない状態となります。本変更をマージする前に、xplat-job.ymlに対応する内部PR向けのソースハンドリングを追加することが推奨されています。
#133884 JIT: Keep intrinsic-only loops fully interruptible
- 作成者: @Copilot
- 作成日時: 2026年09月14日 14:43:33(UTC)
- マージ日時: 2026年09月15日 21:22:45(UTC)
- ラベル: area-VM-coreclr
概要
JITの最適化によってループ内の唯一のintrinsic呼び出しが削除された場合、部分的に割り込み可能でセーフポイントのないループが発生し、GC一時停止がハングする問題を修正します。特別なintrinsic呼び出しをGCセーフポイント検出から除外することで、intrinsic専用ループを完全に割り込み可能にします。
変更内容
- src/coreclr/jit/compiler.hpp:
IsGcSafePointメソッドを更新し、IsSpecialIntrinsic()呼び出しをセーフポイント判定から除外。これにより、intrinsic専用ループが完全に割り込み可能として扱われます。 - リグレッション対策として、小規模および長さゼロのspan copies、
SequenceEqual、Fill、ClearをGC実行中に検証するテストケースを追加予定。
パフォーマンスへの影響
修正により、intrinsic専用ループが完全割り込み可能として扱われるため、GC情報とコード生成のコストが増加する可能性があります。ただし、これはGC一時停止ハングを防ぐための必要なトレードオフです。
関連Issue
その他
レビュアーからの指摘により、IsSpecialIntrinsicの判定範囲が実際に削除可能なintrinsicより広いことが懸念されています。lowering処理で削除される対象(AMD64/ARM64に限定)に絞るか、より広い条件適用の正当性を示す必要があるとのこと。
#133875 Use private PKI for untrusted TLS session certificate test
- 作成者: @rzikm
- 作成日時: 2026年09月14日 13:15:35(UTC)
- マージ日時: 2026年09月15日 07:47:54(UTC)
- ラベル: area-System.Net.Security
概要
TLS セッションの信頼されていない証明書の検証テストを、共有テスト CA への依存から独立させるため、新規に生成される プライベート PKI チェーンを使用するように更新しました。このテストは以前、マシンの信頼ストアに発行者証明書がインストールされている場合に失敗していました。
変更内容
- src/libraries/System.Net.Security/tests/FunctionalTests/TlsSessionTests.cs
ClientSession_ExternalCertificateValidation_AcceptWithDefaultValidation_FailsOnUntrustedCertテストを修正- 新鮮に生成された localhost 証明書チェーンを使用
- サーバーに完全な証明書チェーンを供給
- 予期される証明書検証エラーを検証
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- テストの確定性を向上させる変更(マシンの信頼ストア状態に依存しない)
- System.Net.Security ライブラリの機能テストの改善
- 内部テストコードの変更のため、公開 API への影響なし
#133869 JIT: Preserve checked additions in rotation recognition
- 作成者: @Copilot
- 作成日時: 2026年09月14日 13:08:05(UTC)
- マージ日時: 2026年09月15日 15:09:03(UTC)
- ラベル: area-CodeGen-coreclr
概要
JIT回転認識(rotation recognition)において、チェック済み加算によるシフト数の計算を正しく保持するように修正しました。従来はADD(NEG(y), N)をローテーションに最適化する際にオーバーフロー判定を無視し、OverflowExceptionを抑制してしまう問題がありました。!gtOverflow()条件を追加して、オーバーフロー可能性のある加算ではローテーション最適化をスキップするようにしました。
変更内容
- src/coreclr/jit/morph.cpp: ローテーション最適化前にオーバーフロー判定(
!gtOverflow())を確認する条件を追加 - src/tests/JIT/CodeGenBringUpTests/Rotate.cs: 32/64ビットの左右ローテーション、オーバーフロー境界値、チェック済み否定演算、通常のシフト数を網羅した14個の回帰テストケースを追加
パフォーマンスへの影響
影響なし。本変更は正確性の向上であり、パフォーマンスに関連する変更ではありません。ローテーション最適化の対象を制限するため、一部のケースではコンパイラの最適化が適用されなくなりますが、これは正しい動作を優先するためです。
関連Issue
その他
本修正はChecked-JITにおいて不正なGTF_EXCEPTフラグの保持により発生していたアサーション失敗を防ぎます。チェック済み演算の契約を保証するため、オーバーフロー可能性のある加算ではローテーション最適化を回避する設計です。
#133866 Fix double monitor release in synchronized runtime-async methods
- 作成者: @Copilot
- 作成日時: 2026年09月14日 12:55:34(UTC)
- マージ日時: 2026年09月15日 08:37:03(UTC)
- ラベル: area-CodeGen-coreclr runtime-async
概要
同期化されたメソッドから返された失敗したawaitable をawaitする際に、モニターが二重に解放される問題を修正します。JIT importer生成のモニター終了直後に lvaMonAcquired をクリアすることで、後続のawait例外による追加の解放を防ぎます。
変更内容
- src/coreclr/jit/importer.cpp: モニター解放直後に
lvaMonAcquiredフラグを即座にクリア(released-state =0; acquired =1)し、fault処理時の二重解放を防止 - src/tests/async/regression/synchronized-async-version.cs:
TaskおよびValueTaskの例外同一性とモニター所有権を検証する回帰テストを追加(呼び出し元がロック保有する場合とそうでない場合の両方をカバー)
パフォーマンスへの影響
影響なし
関連Issue
その他
この変更は例外処理とロック所有権に関わるJIT最適化であり、特に同期化メソッド内でのasync/await使用時の正確なモニター管理に影響します。内部実装の修正であり、公開APIの変更はありません。
#133854 Fix async profiler overflow test's full-depth resume filtering.
- 作成者: @lateralusX
- 作成日時: 2026年09月14日 10:33:23(UTC)
- マージ日時: 2026年09月15日 08:20:55(UTC)
- ラベル: area-System.Threading.Tasks
概要
非同期プロファイラーオーバーフロー回帰テストを修正し、フル深度のリーフレジュームと有効な短いコンティニュエーションの区別を改善しました。スタック保護により、リーフ完了後に続きがキューに登録されることで有効な短いレジュームが生成される場合があり、フル深度の期待値に対してチェックされるべきではない問題を解決します。
変更内容
AsyncProfilerV1Tests.cs: 非同期プロファイラーオーバーフロー回帰テストを更新- 明確な非インライン化されたゲートリーフを追加
- イテレーションごとに1つのリーフレジューム(255フレーム)を要求
- Mono名前解決用にリーフメソッドIDをスナップショット化
- テスト設定、フィルタリング、アサーションを更新
- Monoインタープリターティアリングがコード アドレスを変更する可能性があり、プロファイラーがキャッシュIDを保持することを明記
パフォーマンスへの影響
影響なし(テスト修正のため)
関連Issue
その他
このPRはテストの信頼性向上を目的とした変更であり、Monoインタープリターのティアリング機能によってコードアドレスが変更される可能性がある点に対応しています。
#133847 Use RuntimeCustomAttribute consistently across runtimes
- 作成者: @MichalStrehovsky
- 作成日時: 2026年09月14日 07:05:32(UTC)
- マージ日時: 2026年09月15日 01:47:18(UTC)
- ラベル: area-System.Reflection
概要
CoreCLR、Mono、NativeAOT全体で内部カスタム属性ヘルパーを RuntimeCustomAttribute に統一するリネーム。公開APIの動作に変更はなく、ソース統合、部分宣言、Monoの内部呼び出し登録を一貫させる機械的な変更です。
変更内容
- CoreCLR側: RuntimeCustomAttributeData.CoreCLR.cs および複数のReflection関連ファイルでヘルパー呼び出しを統一名に変更
- Mono側: RuntimeCustomAttribute.cs のヘルパーをリネームし、Mono関連の全Reflection/Emit実装(RuntimePropertyInfo、RuntimeMethodInfo、RuntimeFieldInfoなど)と Attribute.Mono.cs の呼び出しを更新。internal-call登録を icall-def.h で更新
- 共有実装: 共有の部分宣言条件を削除し、RuntimeCustomAttributeData.cs を統一。DynamicMethod.cs でのカスタム属性配列作成呼び出しも更新
- その他: RuntimeType.cs などの共有実装部分も統一
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
内部実装のリネームであり、公開APIには変更なし。32ファイルで機械的に一貫性をもたせた整理。Copilot による自動レビューで全呼び出し箇所の確認が完了しており、陳腐化したヘルパー呼び出しは検出されていません。
#133845 [release/8.0-staging] Update dependencies from dotnet/xharness
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年09月14日 05:03:24(UTC)
- マージ日時: 2026年09月15日 03:02:13(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.26451.1から11.0.0-prerelease.26461.1にアップデートします。
変更内容
.config/dotnet-tools.json: XHarnessツールバージョン更新(+1/-1)eng/Version.Details.xml: 依存関係詳細情報の更新(+6/-6)eng/Versions.props: バージョンプロパティの更新(+3/-3)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このPRは自動依存関係更新(Maestro)によるものです。xharnessは主にテスト実行・管理ツールであるため、ランタイムコアへの直接的な影響は限定的と考えられます。
#133825 JIT: Prevent loop hoisting across volatile reads
- 作成者: @AndyAyersMS
- 作成日時: 2026年09月13日 16:00:53(UTC)
- マージ日時: 2026年09月15日 14:45:59(UTC)
- ラベル: area-CodeGen-coreclr
概要
JITコンパイラのループホイスティング最適化が、volatile読み取りのacquireセマンティクスを違反して、前の反復のvolatile読み取りを超えて通常のロードをホイストするリスクを排除します。volatile間接参照をループメモリハボックとして扱うことで、クロスイテレーション間の順序付けを保証します。
変更内容
- src/coreclr/jit/optimizer.cpp: ループサイド効果分析を更新し、volatile間接参照をループメモリ効果としてモデル化する処理を追加(+11行)
- src/tests/JIT/Regression_o_2/Runtime_133579.cs: acquire順序付けのクロススレッド回帰テストを追加(+60行)
パフォーマンスへの影響
Windows x64チェック版SuperPMI検証結果:
- 987,559個の成功したコンパイル中、2個が変更
- 合計 +4バイト
- PerfScore への影響は実質0.0000%(影響なし)
関連Issue
その他
- 既存の Runtime_40444 回帰テストは引き続きパス
- 注意: Copilot レビューにより、追加されたテスト(Runtime_133579.cs)のタイミング同期が十分でない可能性が指摘されています。テスト内の
readerStarted.Set()が最初のループ内ロード後に移動されることが推奨されており、現在のテストでは最適化されていないJITも誤ってパスする可能性があるため、回帰テストの信頼性に留意が必要です。
#133764 Add aot.slnx for working on crossgen2 and ilc at the same time
- 作成者: @jtschuster
- 作成日時: 2026年09月11日 23:23:50(UTC)
- マージ日時: 2026年09月15日 05:03:03(UTC)
- ラベル: area-NativeAOT-coreclr
概要
ILC(IL Compiler)とcrossgen2の両方で同時に作業する際に、ソリューション間の切り替えを不要にするための統合ソリューションファイル aot.slnx を追加します。ILC、crossgen2、ReadyToRun、ILLink関連のプロジェクトを一つのソリューションで管理できるようになります。
変更内容
- src/coreclr/tools/aot/aot.slnx (+133行)
- 新しい統合AOTソリューションファイルを追加
- ILC、crossgen2、ReadyToRun、ILLinkプロジェクトの共有プロジェクト設定とプラットフォームマッピングを定義
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
レビュー指摘事項:
設定マッピングの競合:
ILCompiler.TypeSystemとILCompiler.Diagnosticsの設定マッピングが既存のcrossgen2.slnxと矛盾しているAny CPUプラットフォームでの動作が異なるCheckedビルド設定時の扱いが一致していない
ドキュメント更新の必要性:NativeAOTビルドドキュメント(docs/workflow/building/coreclr/nativeaot.md)で
aot.slnxが言及されていない。既存ドキュメントではコンパイラ作業がilc.slnxに限定されているため、新しいソリューションの存在が認識されないILTrim.Coreプロジェクトパス:未解決のプロジェクトパスが存在
これらの指摘が解決されるまで、承認前に修正が必要と判定されています。
#133732 Relax rundown stub validation under interpreter
- 作成者: @BrzVlad
- 作成日時: 2026年09月11日 18:54:12(UTC)
- マージ日時: 2026年09月15日 05:21:05(UTC)
- ラベル: area-CodeGen-Interpreter-coreclr
概要
CoreCLR インタープリタモード下でのランダウン検証テストを緩和します。インタープリタモード2は JIT生成スタブイベントを生成しないため、これらのイベントの検証をスキップする条件を追加します。一般的なランダウンおよびヘルパーイベントの検証は継続します。
変更内容
src/tests/tracing/eventpipe/rundownvalidation/rundownvalidation.cs: インタープリタモード下でのテストスキップ条件を追加(+4/-3)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
レビューコメントで、rundownWriteBarriersの検証に関する指摘があります。DOTNET_UseGCWriteBarrierCopy=0が設定されている場合、UseGCWriteBarrierCopy機能が無効のため空のリストが返される仕様となっており、この場合でもテストが失敗しないよう、ライトバリアコピー機能が有効な場合のみ検証をゲートする必要があると指摘されています。
#133708 Preserve mask element granularity in SIMD transformations
- 作成者: @tannergooding
- 作成日時: 2026年09月11日 17:07:34(UTC)
- マージ日時: 2026年09月15日 01:39:56(UTC)
- ラベル: area-CodeGen-coreclr
概要
SIMD命令の最適化時にマスク要素の粒度(element granularity)を保持するJIT改善。ブレンドマスクの均一性検証、ランタイムブロードキャスト幅の保持、SVEマスク変換の保存により、マスク要素幅の不一致による正しくない最適化を防止します。
変更内容
- gentree.cpp: ブロードキャスト拡張と比較フォールバック時のマスク処理をガード。定数マスク最適化をゼロ/全ビットセット状態に制限
- lowerxarch.cpp: ブレンドマスクの消費側要素幅での均一性証明を追加。PTESTM処理時のランタイムブロードキャスト幅を保持
- テストケース: 3つのxarch回帰テスト(Runtime_133548, 133552, 133555)と1つのSVE回帰テスト(PredicateInstructions.cs)を追加
パフォーマンスへの影響
影響なし(局所的なベンチマーク測定で命令数とコードサイズは同一)
関連Issue
その他
- 検証: Checked/Release x64、ARM64 SVE、AVX512BW/VL、SSE4.1で実行確認済み
- 互換性: 既存の同一幅の最適化は保持。破壊的変更なし
- 指摘事項: Copilotレビューで、ブレンド書き換えパスでのランタイムブロードキャスト不正拡張の潜在的リスクが指摘されたが、対応済みとマークされている
#133673 Honor JsonNumberHandlingAttribute declarations on C# unions
- 作成者: @Copilot
- 作成日時: 2026年09月11日 09:26:56(UTC)
- マージ日時: 2026年09月15日 14:18:33(UTC)
- ラベル: area-Infrastructure-libraries
概要
C# union型(判別共用体)のJsonNumberHandling属性設定を適切に処理するよう改善しました。union型に[JsonNumberHandling(JsonNumberHandling.Strict)]を指定した場合、JsonSerializerDefaults.Webでの数値の引用符付き文字列の曖昧性から除外されるようになります。リフレクションおよびソース生成メタデータを通じた回帰テストカバレッジを追加します。
変更内容
- JsonTypeInfo.cs: union型のメタデータ構築時に、union型レベルの
JsonNumberHandlingを適用し、ケースディスパッチに反映させる - JsonUnionConverter.cs: union型のnumber handling設定を状態フレームに適用
- JsonSourceGenerator.Parser.cs: ソース生成時にunion型レベルの
JsonNumberHandlingを認識し、曖昧性診断に適用 - JsonSchemaExporter.cs: union型のnumber handling設定をスキーマ生成に反映
- テスト: 反射型およびソース生成型の両方で
IntOrStringunion型とStrict handling回帰テストを追加(UnionTests.cs、StructuralJsonTypeClassifierTests.cs、JsonSourceGeneratorDiagnosticsTests.csなど)
パフォーマンスへの影響
影響なし
関連Issue
その他
重要な懸案事項: Copilotのレビュー指摘から、以下の未解決の不整合が報告されています:
- プロパティレベルのnumber handling設定がunion型でのケース選択に未反映(プロパティ上の
[JsonNumberHandling]がunion内部に伝播していない) - ソース生成時の曖昧性診断(
SYSLIB1227)が実行時のディスパッチマップと乖離する可能性 AllowNamedFloatingPointLiteralsフラグがfloating-point converterの値形状計算に未反映- JSON Schemaエクスポート時にunion型のhandling設定が伝播していない
これらの問題は、union型ネストシナリオやプロパティオーバーライド、named literal floats処理において、ランタイム動作とソース生成時の警告が不一致になる可能性があります。
#133655 [main] Source code updates from dotnet/dotnet
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年09月11日 02:05:47(UTC)
- マージ日時: 2026年09月15日 08:01:29(UTC)
- ラベル: area-codeflow
概要
dotnet/dotnetのVMRからのコードフロー更新PRです。複数の依存パッケージが更新され、ビルドツールチェーン、コンパイラ、ランタイム関連パッケージが最新化されます。主な更新対象は、Microsoft.CodeAnalysis、Microsoft.DotNet.Arcade.Sdk、Microsoft.NETCore.App.Ref、System.Text.Jsonなど、コア開発ツールとランタイムライブラリです。
変更内容
- 依存パッケージの更新: Microsoft.CodeAnalysis関連(5.12.0)、Microsoft.DotNet.Arcade.Sdk(11.0.0-beta → 12.0.0-beta)、Microsoft.NETCore.App.Ref(12.0.0-alpha)、System.Text.Json、NuGet関連パッケージなど複数パッケージを新バージョンに更新
- ビルド設定の更新: eng/Version.Details.props、eng/Version.Details.xmlで41行の依存関係メタデータを更新
- ビルドパイプライン改善: eng/common/core-templates/steps/astred-artifacts.yml(新規追加、103行)、job.ymlに12行追加、Get-GitHubAppToken.ps1の更新、onelocbuild.ymlの見直し
- ネイティブビルド調整: configurecompiler.cmake、build-rootfs.shの細微調整
- NativeAoT統合ターゲット修正: Microsoft.DotNet.ILCompiler.SingleEntry.targets(14行から12行に削減)
- .NET Tools構成: global.json更新(4行変更)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このPRは自動化されたコードフロー更新(dotnet-maestro[bot]による)であり、VMR(Virtual Monorepo)から複数リポジトリ(arcade、aspnetcore、diagnostics、efcore、fsharp、msbuild、nuget.client、roslyn、sdk、winforms、wpfなど)の変更を同期しています。
#133623 [automated] Merge branch 'release/8.0' => 'release/8.0-staging'
- 作成者: @github-actions[bot]
- 作成日時: 2026年09月10日 18:27:06(UTC)
- マージ日時: 2026年09月15日 14:42:04(UTC)
- ラベル: Servicing-approved area-codeflow
概要
release/8.0ブランチからrelease/8.0-stagingブランチへの自動マージです。ViveliDuChおよびdotnet-botによってrelease/8.0に加えられた変更を、release/8.0-stagingに取り込みます。このPRは自動マージされず、チェック完了後にマージコミットで手動マージしてください。
変更内容
- NuGet.config: パッケージソース設定の更新
- eng/Version.Details.xml、eng/Versions.props: 依存パッケージバージョンの更新(複数の依存関係版を更新)
- eng/common/Get-GitHubAppToken.ps1: GitHub AppトークンPowerShellスクリプトの新規追加
- ビルドテンプレート整理:
get-github-app-token.ymlステップの追加(official/コアテンプレート)extract-artifact-packages.ps1の削除execute-sdl.ymlジョブの削除- 各種ビルドテンプレート(onelocbuild.yml、publish-build-assets.yml、codeql-build.yml等)の調整
- global.json: ツールチェーンバージョン情報の更新
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- このPRは自動生成された定期的なブランチマージです
- マージ手順に注意: squashまたはrebaseではなく、マージコミット(--no-ff)を使用して統合してください
- マージコンフリクトが発生した場合は、手動で解決した後に
git merge --continueで完了してください - ビルドパイプラインの改善(GitHub App認証の導入、SDL関連スクリプトの整理)が含まれています
#133620 [automated] Merge branch 'release/9.0' => 'release/9.0-staging'
- 作成者: @github-actions[bot]
- 作成日時: 2026年09月10日 18:10:11(UTC)
- マージ日時: 2026年09月15日 19:45:47(UTC)
- ラベル: NO-SQUASH Servicing-approved area-codeflow
概要
release/9.0ブランチからrelease/9.0-stagingブランチへの自動マージPRです。このPRはrelease/9.0で行われたコミット(ViveliDuCh、dotnet-bot、vseanreesermsft、iremyuxによるもの)をstaging ブランチに統合するためのものです。
変更内容
- NuGet.config: 設定値の更新(1行追加、1行削除)
- eng/Version.Details.xml: バージョン情報の更新(91行追加、91行削除)
- eng/Versions.props: バージョンプロパティの更新(40行追加、40行削除)
- eng/common/core-templates/job/onelocbuild.yml: ビルドテンプレートの調整(16行追加、30行削除)
- global.json: グローバル設定の更新(3行追加、3行削除)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
本PRは自動生成されたマージコミットです。マージ時はSquashまたはRebaseではなく、マージコミット(--no-ffフラグ)で統合する必要があります。マージ競合が発生した場合は、手動での解決が必要です。
#133537 Resolve WASM NativeAOT object relocations
- 作成者: @jtschuster
- 作成日時: 2026年09月09日 21:59:52(UTC)
- マージ日時: 2026年09月15日 05:02:07(UTC)
- ラベル: arch-wasm area-NativeAOT-coreclr
概要
WASM NativeAOT向けのオブジェクトライターにおいて、IMAGE_REL_BASED_HIGHLOWリロケーション解決のサポートを追加します。また、シンボルエイリアスのサポートとエクスポートエントリの出力機能を実装します。ただし、Copilotの指摘通り、リロケーション対象の検証不足やエイリアス名前空間の管理、外部シンボルの処理に関する問題が存在し、承認前の対応が必要です。
変更内容
- WasmSymbolManager.cs: シンボルエイリアス機能を追加(エイリアスマップ経由の名前解決)
- WasmRelocatableObjectWriter.cs:
IMAGE_REL_BASED_HIGHLOWリロケーション解決を実装、関数エクスポートの出力、subsections-via-symbols の強制設定(暫定的な対応) - WasmObjectWriter.cs: セクションエントリカウント制約を条件付きに変更
- emitwasm.cpp: 直接呼び出しの正確なリロケーション対象アドレスを設定
パフォーマンスへの影響
影響なし
関連Issue
その他
未解決の問題(Copilot指摘):
- リロケーション対象の検証不足: メソッドエントリポイントなどのコードセクション対象に対して
NotImplementedExceptionがスロー。外部シンボルや非データセクション対象への対応が必要。 - 加数の二重適用:
definedSymbol.Value + addendとreloc.Addendの両方を加算しており、フィールドオフセットを持つリロケーションで不正なアドレス解決が発生。 - エイリアス名前空間の衝突: インポートとエイリアスが別の辞書で管理されため、同名のインポート(
memory、table、stackPointerなど)とエイリアスが共存可能。 - 外部直接呼び出しの未処理:
GetHelperFtnUncachedで返される外部シンボルが登録されないため、リンク時リロケーションとして保持する必要。 - テストカバレッジ不足: NativeAOT/WASM向けのエンドツーエンドテストが欠落。
- コード品質: 不要なusing (
System.Linq)、インデント不正、TODO のissueリンク未設定。
#133417 [clrinterp] Split interpreter entry betwen managed and unmanaged callers
- 作成者: @BrzVlad
- 作成日時: 2026年09月08日 13:15:33(UTC)
- マージ日時: 2026年09月15日 12:27:22(UTC)
- ラベル: area-CodeGen-Interpreter-coreclr
概要
CoreCLR インタープリタエントリーポイントをリファクタリングし、ExecuteInterpretedMethod の処理を3つのメソッドに分割。管理コード呼び出し側用の高速パス(UCOチェック不要)とアンマネージ呼び出し側用の低速パス(UCOチェック必要)を分離し、インタープリタエントリーのマイクロベンチマークで約5%改善を実現しました。
変更内容
- src/coreclr/vm/prestub.cpp
ExecuteInterpretedMethodBody: フレーム設定、インタープリタ実行、非同期継続処理を実行する高速パスメソッドを新規追加ExecuteInterpretedMethodFromUnmanagedWorker: UCO(UnmanagedCallersOnly)チェック、スレッド/GCモード検証、プロファイラー/デバッガーフックを処理する低速パスメソッドを新規追加ExecuteInterpretedMethod: 解釈メソッドがUCO属性を持つかどうかに基づいて、高速パスまたは低速パスにディスパッチするルーターメソッドに変更
パフォーマンスへの影響
改善あり
- インタープリタエントリーマイクロベンチマークで約5%改善
- 管理コード側の呼び出しパスではUCOチェック処理が除外されるため、オーバーヘッド削減
関連Issue
なし
その他
本変更は CoreCLR VM インタープリタエントリー/GC遷移パスに関わるセンシティブな領域であり、アーキテクチャ固有の呼び出し規約が関係するため、詳細な人間によるレビューが推奨されます。将来的には非同期継続の保存処理など、さらに多くのコードを高速パスから除外できる可能性があります。
#133015 [release/11.0] Restore current task tracking for runtime async dispatch
- 作成者: @github-actions[bot]
- 作成日時: 2026年09月01日 13:36:01(UTC)
- マージ日時: 2026年09月15日 19:27:12(UTC)
- ラベル: Servicing-approved area-VM-coreclr
概要
.NET 11の非計測ランタイム非同期ディスパッチパスで、AsyncDispatcherInfo.CurrentTaskが設定されていない回帰を修正するバックポートです。#126091でディスパッチパスを分離した際に、標準パスでこの割り当てが失われていました。診断ツールがライブプロセスやクラッシュダンプを分析する際に、ランタイム非同期の継続チェーンを親Taskと関連付けることができなくなっていた問題を解決します。
変更内容
- src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/AsyncHelpers.CoreCLR.cs: 非計測パスで
AsyncDispatcherInfo.CurrentTaskを設定するポインタ割り当てを1行追加
パフォーマンスへの影響
- 10ミリオン回のランタイム非同期サスペンション/レジューム操作でベンチマークを実施し、10回の対のテスト実行で性能回帰なし
- ReadyToRun生成コード(
RuntimeAsyncTask<int>.DispatchContinuations)のサイズは7バイト増加(1,488→1,495バイト)
関連Issue
#132969(mainへの元の修正) #126091(回帰を引き起こした変更)
その他
- この変更は回帰の修正であり、#126091でディスパッチパスが分離されるまで存在していた動作を復元しています
- 計測パスは既に
RuntimeAsyncInstrumentationHelpers.ResumeRuntimeAsyncContextを通じてCurrentTaskを設定しており、本修正で標準パスもこれと一致するようになります System.Runtime.Testsで77,810テストがパスしており、既存テストでは非計測スタック状態の詳細検査がないため、新規テストの追加は不要とされています- リスク評価:低。制御フロー、公開API、タスク完了セマンティクス、永続化データに変更がないため
#132927 Replace CoreCLR PAL wait subsystem
- 作成者: @jkoritzinsky
- 作成日時: 2026年08月29日 18:53:54(UTC)
- マージ日時: 2026年09月15日 21:27:20(UTC)
- ラベル: area-VM-coreclr
概要
CoreCLR の PAL(Platform Abstraction Layer)待機サブシステムを廃止し、Unix ネイティブ待機を単一ハンドルイベント待機に統一します。NativeAOT イベント実装を共有ランタイムに移動し、Windows ではネイティブ API を、Unix では pthread ベースの実装を使用する新しい CLREventBase を導入します。PAL_Sleep は Windows では Sleep に、Unix では EINTR セーフな nanosleep にバックアップされます。
変更内容
- 新規 API:
minipal_sleep()を minipal/time に追加(クロスプラットフォーム sleep) - 共有イベント実装:
CLREventBaseをsrc/coreclr/runtimeに移動し、Windows/Unix 実装を提供 - PAL 機能削除: 従来の PAL イベント、sleep、スレッド待機、同期マネージャー、コントローラー、キャッシュを削除
- コアランタイム更新: CoreCLR/NativeAOT/デバッガーコードを共有
CLREventBaseに移行 - Unix スレッド終了: Unix で手動リセットスレッド終了イベントを追加;Windows は OS スレッドハンドルで継続
- PAL テスト更新: 256 個の既存テストパスをまたは新規
RuntimeEventテストでminipal_sleepと完了カウンター方式に統一 - GC イベント:
GCEvent作成 API を OS 非依存に簡略化 - デバッガー:
HANDLEベースのイベント実装をCLREvent/CLREventBaseに置き換え
パフォーマンスへの影響
影響なし(リファクタリングによる互換性維持、パフォーマンス特性は変わらず)
関連Issue
なし
その他
内部実装変更: このPRは PAL 内部実装の廃止であり、パブリック API の直接的な破壊的変更はありません。ただし、Copilot のコード審査で中程度の懸念が 5 件報告されています:
CreateManualEventNoThrow(false)の失敗判定が OOM に限定されていない可能性- デバッガーの
canary.cppで 1 引数Wait()の使用が EE(Execution Engine)認識の待機をバイパスする可能性 rcthread.cppの EE 認識イベントで 1 引数Wait(INFINITE)呼び出しの問題
テスト結果:PAL テストスイート 256 パス、0 失敗
#132744 [mono][llvm] Fix malformed uaddlp/saddlp intrinsic declarations
- 作成者: @rolfbjarne
- 作成日時: 2026年08月25日 13:23:11(UTC)
- マージ日時: 2026年09月15日 18:01:43(UTC)
- ラベル: area-Codegen-LLVM-mono
概要
Mono/LLVMのAArch64 NEON uaddlp/saddlpイントリンシック宣言におけるアウトオブバウンドアクセスの脆弱性を修正します。add_intrinsic()関数が不正なI1(8ビット結果要素)オーバーロードタグによりintrin_types配列の範囲外にアクセスしていました。LLVM 23以降のIRベリファイアがこの不正な宣言を拒否し、AOTコンパイルが失敗するようになりました。
変更内容
src/mono/mono/mini/llvm-intrinsics.h:AARCH64_ADV_SIMD_SADDLPおよびAARCH64_ADV_SIMD_UADDLPのオーバーロード仕様からI1を削除Widen種別のイントリンシックには8ビット結果要素のフォームが存在しないため、I1タグは無効- 修正により、V64/V128×I2/I4/I8の正当な6つの宣言のみが生成されるように統正
- 修正内容を説明するコメントを追加
パフォーマンスへの影響
影響なし
関連Issue
その他
- 2021年の#51993以来存在していたが、LLVM 23のバージョンアップにより顕在化
- dotnet/maciosの未トリミング「dont link」iOS テストでSystem.Private.CoreLib.dllのAOTコンパイル失敗として検出
- 呼び出し元に影響なし(結果ベクトルクラスは8ビット要素ベクトルではないため)
- SADDLP/UAADLPのみがこの問題の対象(llvm-intrinsics.hの唯一の
Widen種別エントリ)