>> >> >> i) How do I reify the value of an RB(Valuel|Literal|LiteralValue)Node? >> RFValueReification does not work, and there is no reification for literal, >> value, or literal value nodes.
This is now fixed. All subclasses of RBValueNode with the exception of Cascade now support #value. (Cascade: see below). >> ii) How do I reify arguments and results of blocks? I tried reify context >> for the block body #before and value for #after block "last", but I often >> run into the problem of no reification for literals. I added issue tracker entries: https://pharo.fogbugz.com/f/cases/22704/Block-Execution-reify-value-in-after <https://pharo.fogbugz.com/f/cases/22704/Block-Execution-reify-value-in-after> https://pharo.fogbugz.com/f/cases/22703/Block-execution-arguments-reification <https://pharo.fogbugz.com/f/cases/22703/Block-execution-arguments-reification> The story is that we for now unified links on BlockNode to be the same as a link on the block body (as we have with RBMethodNode). But this is wrong: a link on a block (e.g. ) [1] should fire when the block *definition* is evaluated. Only a link on the body should fire on execution. If we link on the body, it will be possible to reify the #value (which is the value of the last statement). So this is some work (and a non-backward compatible change), but will be done till next week I hope. >> iii) How are cascaded message sends reified? Am I supposed to instrument the >> cascade node or the individual message sends? >> https://pharo.fogbugz.com/f/cases/22702/support-before-after-intead-on-RBCascadeNode <https://pharo.fogbugz.com/f/cases/22702/support-before-after-intead-on-RBCascadeNode> It turns out this is just not implemented. Single message sends *inside* should work (as it calls the same code as a normal send to emit code). But even that needs tests. Cascade itself needs some code for links, then it will be easy to add reifications for #receiver and #value (and #operation). I will do that today I hope. Marcus