😸

[Feature #20429] パフォーマンスに影響があるメソッドを再定義すると警告を出す提案

2024/11/12に公開

[Feature #20429] Emit a performance warning when specially optimized core methods are redefined

  • パフォーマンスに影響があるメソッドを再定義したときに警告を出すようにする提案
  • 具体的には以下のメソッドが提示されています
    • Integer : #+, #-, #*, #/, #%, #<, #>, #<=, #>=
    • Float : #+, #-, #*, #/, #<, #>, #<=, #>=
    • String : #freeze, #size, #length, #empty?, #+, #succ, #%, #-@
    • Array : #size, #length, #empty?, #hash
    • Hash : #size, #length, #empty?, #[], #[]=
  • この対応は承認されて Ruby 3.4 から -W:performance が有効な場合に警告がでるようになります
Warning[:performance] = true

# warning: Redefining 'String#freeze' disables interpreter and JIT optimizations
class String
  def freeze
    super
  end
end
GitHubで編集を提案

Discussion