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*

Reply via email to