General

Profile

make_now_just (Hiroya Fujinami)

Issues

open closed Total
Assigned issues 1 28 29
Reported issues 2 8 10

Projects

Project Roles Registered on
Ruby Committer 12/13/2022

Activity

10/06/2026

07:11 AM Ruby Bug #22313 (Closed): Bytecode compilation is quadratic in the size of a method due to remove_unreachable_chunk
Applied in changeset commit:git|8993cb5a3c87dcad17904bd8a0b69e235baf03e9.
----------
Make `remove_unreachable_chunk` linear in method size (#18823)
* Make remove_unreachable_chunk linear in method size
remove_unreachable_chunk allocat...
make_now_just (Hiroya Fujinami)
07:10 AM Ruby Revision 8993cb5a (git): Make `remove_unreachable_chunk` linear in method size (#18823)
* Make remove_unreachable_chunk linear in method size
remove_unreachable_chunk allocated and cleared a label_no-sized
counter array on every call, and iseq_peephole_optimize calls it for
every unconditional jump and leave, so compiling ...
make_now_just (Hiroya Fujinami)
07:10 AM Ruby Revision dc53a3e8 (git): Avoid quadratic compilation of and/or chains
The value-context NODE_AND / NODE_OR compiled nd_2nd recursively, so a
chain such as `a && b && c` gave each operator its own end label. The
peephole optimizer then collapsed that chain of labels, walking the
whole chain from every branc...
make_now_just (Hiroya Fujinami)

09/14/2026

08:02 AM Ruby Bug #22294: Parsing a long && / || chain is quadratic
A pull request for compilation: https://github.com/ruby/ruby/pull/18824 make_now_just (Hiroya Fujinami)
07:07 AM Ruby Bug #22313: Bytecode compilation is quadratic in the size of a method due to remove_unreachable_chunk
I created a pull request to fix it: https://github.com/ruby/ruby/pull/18823 make_now_just (Hiroya Fujinami)
06:55 AM Ruby Bug #22313 (Closed): Bytecode compilation is quadratic in the size of a method due to remove_unreachable_chunk
Compiling one large method whose body contains many unconditional jumps takes time quadratic in the size of the method.
## Reproduction
```ruby
def build(units)
src = +"def f(x)\n"
units.times do |i|
src << " while x <...
make_now_just (Hiroya Fujinami)

09/08/2026

06:40 AM Ruby Revision c9764e85 (git): Avoid quadratic parse time on and/or chains (#18638)
Avoid quadratic parse time on long and/or chains
logop() builds a left-associative and/or chain into a right-leaning
tree, and found the insertion point by walking the whole right spine
from the top on every operator. For a chain such a...
make_now_just (Hiroya Fujinami)

09/05/2026

12:59 PM Ruby Revision a946c1bd (git): Report a void value in an and/or chain only once
value_expr_check descended into the left operand of an and/or node,
so a chain such as `x = (return) && (return) && a` reported the same
void value once per operator instead of once. The left operand is
already checked for a value when l...
make_now_just (Hiroya Fujinami)
09:18 AM Ruby Revision 8587ce29 (git): [ruby/prism] Avoid quadratic value-expression check on and/or chains
(https://github.com/ruby/prism/pull/4221)
Ref https://bugs.ruby-lang.org/issues/22294
pm_check_value_expression descended the left operand of every and/or
node it visited. Because pm_and_node_create and pm_or_node_create
already assert...
make_now_just (Hiroya Fujinami)
05:29 AM Ruby Bug #22294: Parsing a long && / || chain is quadratic
I crated a pull request for each repo:
- https://github.com/ruby/ruby/pull/18638
- https://github.com/ruby/prism/pull/4221
make_now_just (Hiroya Fujinami)

Also available in: Atom