Pull Request on 2025年12月21日

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

注意点

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


目次

  1. #122652 Add NoInlining and NoOptimization attributes to ClearWaitSleepJoinState method
  2. #122534 Fix UInt128 to double conversion for values >= 2^104

#122652 Add NoInlining and NoOptimization attributes to ClearWaitSleepJoinState method

  • 作成者: @Copilot
  • 作成日時: 2025年12月18日 21:28:03(UTC)
  • マージ日時: 2025年12月21日 17:32:13(UTC)
  • ラベル: area-CodeGen-coreclr

概要

Issue #122479のランタイム障害に対する一時的な回避策として、Thread.ClearWaitSleepJoinState()メソッドにNoInliningNoOptimization属性を追加しました。コンパイラの最適化によって引き起こされるスレッド待機/スリープ/結合状態遷移の問題を防ぐための最小限の変更です。

[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
private static void ClearWaitSleepJoinState()

変更内容

  • ファイル: src/coreclr/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs
  • 変更内容: ClearWaitSleepJoinState()メソッドに[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]属性を追加
  • 追加: Issue #122479を参照するコメントを記述し、これが一時的な回避策であることを明記

パフォーマンスへの影響

局所的な性能低下あり

このメソッドに対してインライン化と最適化が禁止されるため、当該メソッド単体の性能が若干低下します。ただし、GC Stressテストでのノイズ軽減が期待でき、機能的な影響はありません。変更は3行のみで影響範囲は限定的です。

関連Issue

  • #122479: スレッド状態遷移に関するランタイム障害

その他

本PRはCopilotコーディングエージェントにより生成されました。テスト実施済み(System.Threading.Thread.Tests: 53テスト、0失敗)。今後、根本的な修正が実装されれば、この回避策は削除予定です。


#122534 Fix UInt128 to double conversion for values >= 2^104

  • 作成者: @sdcb
  • 作成日時: 2025年12月14日 09:33:04(UTC)
  • マージ日時: 2025年12月21日 00:03:12(UTC)
  • ラベル: area-System.Numerics community-contribution

概要

UInt128からdouble への変換において、2^104以上の値で発生していた精度問題を修正しました。この問題はInt128にも同様に存在していたため、両方の型で修正が適用されています。変換ロジックの微調整により、大きな値の浮動小数点変換精度が向上します。

変更内容

  • UInt128.cs: 変換ロジックを2行修正
  • Int128Tests.cs: 新規テストケース29行追加(Int128の変換テスト)
  • UInt128Tests.cs: 新規テストケース21行追加(UInt128の変換テスト)

修正により、2^104以上の値をdoubleに変換する際の丸め誤差が解決されました。

パフォーマンスへの影響

影響なし

関連Issue

#122203

その他

  • レビュープロセス中にInt128にも同じ問題が存在することが確認され、同時に修正が行われました
  • release/10.0ブランチへのバックポートが実施されています
  • 複数のレビュワーによる慎重なレビューが実施されており、コア開発チームによって承認されています