Pull Request on 2026年03月29日

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

注意点

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



#126267 Disable CrlBuilderTests.DsaNotDirectlySupported on Android

  • 作成者: @steveisok
  • 作成日時: 2026年03月28日 23:19:55(UTC)
  • マージ日時: 2026年03月29日 13:28:00(UTC)
  • ラベル: area-System.Security

概要

Android環境でのCRL署名検証テストの不安定性に対処するため、CrlBuilderTests.DsaNotDirectlySupportedテストをAndroidプラットフォームで無効化しました。AndroidのHelix deviceプールに含まれるデバイスのBoringSSLバージョン差異とDSA署名の非決定性により、月間約25%の失敗率が発生していたため、[ActiveIssue]属性を追加してテストをスキップするように修正しています。

変更内容

  • src/libraries/System.Security.Cryptography/tests/X509Certificates/CertificateCreation/CrlBuilderTests.cs
    • DsaNotDirectlySupported()メソッドに[ActiveIssue("https://github.com/dotnet/runtime/issues/119023", TestPlatforms.Android)]属性を追加

パフォーマンスへの影響

影響なし

関連Issue

#119023 — Android arm64 Release ビルドで月間12回の失敗が報告されている既知問題 #118603 — System.Security.Cryptography.Tests がAndroidのlowmemorykiller により月間93回OOMで強制終了(別途修正が必要)

その他

本テストは、カスタムDSAX509SignatureGenerator(DSA-1024 + SHA-1)でCRL署名を作成し、その署名をDSA.VerifyData(..., Rfc3279DerSequence)で検証しています。Androidデバイスプールのボリューム差異により、一部デバイスではDSA-1024 + SHA-1が非推奨暗号として拒否されること、および署名ごとのランダムなnonce k使用によるIEEE P1363→DER変換の結果差異が、verification失敗の根本原因です。既存ファイル内の他のテスト(#72906)でも同様のパターンが使用されています。


#126256 [Wasm RyuJit] more INDEX_ADDR codegen fixes

  • 作成者: @AndyAyersMS
  • 作成日時: 2026年03月28日 14:34:42(UTC)
  • マージ日時: 2026年03月29日 14:34:45(UTC)
  • ラベル: area-CodeGen-coreclr

概要

WebAssembly向けのRyuJIT JITコンパイラにおいて、INDEX_ADDR命令のコード生成を改善し、小さい型のインデックス処理を適切に扱うようにしました。

変更内容

  • src/coreclr/jit/codegenwasm.cpp: INDEX_ADDR命令のコード生成ロジックを修正(+4/-5)
  • src/coreclr/jit/regallocwasm.cpp: レジスタ割り当てロジックを調整(+2/-5)

これらの変更は、小さい型のインデックス値(例:byte、short)を扱う際のコード生成を正確にするもので、Wasm JITコンパイラの内部実装に関わります。

パフォーマンスへの影響

影響なし

関連Issue

#126256

その他

このPRはコードレビューのフィードバックに基づいた修正です。


#126240 Skip Unicode 17.0 named block tests on .NET Framework

  • 作成者: @stephentoub
  • 作成日時: 2026年03月28日 01:28:00(UTC)
  • マージ日時: 2026年03月29日 11:37:07(UTC)
  • ラベル: area-System.Text.RegularExpressions

概要

Unicode 17.0アップデート後に追加された58個の新しい名前付きブロックのテストケースが、Unicode 4.0のブロックのみをサポートする.NET Frameworkで失敗していた問題を修正します。新しいブロックテストを!PlatformDetection.IsNetFrameworkガードで条件付き実行して、.NET Frameworkでの116個のouterloopテスト失敗を解決します。

変更内容

  • src/libraries/System.Text.RegularExpressions/tests/FunctionalTests/RegexCharacterSetTests.cs
    • Unicode 17.0で追加された新しい名前付きブロック(58個)のテストケースに対して!PlatformDetection.IsNetFrameworkガードを追加
    • .NET Frameworkでは従来のUnicode 4.0の名前付きブロックテストのみ実行
    • 新しいブロック名テストケースは.NET Frameworkではスキップ

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

この変更はプラットフォーム互換性の問題への対応です。.NET Frameworkが古いUnicodeバージョンの仕様に基づいており、最新のUnicodeブロック定義をサポートしていないため、テストを条件分岐させることで両方のプラットフォームでの正確なテスト実行を実現しています。


#126235 clang-21 on macos fixes

  • 作成者: @AaronRobinsonMSFT
  • 作成日時: 2026年03月28日 00:07:55(UTC)
  • マージ日時: 2026年03月29日 06:08:21(UTC)
  • ラベル: area-VM-coreclr

概要

Apple Clang 21(Xcode最新版)でのビルド失敗に対応するパッチです。主な変更は、新しいClangの厳格な型チェック(特に-Wc++-keyword警告と暗黙的なvoid*変換)に対応するため、ネイティブライブラリ群に明示的なキャストを追加しています。ICUヘッダーの警告も抑制しています。

変更内容

  • System.Security.Cryptography.Native.Apple関連: CF型API(CFDictionaryGetValueCFArrayなど)やメモリ割り当て(malloc)の戻り値に対し、明示的なキャストを追加

    • pal_x509chain.c: mallocの戻り値をキャスト
    • pal_ssl.c: CF APIのバイトポインタとCFArray要素型をキャスト
    • pal_ecc.c: CFDictionaryGetValueの結果をCFNumberRefにキャスト
    • pal_networkframework.m: 型キャストとフォーマット整理、tls_ciphersuite_tへのキャスト
    • pal_ssl.h: 関連する型定義調整
  • System.Native関連:

    • pal_networking.c: Darwin無制限selectパスでcalloc戻り値へのキャスト追加
    • pal_environment.m: malloc戻り値の明示的キャスト
    • pal_memory.c: メモリ割り当て関連の対応(11行追加)
  • System.Globalization.Native: CMakeLists.txt-Wc++-keyword警告を抑制(ICUヘッダー由来)

  • テスト: SwiftErrorHandling.swiftで戻り値の初期化処理を改善

パフォーマンスへの影響

影響なし

関連Issue

#126235#119706

その他

  • Apple Clang 21(clang-2100.0.123.102)での対応
  • Clang 21のReleaseNotesで言及されている-Wc++-keywordの変更に対応
  • ICUの関連PRとも部分的に関連(unicode-org/icu#2913)
  • Copilotレビュー時に、SwiftErrorHandling.swiftのmessageLength未初期化パスに関する指摘あり(低信頼度)

#126230 Enable the PatternsDataSet_GenerateInputsWithNonBacktracking test

  • 作成者: @stephentoub
  • 作成日時: 2026年03月27日 22:15:27(UTC)
  • マージ日時: 2026年03月29日 14:11:44(UTC)
  • ラベル: area-System.Text.RegularExpressions

概要

NonBacktrackingサンプラーの無限ループバグと、ループバックトラッキング最適化における論理エラーを修正して、PatternsDataSet_GenerateInputsWithNonBacktrackingテストを再有効化します。

修正内容:

  1. サンプラー無限ループ修正:すべてのミンタームが行き止まり状態に到達する場合、UndoTransitionで状態が復元されても終了条件がトリガーされない問題をtransitionSucceededフラグで追跡して解決
  2. バックトラッキング最適化バグ修正CanReduceLoopBacktrackingToSinglePositionで、後続シーケンスが完全にnullableの場合に不正な削減が発生していた問題を修正(iterateNullableSubsequentをtrueからfalseに変更)

変更内容

  • SymbolicRegexMatcher.Sample.csSampleMatchesメソッドにtransitionSucceededトラッキングを追加し、実行可能な遷移がない場合にループを終了
  • RegexNode.csCanReduceLoopBacktrackingToSinglePositioniterateNullableSubsequentパラメータをfalseに修正。後続がnullableの場合、任意のバックトラック位置でマッチ可能になるため、単一位置への削減は不正
  • Regex.Debug.cs:サンプリング検証ロジックを強化し、サンプル入力が実際にマッチすることを確認してから返却
  • テストファイル(2ファイル):テストを再有効化(SourceGeneratedはスキップ、タイムアウト設定)し、回帰テストケースを追加

パフォーマンスへの影響

テストセット拡大により、正規表現パターンの"実世界"データセットに18,000件の生成入力テストが追加されます。SourceGeneratedエンジンはRoslyn使用の性能上の理由からテストからスキップされており、Compiledエンジンとのコード生成共有でカバレッジは同等です。

関連Issue

#79373

その他

修正例:パターン([0-9\w\+]+\.)|([0-9\w\+]+\+)([\(\)]*) + 入力2+_のような複雑なパターンで、修正前はCompiledおよびSourceGeneratedエンジンが有効なマッチを拒否していました。この問題は後続シーケンスがnullableである場合の最適化エラーが原因でした。


目次