[ruby-core:112921] [Ruby master Bug#19464] YJIT miscompiles `BasicObject#__send__` to alias methods of `send`
From:
"naruse (Yui NARUSE) via ruby-core" <ruby-core@...>
Date:
2023-03-17 01:54:52 UTC
List:
ruby-core #112921
Issue #19464 has been updated by naruse (Yui NARUSE).
Backport changed from 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED to 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED, 3.2: DONE
ruby_3_2 b73a07359758a9034996752e981e09ddaffe8d87 merged revision(s) 0eb634ae73cb327ede833b72492f912792a4a9d5.
----------------------------------------
Bug #19464: YJIT miscompiles `BasicObject#__send__` to alias methods of `send`
https://bugs.ruby-lang.org/issues/19464#change-102441
* Author: alanwu (Alan Wu)
* Status: Closed
* Priority: Normal
* Backport: 2.7: DONTNEED, 3.0: DONTNEED, 3.1: DONTNEED, 3.2: DONE
----------------------------------------
Symptoms first experienced and [reported] by users of the `kt-paperclip` gem.
Reproducer:
```ruby
klass = Class.new do
class << self
alias_method :my_send, :send
def bar = :ok
def foo = bar
end
end
with_break = -> { break klass.send(:my_send, :foo) }
wo_break = -> { klass.send(:my_send, :foo) }
31.times { with_break[]; wo_break[] }
```
Fix: https://github.com/ruby/ruby/pull/7377
[reported]: https://github.com/Shopify/yjit/issues/306
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/