Le 2 mars 2015 05:38, "Marcus Denker" <marcus.denker@inria.fr> a écrit :
Hi,
The tiny progress of today: I reviewed the code for the MetaLink from
Claraâs Breakpoints
and added it to Pharo4.
Yay! There was also one extension method in Slot to make work with those, have you seen it? 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:
MetaLink 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.
Marcus