Thanks Peter! it is really helpful

On Wed, Aug 1, 2018 at 12:14 PM Peter Uhnák <i.uh...@gmail.com> wrote:

> 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 <arturo.zambr...@gmail.com
> > wrote:
>
>> 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