注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #132484 Fix ILLink.Tasks output path in source-only builds
- #132470 [release/11.0-rc1] [Build] Fix minipal build on Apple targets
- #132452 [System.Text.Json] Fix ARM64 Utf8JsonReader regression
- #132432 [System.Management] Make generated WMI wrappers disposable
- #132424 Rename WasmObjectWriter to WebCilObjectWriter
- #132421 [Build] Fix minipal build on Apple targets
- #132417 Reject malformed UTF-8 number separators
- #132397 Fix CompareInfo.IsPrefix/IsSuffix with CompareOptions.IgnoreSymbols not ignoring leading/trailing symbols
- #132353 Expose Composite ML-DSA CNG identifiers
- #132349 Implement AES-KW
- #132332 Match versioned OS platform attributes in CoreCLR PInvokeCollector, add regression test
- #132321 Fix hang in InvalidClientRequestTests by guarding oversized Content-Length cases to managed implementation
- #132318 [ci-scan-feedback] Add fixer freshness/live-leg gate to stop already-fixed & retired-leg PRs
- #132293 Improve NRBF ArrayRecord.GetArray(allowNulls: false) perf
- #132167 Merge JIT Generics tests into explicit runners
- #131741 Use shared implementation for entry extraction
- #128511 Fix duplicate _start offset in Tensor.Resize
#132484 Fix ILLink.Tasks output path in source-only builds
- 作成者: @akoeplinger
- 作成日時: 2026年08月18日 19:23:19(UTC)
- マージ日時: 2026年08月18日 22:31:33(UTC)
- ラベル: linkable-framework area-Tools-ILLink
概要
ソースのみビルド(/p:DotNetBuildSourceOnly=true)時に、ILLink.Tasksの出力パスが誤ってnetframeworkサフィックスを付与される問題を修正します。NetFrameworkToolCurrentが空の場合、外部ビルドのパス条件が誤って真と評価されていました。条件をガードしてNetFrameworkToolCurrentが非空であることを確認するようにしました。
変更内容
- src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj:
OutputPathとIntermediateOutputPathのnetframework書き換え条件の両方を$(NetFrameworkToolCurrent)の非空チェックでガード(+2/-2)
パフォーマンスへの影響
影響なし
関連Issue
#132402(mono タスクプロジェクトで既に適用された修正に対応)
その他
- この問題は潜在的なもので、現在の実装では外部
$(OutputPath)を読む コンシューマーが存在しないため影響は出ていません - 今後
GetFilesToPackageスタイルのターゲットなどを追加する際のトラップを防ぐ修正です - #132402で mono タスクプロジェクトに既に適用されていた同様のガード処理をこちらにも適用した形になります
#132470 [release/11.0-rc1] [Build] Fix minipal build on Apple targets
- 作成者: @github-actions[bot]
- 作成日時: 2026年08月18日 14:15:30(UTC)
- マージ日時: 2026年08月18日 19:57:39(UTC)
- ラベル: Servicing-approved area-Infrastructure-libraries
概要
Apple プラットフォーム向けのビルド不具合を修正するバックポート。PR #132113で導入された回帰により、minipal の thread.c が pthread_threadid_np と pthread_setname_np を正しく認識できていなかった問題を解決します。
変更内容
- src/native/minipal/thread.c: 4行追加
- Apple プラットフォーム向けのプリプロセッサディレクティブを追加し、
pthread_threadid_npとpthread_setname_npの認識を改善
- Apple プラットフォーム向けのプリプロセッサディレクティブを追加し、
パフォーマンスへの影響
影響なし
関連Issue
#132421(ベースとなるPR) #132113(回帰を導入したPR)
その他
- この変更は Apple プラットフォーム(macOS など)の thread.h/thread.c コンパイルのみに影響
- リスク評価: 低い
- Apple ジョブのビルドテストで検証済み
- release/11.0-rc1 ブランチへのバックポート
#132452 [System.Text.Json] Fix ARM64 Utf8JsonReader regression
- 作成者: @jozkee
- 作成日時: 2026年08月18日 04:53:45(UTC)
- マージ日時: 2026年08月18日 18:19:00(UTC)
- ラベル: area-System.Text.Json
概要
ARM64環境でのUTF8JSONリーダーのパフォーマンス回帰を修正するため、Utf8JsonReader.TryGetNumber内の数値終端チェック(.、E、eの判定)をパターンマッチング形式から明示的な比較演算子に置き換えました。セマンティクスは等価ですが、ARM64での実装がより効率的なコード生成を行います。
変更内容
- src/libraries/System.Text.Json/src/System/Text/Json/Reader/Utf8JsonReader.cs:
TryGetNumberメソッド内の数値終端チェックを、is not ((byte)'.' or (byte)'E' or (byte)'e')から!= '.' && != 'E' && != 'e'に変更(4行) - src/libraries/System.Text.Json/src/System/Text/Json/Reader/Utf8JsonReader.MultiSegment.cs: 同様の変更を複数段落で実施(合計10行変更)
- src/libraries/System.Text.Json/src/System/Writer/JsonWriterHelper.cs: 関連する比較処理の整理(4行変更)
パフォーマンスへの影響
改善(ARM64環境): 約43.5%の大幅なパフォーマンス向上
- Pattern形式(変更前): 900.8 ns
- Restored形式(変更後): 515.4 ns
- 改善率: 0.57倍 (43% 削減)
Azure Ampere ARM64マシンでのベンチマーク測定より、System.Text.Json.Tests.Perf_Get.GetUInt64において確認されました。パターンマッチング形式がARM64での機械語生成で不効率であったことが原因です。
関連Issue
その他
- 変更はセマンティクス上同等ですが、ARM64コンパイラの最適化特性により大きなパフォーマンス差が発生していました
- レビューコメント注記:
ConsumeZeroメソッド内でも同じパターンマッチング形式が使用されているため、完全な修正の一貫性を考慮するとそちらも同様に変更することが推奨されています
#132432 [System.Management] Make generated WMI wrappers disposable
- 作成者: @Macromullet
- 作成日時: 2026年08月17日 22:10:32(UTC)
- マージ日時: 2026年08月18日 19:39:11(UTC)
- ラベル: area-System.Management community-contribution
概要
System.Management の生成される強型 WMI ラッパーが IDisposable を実装するように改善しました。生成されるコレクションラッパーとエネレーターラッパーが、基になる ManagementObjectCollection と ManagementObjectEnumerator の Dispose を転送するようになり、COM ベースの WMI リソースを確定的に解放できるようになります。
変更内容
- WMIGenerator.cs: 生成コードに
IDisposableインターフェイスを実装させ、コレクション/エネレーターラッパーにDispose()メソッドを追加。基になるManagementObjectCollection/ManagementObjectEnumeratorの Dispose を転送する実装を生成。 - ManagementClassTests.cs: 生成される CodeDOM 型が
IDisposableを実装し、ラップされたフィールドを正しく破棄することを検証する回帰テストを追加。
パフォーマンスへの影響
影響なし
関連Issue
その他
- この変更は生成されたソースコードに対する追加機能であり、既存のファイナライザー フォールバックは変更されません。
- 既存コンシューマーは破壊的影響を受けませんが、新たに
usingステートメントで確定的なリソース解放が可能になります。 - .NET 11 と .NET Framework の両方でテスト完了(各 27/25 テスト実行、スキップ 4 件)
- レビュー指摘:生成コードのコメント (
ObjectEnumerator.Dispose()) と実装 (privObjEnum.Dispose()) のメンバー名が不一致
#132424 Rename WasmObjectWriter to WebCilObjectWriter
- 作成者: @jtschuster
- 作成日時: 2026年08月17日 18:27:35(UTC)
- マージ日時: 2026年08月18日 17:59:39(UTC)
- ラベル: area-ReadyToRun
概要
WasmObjectWriterをWebCilObjectWriterに名前変更し、空の基本クラスWasmObjectWriterを作成するリファクタリングです。WebCilモジュールとNativeAOT形式の共通基盤として使用されるため、将来の抽出作業でgitが移動を正しく認識できるよう、名前変更を抽出作業と分離しています。
変更内容
- WebCilObjectWriter.cs:
WasmObjectWriterからWebCilObjectWriterへクラス名を変更、新たに空の基本WasmObjectWriterクラスを作成 - 参照の更新: WebCilSection.cs、WasmGlobalImports.cs、ReadyToRunObjectWriter.cs、WasmImportThunk.cs、WasmInterpreterToR2RThunkNode.cs、WasmR2RToInterpreterThunkNode.csにおいて、クラス名参照を更新
- プロジェクトファイル: ILCompiler.ReadyToRun.csproj内のファイル参照を更新
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このPRは純粋なリネーミング・リファクタリングであり、機能的な変更は含まれていません。クラス継承構造の準備作業として、後続の作業でより容易なコード移動を実現するためのものです。
#132421 [Build] Fix minipal build on Apple targets
- 作成者: @mdh1418
- 作成日時: 2026年08月17日 17:33:49(UTC)
- マージ日時: 2026年08月18日 07:02:49(UTC)
- ラベル: area-System.Threading
概要
Mono の Apple ビルド環境でminipal の thread 関連機能が hidden になってしまう問題を修正するPR。_XOPEN_SOURCE が定義されている場合、Apple SDK の pthread.h が Darwin 固有の pthread_threadid_np と pthread_setname_np 宣言を隠してしまう問題を、_DARWIN_C_SOURCE を先に定義することで解決。iossimulator-arm64 での Release Mono ビルドで動作検証済み。
変更内容
- src/native/minipal/thread.c:
pthread.hをインクルードする前に_DARWIN_C_SOURCEを定義(__APPLE__ターゲット向け、未定義の場合のみ)。Darwin 固有の pthread 関数宣言を可視化するための説明コメントも追加。
パフォーマンスへの影響
影響なし
関連Issue
その他
なし
#132417 Reject malformed UTF-8 number separators
- 作成者: @tannergooding
- 作成日時: 2026年08月17日 17:09:56(UTC)
- マージ日時: 2026年08月18日 14:53:12(UTC)
- ラベル: area-System.Numerics
概要
UTF-8数値パーシング時に、不正なUTF-8バイトシーケンス(継続バイト0xA0)がASCIIスペースとして誤認識される脆弱性を修正しました。MatchChars<TChar>のNBSP正規化をUTF-16のみに制限し、UTF-8は厳密なバイト一致を要求するようにしました。
変更内容
- src/libraries/Common/src/System/Number.Parsing.Common.cs:
MatchChars<TChar>メソッドのNBSP/narrow-NBSP↔スペース正規化をUTF-16コードユニット(2バイト)のみに制限。UTF-8コードユニット(1バイト)は厳密なバイト一致を要求するように修正(+2/-2行) - src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Int32Tests.cs: 不正なUTF-8(
0xA0継続バイト)がASCIIスペースに設定されたグループセパレータにマッチしないことを確認する回帰テストを追加(+8行) - src/libraries/System.Runtime.Numerics/tests/BigInteger/parse.cs:
BigIntegerのUTF-8パーシングで不正なセパレータバイトを拒否する同等の回帰テストを追加(+8行)
パフォーマンスへの影響
影響なし
関連Issue
#123783でリグレッションしたもので、今回の修正で解決されます。
その他
- コア数値パーサー(CoreLib)と別途の
BigInteger共有ソースインスタンスの両方で回帰テストカバレッジを確保 - 破壊的変更ではなく、セキュリティ関連の脆弱性修正です
- UTF-16とUTF-8の異なる互換性要件を正しく区別する実装上の改善
#132397 Fix CompareInfo.IsPrefix/IsSuffix with CompareOptions.IgnoreSymbols not ignoring leading/trailing symbols
- 作成者: @HarnageaGabriel
- 作成日時: 2026年08月17日 10:31:26(UTC)
- マージ日時: 2026年08月18日 18:23:41(UTC)
- ラベル: area-System.Globalization community-contribution
概要
ICUバックエンド環境で、CompareInfo.IsPrefix/IsSuffixがCompareOptions.IgnoreSymbolsを使用する場合に先頭/末尾のシンボル文字を正しく無視していなかった問題を修正しました。
例:
// 修正前:false(不正)
CultureInfo.InvariantCulture.CompareInfo.IsPrefix("''Tests", "Tests", CompareOptions.IgnoreSymbols);
// 修正後:true(正常)
CultureInfo.InvariantCulture.CompareInfo.IsPrefix("''Tests", "Tests", CompareOptions.IgnoreSymbols);
変更内容
pal_collation.c (
CanIgnoreAllCollationElements関数): 低レベルの生コレーション要素イテレータ(ucol_next)による手動検査を、高レベルのucol_strcollAPIを使用した空文字列との比較に置き換えました。これにより、コレーターの強度設定、代替ハンドリング(IgnoreSymbols)、ロケール調整が統一的に適用されるようになります。CompareInfoTests.IsPrefix.cs:
''Tests/Testsケースのプラットフォーム条件付きの「既知ICUバグ」分岐を削除し、期待値を無条件にtrueに設定しました。CompareInfoTests.IsSuffix.cs: 対称的なケース(
Tests''/Tests)の回帰テストを追加しました。
パフォーマンスへの影響
影響なし。高レベルAPI(ucol_strcoll)への置き換えはファイル内で既に使用されているパターンのため、パフォーマンス特性に大きな変化はありません。
関連Issue
その他
- 修正は
ComplexStartsWithとComplexEndsWithの両方で共有される単一のヘルパー関数に限定されており、スコープは狭いです。 - NLS(Windows)およびApple hybrid実装は既に同じ問題の影響を受けないコードパスを使用していたため、動作変更はICUバックエンド環境のみです。
- 作成者は既存のテストファイルにこの問題が「既知ICUバグ」として文書化されていたことを指摘しており、修正によってこの制限が解消されます。
#132353 Expose Composite ML-DSA CNG identifiers
- 作成者: @PranavSenthilnathan
- 作成日時: 2026年08月15日 00:42:57(UTC)
- マージ日時: 2026年08月18日 09:15:37(UTC)
- ラベル: area-System.Security
概要
Composite ML-DSA CNG識別子をパブリックAPIとして公開する変更です。これにより、.NET開発者はCNG(Cryptography Next Generation)経由でComposite ML-DSA暗号化アルゴリズムを利用する際に、公式に定義された識別子にアクセスできるようになります。
変更内容
- System.Security.Cryptography.cs: Composite ML-DSA関連の
CngAlgorithmとCngAlgorithmGroupの識別子をパブリックAPIとしてリファレンスに追加(+4行) - CngAlgorithm.cs: Composite ML-DSA対応のCNG識別子定義を追加
- CngAlgorithmGroup.cs: Composite ML-DSA対応のCNGアルゴリズムグループ定義を追加
- CompositeMLDsaTestHelpers.Cng.cs: テストヘルパーから冗長なコードを削除(-7行)
パフォーマンスへの影響
影響なし
関連Issue
その他
- これはパブリックAPIの追加であるため、APIレビュー承認が必要となる可能性があります
- テストコード内の重複する定義が削除されているため、保守性が向上しています
#132349 Implement AES-KW
- 作成者: @vcsjones
- 作成日時: 2026年08月14日 23:57:31(UTC)
- マージ日時: 2026年08月18日 08:17:37(UTC)
- ラベル: area-System.Security cryptographic-docs-impact
概要
RFC 3394に準拠したAES Key Wrap (AES-KW)の実装を追加します。新しいパブリックAPI Aes.EncryptKeyWrap*/Aes.DecryptKeyWrap* と GetKeyWrapLength を導入し、マネージド実装を基本としながら、Apple (CryptoKit)とOpenSSLでは自動的にネイティブ実装を使用します。Windowsはマネージド実装を使用します。
// 使用例
byte[] keyToWrap = ...;
byte[] kek = ...; // Key Encryption Key
byte[] wrapped = aes.EncryptKeyWrap(keyToWrap, kek);
byte[] unwrapped = aes.DecryptKeyWrap(wrapped, kek);
変更内容
- パブリックAPI追加 (
System.Security.Cryptography/Aes.cs):EncryptKeyWrap()、DecryptKeyWrap()、GetKeyWrapLength()メソッドを追加。RFC 3394準拠のマネージド実装を提供 - プラットフォーム固有の実装:
- Apple (
AesImplementation.Apple.cs): macOS 12以上、iOS/tvOS 15以上でCryptoKitを使用。iOS 13-14では管理実装にフォールバック - OpenSSL (
AesImplementation.OpenSsl.cs): EVP wrap ciphersを利用 - Windows: マネージド実装を使用
- Apple (
- ネイティブP/Invokeの追加 (
Interop.EVP.Cipher.cs,Interop.AesKeyWrap.cs): OpenSSLおよびApple CryptoKit用のネイティブバインディング - ネイティブ実装 (C/Swift): OpenSSLとApple用のAES-KW実装をexport
- テストの再編成:
AesKeyWrapTests.csをAesKeyWrapPaddedTests.csに名前変更し、RFC 5649 (padded)と RFC 3394 (unpadded)のテストを分離。既知応答ベクトル (KAT)、改ざん検証テストを追加
パフォーマンスへの影響
ネイティブ実装の使用により、暗号化・復号化性能が向上します(具体的な数値は提供されていません)。マネージド実装はフォールバック用途のため、プラットフォーム対応により自動的に最適な実装が選択されます。
関連Issue
その他
- ディフの読みやすさに課題あり(テストファイルの分割により削除/追加行数が増加)
- マネージド実装はAES-ECBを基盤としており、既存のAES-KWP実装と同じアプローチを踏襲
#132332 Match versioned OS platform attributes in CoreCLR PInvokeCollector, add regression test
- 作成者: @Copilot
- 作成日時: 2026年08月14日 17:57:08(UTC)
- マージ日時: 2026年08月18日 18:03:03(UTC)
- ラベル: area-Build-mono
概要
CoreCLR PInvokeCollectorがバージョン付きOSプラットフォーム属性(例:[SupportedOSPlatform("browser1.0")])を正しく認識できていない問題を修正します。既存コードは属性値を完全一致で比較していたため、バージョン情報を含む属性は対象OSと一致しないと扱われていました。MatchesTargetOSヘルパーメソッドを導入して、バージョンプレフィックスを無視した比較を実装します。
変更内容
- src/tasks/WasmAppBuilder/coreclr/PInvokeCollector.cs:
EvaluatePlatformAttributesメソッド内の属性比較ロジックを修正。SupportedOSPlatformおよびUnsupportedOSPlatform属性に対して、文字列の完全一致比較からMatchesTargetOSヘルパーを使用した比較に変更。MatchesTargetOSメソッド(NETFRAMEWORK条件付きでnet472対応)をPInvokeCollector.csに重複実装。 - src/mono/wasm/Wasm.Build.Tests/PInvokeTableGeneratorTests.cs: 新規テストメソッド
VersionedOSPlatformPInvokeIsIncludedを追加(+37行)。 - src/mono/wasm/testassets/EntryPoints/PInvoke/VersionedOSPlatform.cs: テスト用アセット。バージョン付き属性
[SupportedOSPlatform("browser1.0")]と[SupportedOSPlatform("windows1.0")]でアノテートされたP/Invokeを含む(+31行)。 - src/mono/wasm/testassets/native-libs/versioned-osplatform.c: テスト用ネイティブライブラリ(+4行)。
パフォーマンスへの影響
影響なし
関連Issue
その他
- MonoのPInvokeCollector(
src/mono/wasm/Wasm.Build.Tests/mono/PInvokeCollector.cs)は既に修正済みのため変更なし。 - コード重複を避けるべきという意見もありましたが、メンテナの判断により、両者のCollectorを独立した状態に保つため
MatchesTargetOSを重複実装。 - 回帰テストは生成されたPInvokeテーブルに正しいエントリが含まれること、および実行時に呼び出し可能であることを検証します。
#132321 Fix hang in InvalidClientRequestTests by guarding oversized Content-Length cases to managed implementation
- 作成者: @alinpahontu2912
- 作成日時: 2026年08月14日 14:22:36(UTC)
- マージ日時: 2026年08月18日 11:10:10(UTC)
- ラベル: area-System.Net.Http
概要
InvalidClientRequestTests内の2つの新規テストケースが超過サイズのContent-Lengthを拒否するテストを実施していますが、Windows上でのネイティブhttp.sysパス経由で実行されるとこれらが同じ方法で拒否されず、Helixタイムアウトまでハングが発生していました。本修正では、これらのテストをHelpers.IsManagedImplementationで保護し、マネージド実装のHTTPパーサーのみを対象とするようにします。
変更内容
- src/libraries/System.Net.HttpListener/tests/InvalidClientRequestTests.cs
- 超過サイズのContent-Length値(
long.MaxValue + 1、ulong.MaxValue)を検証する2つのテストケースをHelpers.IsManagedImplementationで条件分岐 - Windows環境でのhttp.sys実装による予期しないハング動作を回避
- 超過サイズのContent-Length値(
パフォーマンスへの影響
影響なし(テスト実行時間の改善)
関連Issue
その他
なし
#132318 [ci-scan-feedback] Add fixer freshness/live-leg gate to stop already-fixed & retired-leg PRs
- 作成者: @Copilot
- 作成日時: 2026年08月14日 13:22:35(UTC)
- マージ日時: 2026年08月18日 08:18:56(UTC)
- ラベル: area-Infrastructure
概要
ci-failure-fix ワークフローが既に修正されたまたは廃止されたビルド構成に対して不要なPRを開き続ける問題を解決するため、修正試行前に3つのゲートチェック(最近の発生確認、ライブレグ確認、既存の修正確認)を追加します。これらのチェックのいずれかに該当する場合、PRを作成せずに処理をスキップします。
変更内容
.github/workflows/ci-failure-fix.md: Step 4として新しいゲート処理を挿入(元のStep 3の後、Step 5の前)- Recent occurrence: 過去14日間にビルド失敗の記録がない場合、既に修正済みまたは廃止済みとしてスキップ
- Live leg: 失敗したレグが最新のビルドタイムラインに存在し、
eng/pipelines/**の HEAD に定義されていることを確認;廃止されたMono mobile/wasmレグなどが検出されたらスキップ - Fix already landed: HEAD での失敗ソース確認と、KBE作成以降の
git logを通じて修正が既に適用されていないか確認;修正済みならスキップ
- スキップ理由の標準フレーズを定義し、フィードバックワークフローの集計処理との互換性を維持
- 行192の末尾スペース1文字を削除
パフォーマンスへの影響
影響なし(ワークフロー定義テキストの変更のみ)
関連Issue
#131873、#129653、#130231、#130232、#131644、#131699
その他
- コード変更なし、ワークフロー定義(マークダウン)のみの変更
ci-failure-fix.lock.ymlは再コンパイル不要(frontmatter に変更なし)- markdownlint で検証済み
- Step 4 のゲート配置は既存の Step 5.1.1 パイプラインカテゴリゲートと同じパターンに従う
#132293 Improve NRBF ArrayRecord.GetArray(allowNulls: false) perf
- 作成者: @Copilot
- 作成日時: 2026年08月13日 21:53:56(UTC)
- マージ日時: 2026年08月18日 16:10:30(UTC)
- ラベル: tenet-performance area-System.Formats.Nrbf
概要
NRBF(.NET Remoting Binary Format)のArrayRecord.GetArray(allowNulls: false)メソッドのパフォーマンス最適化。メソッド呼び出し時に、結果配列の割り当て前にLengthとRecords.Countを比較して、複数のNull Recordが存在する場合は即座に例外をスローすることで、大規模メモリ割り当てを回避します。
変更内容
- ArrayRecord.cs:
GetArray(allowNulls: false)呼び出し時に、Length と Records.Count の比較による早期終了ロジックを追加(+16行) - ArraySingleObjectRecord.cs, ArraySingleStringRecord.cs, JaggedArrayRecord.cs, RectangularArrayRecord.cs, SZArrayOfRecords.cs: 各クラスで同様の最適化ロジックを追加(各+2行)
- ArrayOfSerializationRecordsTests.cs: 新しい最適化ロジックの動作検証テストを追加(+62行)
パフォーマンスへの影響
Null記録を含む不正なNRBFデータを処理する際に、不要な大規模配列割り当てを回避することで、メモリ使用量削減とスループット向上が期待できます。特にallowNulls: falseで即座に検証失敗する場合の改善が有効。
関連Issue
その他
変更対象はSystem.Formats.Nrbfライブラリの内部実装で、公開APIの変更なし。複数のArrayRecord派生クラスに同様の最適化が適用されています。
#132167 Merge JIT Generics tests into explicit runners
- 作成者: @jkoritzinsky
- 作成日時: 2026年08月11日 20:40:30(UTC)
- マージ日時: 2026年08月18日 17:24:20(UTC)
- ラベル: area-CodeGen-coreclr
概要
JIT Genericsテスト群をグローブベースのランナーから6つの明示的なランナーに統合し、ビルド構成を明確化。212個の個別プロジェクトラッパーを廃止し、C#テストソースを直接ランナーアセンブリにコンパイルすることでテストインフラを簡素化。Windows専用テストはプラットフォームフィルタリングで対応。
変更内容
- ランナー統合: グローブベースのマージランナーを、
DebugTypeとOptimizeでグループ化した6つの明示的なランナーに置き換え - テストコンパイル: C#テストソースを直接ランナーアセンブリにコンパイル(一意の名前空間で衝突回避)、IL参照は保持
- プロジェクト削除: 212個の個別C#プロジェクトラッパー(.csproj)を削除
- プラットフォーム条件付きテスト: P/InvokeとgetclassfrommethodparamテストをWindows専用フィルタリング対象に変更
- 優先度維持: Priority-1スケジューリング(
[OuterLoop])を保持
パフォーマンスへの影響
ビルド時間短縮とテスト発見時間改善が期待されます(具体的な数値は提供されていません)。直接コンパイルによるオーバーヘッド削減。
関連Issue
なし
その他
テスト実行結果:
- ビルド検証:
build.cmd clr+libs -lc release -rc checked実施 - 全6つのマージランナーをChecked
Core_Rootに対して実行、全て成功(戻り値100、エラーなし) - Windows専用テスト統合後の再実行でも
JIT.GenericsとJIT.Generics_rが正常動作確認
注記: 変更ファイル数が300を超えるため、Copilotによる自動レビューは実施されていません。
#131741 Use shared implementation for entry extraction
- 作成者: @alinpahontu2912
- 作成日時: 2026年08月03日 13:40:09(UTC)
- マージ日時: 2026年08月18日 17:58:00(UTC)
- ラベル: area-System.IO.Compression
概要
System.IO.Compression.ZipFileのZipArchiveEntryファイル抽出ロジックをリファクタリング。パスワード有無の複数のオーバーロード間で重複していた抽出処理を、同期・非同期の共有実装メソッドに統一し、コード重複を削減しました。
変更内容
- ZipFileExtensions.ZipArchiveEntry.Extract.cs: 同期メソッド群を新しい
ExtractToFileCore(...)共有ヘルパーメソッドに委譲(43行削減、12行追加) - ZipFileExtensions.ZipArchiveEntry.Extract.Async.cs: 非同期メソッド群を新しい
ExtractToFileCoreAsync(...)共有ヘルパーメソッドに委譲(47行削減、14行追加)
パフォーマンスへの影響
影響なし(リファクタリングのため動作・パフォーマンスは変わらず)
関連Issue
なし
その他
内部実装の整理に伴う変更。公開APIには直接の影響なし。
#128511 Fix duplicate _start offset in Tensor.Resize
- 作成者: @prozolic
- 作成日時: 2026年05月23日 00:32:31(UTC)
- マージ日時: 2026年08月18日 15:25:34(UTC)
- ラベル: area-System.Numerics.Tensors community-contribution
概要
Tensor.Resizeメソッドにおいて、ReadOnlySpan<T>作成時に_startオフセットが重複適用される問題を修正しました。AsTensorSpan()._referenceは既に_startオフセットを含んでいるため、Unsafe.Addで再度適用することで、スパンの開始位置が誤ることになっていました。
変更内容
- System/Numerics/Tensors/netcore/Tensor.cs:
Tensor.Resize内でReadOnlySpan<T>作成時にUnsafe.Addによる重複オフセット適用を削除。AsTensorSpanからAsReadOnlyTensorSpanに変更し、tensor._values.Length - tensor._startから(int)tensor.FlattenedLengthに変更 - TensorTests.cs:
Resizeメソッドの動作を検証するテストケースを追加(39行)
パフォーマンスへの影響
影響なし(バグ修正のため)
関連Issue
その他
Tensor.ResizeToメソッドとの一貫性を保つため、APIの統一も同時に実施されています。