On 06 Dec 2013, at 10:01, Roberto Minelli <roberto.minelli@usi.ch> 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