That is very cool. But I need to ask the tough question - given that the feature freeze was three weeks ago, what do we gain by adding this in Pharo 4?
* Is it needed for demonstrations that won't be based off latest features in Pharo 5 ? * Are third party libraries expected to be based only off Pharo 4 MetaLink features, rather than additional MetaLink features it sounds like Pharo 5 will get ? > which means this slice should not impact anything Because "should" being the operative word... is a slippery slope. If we have a philosophy of freezing features before a Release, then we should have the discipline to hold to that - at least in last 7 days before Release. cheers -ben On Sat, Mar 21, 2015 at 11:56 PM, Marcus Denker <marcus.den...@inria.fr> wrote: > Hi, > > After loading this: > > > https://pharo.fogbugz.com/f/cases/15196/Simple-before-and-after-links-with-minimal-disturbance > > Simple after and before MetaLinks are taken into account, with just one > check in #visitNode of the ASTTranslator that is > false when no links are there. (which means this slice should not impact > anything) > > For now this is for very simple MetaLinks: no parameters, no condition, no > reification, no #instead/around, > no meta-level modelling. > > Here is a trivial example: > > 1) get a AST node from our example method: > > sendNode := (ReflectivityExamples>>#exampleMethod) ast body statements > first value. > > 2) then we define a link that is just #halt: > > link := MetaLink new > metaObject: Halt; > selector: #now. > > 3) we set it: > > sendNode link: link. > > 4) when we now execute the method, we get a halt: > > ReflectivityExamples new exampleMethod > > 5) to get rid of it, uninstall the link: > > link uninstall. > > If you look at the byte code, you see that it compiles the link to the > code: > > 25 <20> pushConstant: Halt > 26 <D1> send: now > > Marcus > >