[Pharo-dev] [Reflectivity] Tiny progress of the day: MetaLink

Marcus Denker marcus.denker at inria.fr
Mon Mar 2 03:38:15 EST 2015


The tiny progress of today: I reviewed the code for the MetaLink from Clara’s Breakpoints
and added it to Pharo4. I has as state:

metaObject	the target	
selector		what to call
arguments 	which args?
condition       	true, false or [block evaluating to a boolean] 
control 		before, after, replace… 
level 		active at base or meta level? (to stop meta-recursion)
nodes  		where it is installed.

------ Examples -----

MetaLink new 
	metaObject: Halt;
	selector: #now.
MetaLink new 
	metaObject: [ self halt ];
	selector: #value.

MetaLink new 
	metaObject: #node;
	selector: tagExecuted

or one that can only be installed on Message send:

	metaObject: #object;
	selector: perform:withArguments;
	arguments: #(selector arguments);
	control: #replace 

Of course, the real core of the whole things is next: An AST transforming compiler plugin
that takes these links into account.
Of course, exact details might change (e.g. control using symbols or classes (ControlBefore)”,
do we call it instead, replace or even AOP-style “around”?

The first will be just a #before with no arguments, as this is what we need for simple breakpoints.


More information about the Pharo-dev mailing list