From: "naruse (Yui NARUSE) via ruby-core" <ruby-core@...>
Date: 2023-03-17T01:54:52+00:00
Subject: [ruby-core:112921] [Ruby master Bug#19464] YJIT miscompiles `BasicObject#__send__` to alias methods of `send`

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/