If you want some projects using metalinks for inspiration:

https://github.com/peteruhnak/metalinks-toolkit
https://github.com/peteruhnak/live-instance-viewer

(the second one also has a link to PDF explaining it in more detail)

Also here an example
http://blog.yuriy.tymch.uk/2016/02/vigorous-caching-in-pharo-or-how-i-used.html

Peter

On Wed, Aug 1, 2018 at 2:21 PM, Arturo Zambrano <[email protected]>
wrote:

> Hi Steven
>
> On Fri, Jul 27, 2018 at 3:53 PM Steven Costiou <[email protected]>
> 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