Conversation
|
Very nice! |
headius
left a comment
There was a problem hiding this comment.
Clever fix. If I'm reading it right, you avoid the confusion between passing nil and passing no arguments by adding an extra always-ignored nil into the Fiber.yield. That allows us to detect whether nil was passed explicitly or implicitly and the rest of the logic remains fairly simple even with the fix in place.
I have a minor concern that all Enumerator#next will now produce an array internally, usually immediately unwrapping it, but that's an optimization issue for another day.
|
The additional, always-ignored As for the performance concern, I actually don't think there's any additional array unwrapping. In the previous code, there was: so that splat into I could imagine some performance degradation due to the additional call, tho, since |
You are right... there's already a lot of argument array-juggling so if anything has changed it's probably a lateral move. I have not benchmarked this code much at all so it's an open project to investigate that (and likely the hottest pieces would need to move to Java code to improve performance). Thanks for the fix! |
|
I'm thrilled to give back. Thanks for all your hard work on JRuby, it's a fantastic project. |
This PR fixes the issue described in #8199, adds 2 new test cases, and removes tags for 2 existing, disabled test cases