[#65451] [ruby-trunk - Feature #10333] [PATCH 3/1] optimize: "yoda literal" == string — ko1@...
Issue #10333 has been updated by Koichi Sasada.
ko1@atdot.net wrote:
Eric Wong <normalperson@yhbt.net> wrote:
Eric Wong <normalperson@yhbt.net> wrote:
On 2014/10/09 11:04, Eric Wong wrote:
SASADA Koichi <ko1@atdot.net> wrote:
[#65453] [ruby-trunk - Feature #10328] [PATCH] make OPT_SUPPORT_JOKE a proper VM option — ko1@...
Issue #10328 has been updated by Koichi Sasada.
[#65559] is there a name for this? — Xavier Noria <fxn@...>
When describing stuff about constants (working in their guide), you often
On 2014/10/09 20:41, Xavier Noria wrote:
On Thu, Oct 9, 2014 at 1:59 PM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
[#65566] [ruby-trunk - Feature #10351] [Open] [PATCH] prevent CVE-2014-6277 — shyouhei@...
Issue #10351 has been reported by Shyouhei Urabe.
[#65741] Re: [ruby-cvs:55121] normal:r47971 (trunk): test/ruby/test_rubyoptions.rb: fix race — Nobuyoshi Nakada <nobu@...>
On 2014/10/16 10:10, normal@ruby-lang.org wrote:
Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
2014-10-16 12:48 GMT+09:00 Eric Wong <normalperson@yhbt.net>:
[#65753] [ruby-trunk - Feature #10333] [PATCH 3/1] optimize: "yoda literal" == string — ko1@...
Issue #10333 has been updated by Koichi Sasada.
[#65818] [ruby-trunk - Feature #10351] [PATCH] prevent CVE-2014-6277 — shyouhei@...
Issue #10351 has been updated by Shyouhei Urabe.
[ruby-core:65581] [ruby-trunk - Bug #9622] Extra method arguments are magically swallowed after first successful call, possible method cache bug
Issue #9622 has been updated by Nobuyoshi Nakada.
Duplicated by Bug #10353: weird behavior when dynamically adding method using instance_eval added
----------------------------------------
Bug #9622: Extra method arguments are magically swallowed after first successful call, possible method cache bug
https://bugs.ruby-lang.org/issues/9622#change-49329
* Author: Jean Boussier
* Status: Closed
* Priority: Normal
* Assignee:
* Category: core
* Target version:
* ruby -v: 2.0.0
* Backport: 1.9.3: REQUIRED, 2.0.0: DONE, 2.1: DONE
----------------------------------------
The following code behaviour totally change since ruby 2.0.0
~~~
class Foo
def bar(*args)
attribute(:bar, *args)
end
def attribute(name)
puts name
end
end
foo = Foo.new
begin
foo.bar(100)
rescue => e
puts e.class.name
end
foo.bar # legit
5.times do
foo.bar(100)
end
puts 'No errors??? WTF???'
~~~
ruby < 2.0 output:
~~~
ArgumentError
bar
(eval):3:in `attribute': wrong number of arguments (2 for 1) (ArgumentError)
from (eval):3:in `bar'
from foo.rb:28
from foo.rb:27:in `times'
from foo.rb:27
~~~
Which is expected.
But ruby >= 2.0 output
~~~
ArgumentError
bar
bar
bar
bar
bar
bar
No errors??? WTF???
~~~
In short, after the first successful call, the extra arguments are just ignored. I have no idea of what is going on here, but it look like a broken optimization.
All rubies >= 2.0 are affected. 1.8.7 and 1.9.3 are fine.
Regards.
A gist describing the issue: https://gist.github.com/byroot/9495455
--
https://bugs.ruby-lang.org/