Awesome! I am looking forward to it.

Cheers,
Manuel

> On 23 Nov 2018, at 14:59, Marcus Denker <marcus.den...@inria.fr> wrote:
> 
> 
> 
>> On 23 Nov 2018, at 13:40, Manuel Leuenberger <leuenber...@inf.unibe.ch> 
>> wrote:
>> 
>> Hi,
>> 
>> I stumbled upon another MetaLink scenario that I am unsure how to implement. 
>> I want to track method invocations, with receiver, arguments, selector, and 
>> return value (maybe even signaled exception). I can track the method input 
>> with a MetaLink installed on an RBMethodNode like this:
>> 
>> MetaLink new
>>   metaObject: [ :c | Transcript show: c receiver; show: c method selector; 
>> show: c arguments; cr ];
>>   selector: #value:;
>>   arguments: #(context).
>> 
>> and for returns with a MetaLink on RBReturnNodes like this:
>> 
>> MetaLink new
>>   metaObject: [ :v | Transcript show: v; cr ];
>>   selector: #value:;
>>   arguments: #(value)
>> 
>> The problem is though, that not all methods have explicit returns, and some 
>> mix explicit returns and self returns. I tried installed an #after MetaLink 
>> on a RBMethodNode, but this fails in many cases. Is there any way that I can 
>> instrument a method and track receiver, selector, arguments, and returned 
>> value (even if self) at the same time?
>> 
> 
> I am working now on making the #after work so that one can get with #value 
> the return of the method… 
> 
> I now have a version where it works for Message Sends correctly *and* were 
> #after on Method works better (the compilation errors should be fixed).
> 
> But  #value for #after on Method needs some more work… soon!
> 
> I will commit this intermediate step now.
> 
>       Marcus

Reply via email to