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