Whoops, sorry for the belated response -- Redmine email seems to not be working for me. We have a `replace_method` helper that is a shorthand for doing something like: ``` orig_require = Kernel.instance_method(:require) Kernel.defin...nelhage (Nelson Elhage)
I'd love a way to apply an UnboundMethod to a receiver and list of args without having to first `bind` it. I've ended up using `UnboundMethod`s in some hot paths in my application due to our metaprogramming idioms, and the allocation fro...nelhage (Nelson Elhage)
It's a very common experience that if I google a Ruby method or class, the top Google link to me points to the docs for Ruby 2.2 or 2.1 or even 1.9 or 1.8. As a recent example, googling [ruby unicode_normalize] finds me https://ruby-doc....nelhage (Nelson Elhage)
It's well-known (c.f #11119) that `Module#name` has poor performance on anonymous classes, due to searching the entire constant namespace of the VM. However, we recently discovered that it's even worse than that. In the presence of al...nelhage (Nelson Elhage)
`Array#min` and `Array#max` have different behavior depending on whether or not they are called with array literals: ~~~ $ ruby -e 'puts([1.0, 1].min); one_f = 1.0; one = 1; puts([one_f, one].min)' 1.0 1 ~~~ This is a regress...nelhage (Nelson Elhage)
``` l = ->(a, b) { true } # Raises; Uses Enumerable#all? {1 => 2}.all?(&l) # Does not raise; Uses specialized Hash#any? {1 => 2}.any?(&l) ``` The `Enumerable` behavior was changed (correctly) in #12705, but the `Hash#any?` i...nelhage (Nelson Elhage)