Le 06/04/2013 12:00, Clément Bera a écrit :
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.

Jejak has allways worked by AST modifications. It's just that, at a point, it recompiled the code with Opal to try to get the same behavior that its original tracer under visualworks had, i.e. the source code modifications are invisible to the user... It also played with the bytecode because this had huge performance impacts under VisualWorks, bringing traces with a very low overhead (sadly, the same trick doesn't work with Pharo :().

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.

The current version of Jejak works in the following way :
        1- get AST, store original source code
        2- search and replace in AST for what you want to trace
        3- generate source with traces and compile
        4- Wait for it to run... collect trace events on the way.
        5- revert to original sources, recompile

It's a bit faster than interpreting the AST; it's a bit more invasive as well, but you can change it to record less events if you want.

It also works for tracing difficult things such as core Morphic, KeyMapping and Display methods.

Thierry


2013/4/6 Frank Shearar <frank.shea...@gmail.com
<mailto:frank.shea...@gmail.com>>

    On 6 April 2013 07:47, Stéphane Ducasse <stephane.duca...@inria.fr
    <mailto: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/


--
Thierry Goubier
CEA list
Laboratoire des Fondations des Systèmes Temps Réel Embarqués
91191 Gif sur Yvette Cedex
France
Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95

Reply via email to