Hi Yusuke, I looked into the performance issue: * I used the mail gem specs as a slightly longer performance test. Without Coverage, the specs take 10.5 seconds. The current Coverage library increases that by 14%. My proposed changes ...srawlins (Sam Rawlins)
Hi Yusuke, thanks for the comments! I want to first defend the Demand and Use Case. And thank you for the Review comments; I'll apply them ASAP. ## Demand in Ruby Core I think that Ripper is inadequate for these new metrics for the...srawlins (Sam Rawlins)
This is due to `profile.rb`'s `:specialized_instruction => false` compile option, on [line 5](https://github.com/ruby/ruby/blob/trunk/lib/profile.rb#L5). If you comment it out, none of the three cases will show any calls to `#==`. Specia...srawlins (Sam Rawlins)
Nobu, Is p466 an unreleased version? Is it ruby_2_0_0 branch? In any case, you are correct: can reproduce in 2.0.0-p451 and -353. 2.1.x seem to correctly SystemStackError. There remains a bug in trunk (and 2.1.x), however: the first S...srawlins (Sam Rawlins)
I've updated my patch some more with Enumerable#reject and Array#reject. (Array#reject was weird... I reabsorbed `ary_reject()` into `rb_ary_reject()` and left the only use of `rb_ary_push_1()` intact. I think some of this code was very ...srawlins (Sam Rawlins)
Currently, trunk act's like Eran's example: `a[1]` first results in SystemStackError, then results in segmentation fault. I've tracked the segfault down to vm.c, in `vm_exec()`: 1327 vm_loop_start: 1328 result = vm_exe...srawlins (Sam Rawlins)
Good point, Benoit! This is actually why I started looking into #gsub in the first place. I benchmarked ActiveSupport::Inflector [1], which does operations like `gsub!('/', '::')` and `gsub('::', '/')`. Here are the benchmarks, before an...srawlins (Sam Rawlins)
I think the speedup in this patch comes almost entirely from skipping the regex engine, not from the GC savings. Preserving `$&` (and `$~` and friends) while still not firing up the regex engine might be possible (constructing the bas...srawlins (Sam Rawlins)