Le 27/09/2010 17:20, Christian Thalinger a écrit : > On Fri, 2010-09-24 at 21:24 +0200, Christian Thalinger wrote: > >> On Fri, 2010-09-24 at 15:23 +0200, Rémi Forax wrote: >> >>> Christian, you can also test with PHP.reboot >>> http://code.google.com/p/phpreboot/ >>> tests are here: >>> >>> http://code.google.com/p/phpreboot/source/browse/#svn/trunk/phpreboot/test >>> >>> The runtime also provides an ahead of time compiler that generates >>> bytecode classes: >>> bin/phpr.sh -aot test/testfibo.phpr >>> >> Thanks for the hint, I'll give it a try. -- Christian >> > What about this one: >
This one is my bug :) I've refactored the way to escape from a trace but don't update the code that reuse a trace. My bad. All inner-loops that contains at least an untaken branch will not work. Rémi > test/testtraceoptimistic.phpr > VM option '+UnlockExperimentalVMOptions' > VM option '+EnableInvokeDynamic' > java.lang.NullPointerException > at > com.googlecode.phpreboot.interpreter.Profile$LoopProfile.callTrace(Profile.java:42) > at > com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:371) > at > com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:122) > at > com.googlecode.phpreboot.ast.LabeledInstrWhile.accept(LabeledInstrWhile.java:38) > at > com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144) > at > com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:273) > at > com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:122) > at > com.googlecode.phpreboot.ast.InstrLabeled.accept(InstrLabeled.java:38) > at > com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144) > at > com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:301) > at > com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:122) > at com.googlecode.phpreboot.ast.Block.accept(Block.java:48) > at > com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144) > at > com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:251) > at > com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:122) > at com.googlecode.phpreboot.ast.Visitor.visit(Visitor.java:87) > at com.googlecode.phpreboot.ast.InstrBlock.accept(InstrBlock.java:30) > at > com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144) > at > com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:400) > at > com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:122) > at > com.googlecode.phpreboot.ast.LabeledInstrWhile.accept(LabeledInstrWhile.java:38) > at > com.googlecode.phpreboot.interpreter.Evaluator.eval(Evaluator.java:144) > at > com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:273) > at > com.googlecode.phpreboot.interpreter.Evaluator.visit(Evaluator.java:122) > at > com.googlecode.phpreboot.ast.InstrLabeled.accept(InstrLabeled.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_labeled(Interpreter.java:214) > at > com.googlecode.phpreboot.tools.AnalyzerProcessor.reduce(AnalyzerProcessor.java:757) > at > com.googlecode.phpreboot.tools.AnalyzerProcessor.reduce(AnalyzerProcessor.java:129) > 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:187) > > > _______________________________________________ > mlvm-dev mailing list > [email protected] > http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev > _______________________________________________ mlvm-dev mailing list [email protected] http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
