Hi Steven

On Fri, Jul 27, 2018 at 3:53 PM Steven Costiou <steven.cost...@kloum.io>
wrote:

> Hi,
>
> it may not be actively maintained but Phantom has recently been ported to
> Pharo 6/6.1 https://github.com/InesSosa95/PHANtom
>

that's a good news :)

>
>
> You could also use Reflectivity (look for MetaLink class), which should
> not be hard to understand if you are familiar with aspects (although that
> is not aspects).
>
>
>
> For example, if you wanted to trace the receivers and parameters of a
> method named #mWithArg1:withArg2:withArg3: in class C, you could do :
>
> |link|
>
> link := MetaLink new.
>
> link control: #before.
>
> link arguments: #(#receiver #arguments).
>
> link metaObject: YourMetaObject.
>
> link selector: #yourMethodWithArg1:andArg:.
>
> (C lookupSelector: #mWithArg1:withArg2:withArg3:) ast link: link
>
>
>
> YourMetaObject is here an object which will receive the
> yourMethodWithArg1:andArg: with as arguments the receiver of the method
> #mWithArg1:withArg2:withArg3: and its arguments as an array.
>
> It could be a block with 2 arguments, or any other object that you would
> use to implement your trace behavior. You have a number of reifications
> available that you can pass as arguments from the context, look for
> subclasses of RFReification.
>

I was not aware of MetaLink. Thank you!




> Steven.
>
>
>
>
>
> Le 2018-07-27 17:25, Arturo Zambrano a écrit :
>
> Hi all,
>    I have a piece of undocumented software that I  need  understand ...
> One thing I would like to do is to have a complete trace of method calls
> (receivers, parameters)  for certain scenarios.
>   As an "aspects"guy, my first idea was to use Phantom, but it seems not
> active anymore.
>
>  Could someone please point me to some tools that I could use for this?
> (using Pharo 6, 6.1 or  7)
>
>  Thanks in advance
>
>  Cheers
> Arturo
>
>
>
>
>
>
>

Reply via email to