We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
headius
Learn more about funding links in repositories.
Report abuse
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Current JRuby master (pre-9.1.6.0)
This script should work:
def foo(a=(b=1)) [a,b] end foo
The jitted code fails to verify because the load of b happens before it has been initialized. It should have been set to nil somewhere before that.
b
This is currently causing CI of rake spec:compiler to fail.
rake spec:compiler
$ jruby -Xjit.logging -Xjit.logging.verbose -e 'def foo(a=(b=1));[a,b];end;foo' 2016-10-26T18:01:42.934-05:00 [main] ERROR Ruby : failed to compile target script -e: org.jruby.compiler.NotCompilableException: failed to compile script -e at org.jruby.ir.Compiler.execute(Compiler.java:62) at org.jruby.ir.Compiler.execute(Compiler.java:31) at org.jruby.ir.IRTranslator.execute(IRTranslator.java:42) at org.jruby.Ruby.tryCompile(Ruby.java:823) at org.jruby.Ruby.precompileCLI(Ruby.java:788) at org.jruby.Ruby.runNormally(Ruby.java:750) at org.jruby.Ruby.runNormally(Ruby.java:779) at org.jruby.Ruby.runFromMain(Ruby.java:592) at org.jruby.Main.doRunFromMain(Main.java:425) at org.jruby.Main.internalRun(Main.java:313) at org.jruby.Main.run(Main.java:242) at org.jruby.Main.main(Main.java:204) Caused by: java.lang.VerifyError: Bad local variable type Exception Details: Location: DashE.RUBY$method$foo$0(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/parser/StaticScope;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;Lorg/jruby/RubyModule;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject; @59: aload Reason: Type top (current frame, locals[9]) is not assignable to reference type Current Frame: bci: @59 flags: { } locals: { 'org/jruby/runtime/ThreadContext', 'org/jruby/parser/StaticScope', 'org/jruby/runtime/builtin/IRubyObject', '[Lorg/jruby/runtime/builtin/IRubyObject;', 'org/jruby/runtime/Block', 'org/jruby/RubyModule', 'java/lang/String', top, 'org/jruby/runtime/builtin/IRubyObject' } stack: { 'org/jruby/runtime/ThreadContext', 'org/jruby/runtime/builtin/IRubyObject' } Bytecode: 0x0000000: 0000 2a2b 2d12 1212 1312 1212 1212 1401 0x0000010: b800 1a2d 0303 0312 12b8 001e 3a08 2a19 0x0000020: 08b2 0024 b800 2a9a 0010 002a b800 3f3a 0x0000030: 092a b800 3f3a 0800 2a19 0819 09b8 0043 0x0000040: 3a0a 190a b0bf Stackmap Table: append_frame(@55,Top,Object[#87]) full_frame(@69,{},{Object[#89]}) at java.lang.Class.getDeclaredFields0(Native Method) at java.lang.Class.privateGetDeclaredFields(Class.java:2583) at java.lang.Class.getField0(Class.java:2975) at java.lang.Class.getField(Class.java:1701) at org.jruby.ir.targets.JVMVisitor.defineFromBytecode(JVMVisitor.java:101) at org.jruby.ir.Compiler.execute(Compiler.java:54) ... 11 more
cc @subbuss @enebo
The text was updated successfully, but these errors were encountered:
I have a PR coming.
Sorry, something went wrong.
Also perform uninitialized check on temp locals.
67c0c7d
Fixes jruby#4251.
e50ec79
fe0157d
061764e
No branches or pull requests
Environment
Current JRuby master (pre-9.1.6.0)
Expected Behavior
This script should work:
Actual Behavior
The jitted code fails to verify because the load of
b
happens before it has been initialized. It should have been set to nil somewhere before that.This is currently causing CI of
rake spec:compiler
to fail.cc @subbuss @enebo
The text was updated successfully, but these errors were encountered: