Amazing!
Pharo 3.0 will be another big step forward

2013/5/30 Camille Teruel <camille.ter...@gmail.com>

> Hello everyone,
>
> Reflectivity beta is out !
>
> Reflectivity is a tool that permit to annotate AST nodes with "metalinks".
> You can put metalinks at different "positions":
>
>    - before: the metalink is executed before the node
>    - instead: the metalink is executed instead the node
>    - after: the metalink is executed after the node
>    - onError: the metalink is executed only if the execution of the node
>    raises an error
>    - onSuccess: the metalink is executed only if the execution of the
>    node raises no error
>
>
> When you put metalinks on some node of a method's AST, a wrapper is
> installed in place of the method. When executed, this wrapper compiles an
> expanded version of the AST that takes metalinks into account and install
> the resulting compiled method.
>
> Examples:
>
> increaseAllNumbersIn: aCompiledMethod
> "A method that increases all numbers in aCompiledMethod"
>  aCompiledMethod reflectiveAST
> forAllNodes: [ :node | node isLiteral and: [ node value isNumber ] ]
>  putInstead: [ :node | RFMetalink fromExpression: (node value + 1)
> asString ].
>
> removeMetalinksIn: aCompiledMethod
>  aCompiledMethod reflectiveAST removeAllMetalinks
>
> In nautilus, you have a menu entry called 'Edit metalinks' that permit to
> edit the metalinks of the node corresponding to the selected piece of code.
> As an example use case, another entry called 'Put breakpoint' adds a
> metalink that corresponds to 'Halt now' before the selected node.
>
> Remember that it is a beta, so you might find errors and things are likely
> to change.
>
> You can load Reflectivity with:
>
> Gofer it
> smalltalkhubUser: 'RMoD' project: 'Reflectivity';
>  configuration;
> loadDevelopment
>
> Or you can download it from RMoD's CI:
> https://ci.inria.fr/rmod/job/Reflectivity/
>
> Camille
>

Reply via email to