Well my stuff is much more basic I just wanted to implement a prototype to show what you could do with the AST-interpreter.
Basically I overrided 'interpretNode:' of the AST-interpreter by : interpretNode: aNode aNode mark. super interpretNode: aNode And then at the end I have the result expected. 2013/4/8 Alexandre Bergel <alexandre.ber...@me.com> > What I had in mind, is something like: > -=-=-=-=-=-=-=-=-=-= > myMethodWithBranch > self foo. > v > ifTrue: [ ... ] > ifFalse: [ ... ] > -=-=-=-=-=-=-=-=-=-= > > -=-=-=-=-=-=-=-=-=-= > myMethodWithBranch > self foo. > v > ifTrue: [ *self checkPoint: 1.* ... ] > ifFalse: [ *self checkPoint: 2.* ... ]. > *self checkPoint: 3.* > -=-=-=-=-=-=-=-=-=-= > > All these checkpoint will be inserted by manipulating the bytecode. You > can then optimize a bit by removing checkpoints that have been reached. > The method #checkPoint: could then use some attributes to the > CompiledMethod. > > This is a common technique when (i) the VM does not give you what you need > and (ii) when you do not want to change the VM. > > This is something I wanted to do for year in Hapao... > > Alexandre > > > > On Apr 7, 2013, at 3:21 AM, Clément Bera <bera.clem...@gmail.com> wrote: > > I don't know. The main problem is that the AST-interpreter is not fast > enough. The best solution for speed would be to improve it as they do in > this paper : http://dl.acm.org/citation.cfm?id=2384587 (their > ast-interpreter is faster than a byte code interpreter). > > Another solution would be to execute some method with the vm and other one > with the ast-interpreter, but it is quite some work. > > > 2013/4/7 Alexandre Bergel <alexandre.ber...@me.com> > Would it be possible to annotate the method with some checkpoints within > the method? This should be fast enough I guess. > > Alexandre > > > On Apr 6, 2013, at 10:35 AM, Clément Bera <bera.clem...@gmail.com> wrote: > > > This is exactly that. The tree coverage tool is a subclass of > AST-interpreter, which adding to the interpretation marks the nodes. And > then I use this marking to color the source code. And I use as you said RB > ast. > > > > This is why I implemented it in a few hours, I had already an > AST-interpreter, so I've just created a quick subclass and a spec UI. > > > > > > 2013/4/6 Frank Shearar <frank.shea...@gmail.com> > > So if you don't mind me being very loose with terminology, you > > interpret (RB) ASTs, and the act of interpreting marks the nodes in > > these ASTs, which you can then use to colour source? > > > > frank > > > > On 6 April 2013 11:00, Clément Bera <bera.clem...@gmail.com> wrote: > > > Actually, it is quite different than Jejak. > > > > > > Implementation wise, Jejak used Opal so I guess it relies on bytecode > > > modification to do its analysis where my tool relies on ast > annotations. > > > > > > This implies some difference in features. It seems that Jejak record > all > > > calls, all values and all assignments in a method (which is byte code > level > > > feature), whereas I record for each ast node if it was interpreted or > not > > > (which is ast level feature). I guess there would be a little > difference in > > > the use cases. > > > > > > > > > 2013/4/6 Frank Shearar <frank.shea...@gmail.com> > > >> > > >> On 6 April 2013 07:47, Stéphane Ducasse <stephane.duca...@inria.fr> > wrote: > > >>> > > >>> Clement built in a couple of hours the following nice branch > > >>> analysecoverage tools :) > > >>> It is dead slow but cool. > > >> > > >> > > >> By "branch coverage tool" do you mean Jejak? > > >> > > >> frank > > >> > > >> > > > > > > > > > > > > -- > > > Clément Béra > > > Mate Virtual Machine Engineer > > > Bâtiment B 40, avenue Halley 59650 Villeneuve d'Ascq > > > > > > > > > > -- > > Clément Béra > > Mate Virtual Machine Engineer > > Bâtiment B 40, avenue Halley 59650 Villeneuve d'Ascq > > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.bergel.eu > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.bergel.eu > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > > > -- Clément Béra Mate Virtual Machine Engineer Bâtiment B 40, avenue Halley 59650 *Villeneuve d'Ascq*