[Pharo-project] [Pharo-users] [ANN] PHANtom: A modern Aspect Language for Pharo

Mariano Martinez Peck marianopeck at gmail.com
Wed May 4 19:00:00 CEST 2011


On Wed, May 4, 2011 at 5:32 PM, Lemuus <lemuus at gmail.com> wrote:

> Hello all,
>
> We are happy to announce the release of PHANtom: a modern aspect language
> for Pharo.
>
> PHANtom was built taking into account recent advances in aspect language
> features such as dynamic advice rescheduling, reentrancy management, and
> scoping strategies for deployment. The advanced features are not all
> implemented yet, but the 'normal' features work and are well-tested (about
> 130 unit tests) so we are relasing it to the world for you to try out. We
> hope PHANtom can help you to solve some cross-cutting code problems.
>
> An overview of the language can be found at http://pleiad.cl/PHANtomPlease try it out, see if it works for you, all your comments are welcome!
>
> More details:
>
> I am doing this as my engineering thesis, under the guidance of Prof. Johan
> Fabry.
>
> PHANtom works in Pharo 1.2.1 and in 1.3, and also in PharoCore.
>


Congratualtions for the nice work!!


>
> Right now, PHANtom uses Method Wrappers in its' implementation, just like
> the AspectS language did. But the plan is once we have all features
> implemented, that we will start compiling using the Opal compiler of Pharo,
> to make everything go faster.
>
>
I don't understand why you need the Compiler. Tricky things like bytecode
rewriting are mostly used in static languages because they lack all we have
:) I mean, why not taking advantage of the dynamism of Smaltlalk and the
fact of having classes and methods as first-class objects is not enough ?

Cheers

Mariano


I just put one example from the website here so you can see what it looks
> like:
>
> asp := PhAspect new
>        add: (PhAdvice new
>                pointcut: (PhPointcut new
>                        receivers: 'SystemWindow+';
>                        selectors: 'position:';
>                        context: #(#receiver #arguments));
>                advice: [:context |
>                        Transcript show: context receiver.
>                        Transcript show: ' moved to: '.
>                        Transcript show: context arguments; cr.];
>                type: #after).
> asp install.
>
> Note: the unit tests of pointcuts take a large amount of time to execute,
> as some of them match on everything in the image.
>
> For more info and how to download PHANtom see http://pleiad.cl/PHANtom
>



-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20110504/f4090520/attachment.htm>


More information about the Pharo-project mailing list