PharoView this PageEdit this PageUploads to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide)

Reflectivity: behind the scenes

Marcus Denker:
It is a reflection framework that I developed as part of my PhD thesis

The idea is that you can instantiate a “Metalink” that describes a jump to the meta level.
it has a metaObject a selector to call
defines arguments to pass to that method
has a control attriubut (before, after, instead)
and a condition
This MetaLink you can put on any AST node.
as soon as this is done, the next call will trigger a recompile of that method taking the Metalink into account
Breakpoints just install a link with metaobject “Break” and selector #break.
Watchpoints use them to get the value of expressions (they are therefore using #after links)
50474 has the fix to de-install the “once” breakpoints before opening the debugger. 


Link to this Page