Project

General

Profile

Actions

Misc #20814

closed

iseq optimizations on constant condition

Added by hurricup (Alexandr Evstigneev) 28 days ago. Updated 25 days ago.

Status:
Feedback
Assignee:
-
[ruby-core:119613]

Description

ruby 3.4-preview2 seems optimizes out some stuff when building iseq and this may lead to user unexpected behavior when debugging, because some lines just optimized out.

Example:

def foo1
  if true
    nil
  else
    1
  end
end

produces:

== disasm: #<ISeq:foo1@/test.rb:1 (1,0)-(7,3)>
0000 putnil                                                           (   3)[LiCa]
0001 leave                                                            (   7)[Re]

Two questions:

  • is there way to disable such optimizations?
  • are there some specs on things that can be optimized.
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0