PHP.reboot update?
Rémi Forax
forax at univ-mlv.fr
Tue Jun 21 04:12:23 PDT 2011
On 06/21/2011 11:49 AM, Christian Thalinger wrote:
> On Jun 21, 2011, at 11:35 AM, Rémi Forax wrote:
>> Ok, fixed,
>> convertArguments doesn't exist anymore and I forget to remove it from
>> the backport.
> Awesome, thanks. This one looks weird though:
Great, this means that asType() now works :)
The bug is due to this snippet:
function no_return_int():int { }
echo no_return_int()
because the is no return, the return push a null and then
tries to convert it to an int.
I should create a special invoker that use explicitCast()
(invokeWithArguments use asType()) or push 0 instead.
This invoker can be a good example for the cookbook.
> $ bin/phpr.sh test/testdeadreturn.phpr
> null
> com.googlecode.phpreboot.runtime.RT$RTError: null at 7,18
> at com.googlecode.phpreboot.runtime.RT.error(RT.java:56)
> at com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:723)
> at com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:1)
> at com.googlecode.phpreboot.ast.FuncallCall.accept(FuncallCall.java:39)
> at com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144)
> at com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:778)
> at com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:1)
> at com.googlecode.phpreboot.ast.PrimaryFuncall.accept(PrimaryFuncall.java:30)
> at com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144)
> at com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:810)
> at com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:1)
> at com.googlecode.phpreboot.ast.ExprPrimary.accept(ExprPrimary.java:30)
> at com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144)
> at com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:275)
> at com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:1)
> at com.googlecode.phpreboot.ast.InstrEcho.accept(InstrEcho.java:38)
> at com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144)
> at com.googlecode.phpreboot.interpreter.Interpreter.eval(Interpreter.java:52)
> at com.googlecode.phpreboot.interpreter.Interpreter.instr_echo(Interpreter.java:122)
> at com.googlecode.phpreboot.tools.AnalyzerProcessor.reduce(AnalyzerProcessor.java:741)
> at com.googlecode.phpreboot.tools.AnalyzerProcessor.reduce(AnalyzerProcessor.java:1)
> at fr.umlv.tatoo.runtime.tools.ToolsProcessor.reduce(ToolsProcessor.java:117)
> at fr.umlv.tatoo.runtime.parser.Parser.performReduce(Parser.java:484)
> at fr.umlv.tatoo.runtime.parser.Parser.performShift(Parser.java:508)
> at fr.umlv.tatoo.runtime.parser.ShiftAction.doPerform(ShiftAction.java:23)
> at fr.umlv.tatoo.runtime.parser.Parser.doStep(Parser.java:402)
> at fr.umlv.tatoo.runtime.parser.Parser.push(Parser.java:384)
> at fr.umlv.tatoo.runtime.tools.ToolsProcessor$LexerHandler.ruleVerified(ToolsProcessor.java:87)
> at fr.umlv.tatoo.runtime.tools.ToolsProcessor$LexerHandler.ruleVerified(ToolsProcessor.java:67)
> at fr.umlv.tatoo.runtime.lexer.Lexer$LexerImpl.ruleVerified(Lexer.java:143)
> at fr.umlv.tatoo.runtime.lexer.Lexer$LexerImpl.step(Lexer.java:87)
> at fr.umlv.tatoo.runtime.lexer.Lexer$LexerImpl.run(Lexer.java:160)
> at com.googlecode.phpreboot.interpreter.Analyzer.interpret(Analyzer.java:78)
> at com.googlecode.phpreboot.Main.main(Main.java:188)
> Caused by: java.lang.NullPointerException
> at sun.invoke.util.ValueConversions.unboxInteger(ValueConversions.java:76)
> at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:566)
> at com.googlecode.phpreboot.compiler.Compiler$CompileFunctionStub.stub(Compiler.java:233)
> at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:566)
> at com.googlecode.phpreboot.interpreter.Evaluator.methodHandleCall(Evaluator.java:760)
> at com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:721)
> ... 32 more
>
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
More information about the mlvm-dev
mailing list