Skip to content

Regression in 9.4 (optimizer? JIT?) #7486

@byteit101

Description

@byteit101

Environment Information

jruby 9.4.0.0 (3.1.0) 2022-11-23 95c0ec159f Java HotSpot(TM) 64-Bit Server VM 25.201-b09 on 1.8.0_201-b09 +jit [x86_64-linux]

via RVM

Actual Behavior

jruby-9.4.0.0 :002 > str = "123456789" * 100 # 10 isn't enough
 =>  "..."
jruby-9.4.0.0 :003 > str.each_char.each_slice(2){|a, b| (a.ord ^ b.ord)}
org.jruby.ir.IRScope.cloneInstrs(IRScope.java:588): Java::JavaLang::NullPointerException
        from org.jruby.ir.IRScope.prepareForCompilation(IRScope.java:655)                                                       
        from org.jruby.runtime.MixedModeIRBlockBody.promoteToFullBuild(MixedModeIRBlockBody.java:159)
        from org.jruby.runtime.MixedModeIRBlockBody.commonYieldPath(MixedModeIRBlockBody.java:142)   
        from org.jruby.runtime.IRBlockBody.doYield(IRBlockBody.java:170)                             
        from org.jruby.runtime.BlockBody.yield(BlockBody.java:108)                                   
        from org.jruby.runtime.Block.yield(Block.java:188)                                           
        from org.jruby.RubyEnumerable.lambda$each_sliceCommon$5(RubyEnumerable.java:1262)            
        from org.jruby.runtime.BlockCallback.call(BlockCallback.java:54)                             
        from org.jruby.runtime.CallBlock.doYield(CallBlock.java:102)                                 
        from org.jruby.runtime.BlockBody.yield(BlockBody.java:116)                                   
        from org.jruby.runtime.Block.yieldValues(Block.java:234)                                     
        from org.jruby.RubyEnumerator$1.call(RubyEnumerator.java:406)                                
        from org.jruby.runtime.BlockCallback.call(BlockCallback.java:58)                             
        from org.jruby.runtime.CallBlock.doYield(CallBlock.java:97)                                  
	from org.jruby.runtime.BlockBody.yield(BlockBody.java:108)
	from org.jruby.runtime.Block.yield(Block.java:188)
	... 183 levels...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions