WOW.. Thank you guys for such answers!! It seems this is an hot topic. However, now I will try to hack something on top of Spy and look at Phantom in the weekend ;)
Cheers, R On Dec 6, 2013, at 10:35 AM, Marcus Denker <[email protected]> wrote: > > On 06 Dec 2013, at 10:01, Roberto Minelli <[email protected]> wrote: > >> Hi guys, >> >> I am using Spy for my project, and I need to do something which, on top of >> my knowledge, is not supported. >> >> Here is the point: Spy allows to insert code before (#beforeRun:with:in:) >> and after (#afterRun:with:in:) and works perfectly. >> >> Now suppose I want to inject some code *inside* the method, e.g., >> >> aMethodToBeProfiled >> >> do something >> >> "Injected code accessing some fields of the current instance of this >> object” >> Transcript show: self field asString. >> >> Is there any support for this? >> > > Sadly not yet… we plan to have real support for this in Pharo4. > > The AOP solutions (both AspectS and Phantom) do *not* support point cuts on > sub-method > concepts like “instance variable access”. > > The stuff I did for my PhD supports this quite nicely… but that I have not > yet ported to Pharo. > (The idea is to do an “engineering grade” pass over this and put it in Pharo > not as a research > prototype but as a real, production ready concept). > > I really need to push this… people need it. > > There is a way to do all this on a lower level (e.g. AST transformation or IR > transformation)… I will write a mail how to > do that later the weekend. > > Marcus
