Skip to content

Commit

Permalink
Showing 2 changed files with 21 additions and 19 deletions.
1 change: 1 addition & 0 deletions core/src/main/java/org/jruby/Main.java
Original file line number Diff line number Diff line change
@@ -206,6 +206,7 @@ public static void main(String[] args) {
// If a Truffle exception gets this far it's a hard failure - don't try and dress it up as a Ruby exception

if (main.config.getCompileMode() == RubyInstanceConfig.CompileMode.TRUFFLE) {
System.err.println("Truffle internal error: " + t);
t.printStackTrace(System.err);
} else {
// print out as a nice Ruby backtrace
39 changes: 20 additions & 19 deletions core/src/main/java/org/jruby/Ruby.java
Original file line number Diff line number Diff line change
@@ -804,33 +804,34 @@ public IRubyObject runScriptBody(Script script) {
}

public IRubyObject runInterpreter(ThreadContext context, ParseResult parseResult, IRubyObject self) {
try {
if (getInstanceConfig().getCompileMode() == CompileMode.TRUFFLE) {
assert parseResult instanceof RootNode;
getTruffleBridge().execute(TranslatorDriver.ParserContext.TOP_LEVEL, getTruffleBridge().toTruffle(self), null, (RootNode) parseResult);
return getNil();
if (getInstanceConfig().getCompileMode() == CompileMode.TRUFFLE) {
assert parseResult instanceof RootNode;
getTruffleBridge().execute(TranslatorDriver.ParserContext.TOP_LEVEL, getTruffleBridge().toTruffle(self), null, (RootNode) parseResult);
return getNil();
} else {
try {
return Interpreter.getInstance().execute(this, parseResult, self);
} catch (JumpException.ReturnJump rj) {
return (IRubyObject) rj.getValue();
}

return Interpreter.getInstance().execute(this, parseResult, self);
} catch (JumpException.ReturnJump rj) {
return (IRubyObject) rj.getValue();
}
}

public IRubyObject runInterpreter(ThreadContext context, Node rootNode, IRubyObject self) {
assert rootNode != null : "scriptNode is not null";

try {
if (getInstanceConfig().getCompileMode() == CompileMode.TRUFFLE) {
assert rootNode instanceof RootNode;
getTruffleBridge().execute(TranslatorDriver.ParserContext.TOP_LEVEL, getTruffleBridge().toTruffle(self), null, (RootNode) rootNode);
return getNil();
}
if (getInstanceConfig().getCompileMode() == CompileMode.TRUFFLE) {
assert rootNode instanceof RootNode;
getTruffleBridge().execute(TranslatorDriver.ParserContext.TOP_LEVEL, getTruffleBridge().toTruffle(self), null, (RootNode) rootNode);
return getNil();
} else {
try {

// FIXME: retrieve from IRManager unless lifus does it later
return Interpreter.getInstance().execute(this, rootNode, self);
} catch (JumpException.ReturnJump rj) {
return (IRubyObject) rj.getValue();
// FIXME: retrieve from IRManager unless lifus does it later
return Interpreter.getInstance().execute(this, rootNode, self);
} catch (JumpException.ReturnJump rj) {
return (IRubyObject) rj.getValue();
}
}
}

0 comments on commit c3f9361

Please sign in to comment.