[ANN] PHANtom: A modern Aspect Language for Pharo

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] PHANtom: A modern Aspect Language for Pharo

Daniel Galdames
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/PHANtom Please 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.

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 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
Reply | Threaded
Open this post in threaded view
|

Fwd: [ANN] PHANtom: A modern Aspect Language for Pharo

Daniel Galdames
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/PHANtom Please 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.

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 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

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] PHANtom: A modern Aspect Language for Pharo

Stéphane Ducasse
In reply to this post by Daniel Galdames
Thanks for sharing that with us!

Stef

On May 4, 2011, at 5:32 PM, Lemuus 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/PHANtom Please 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.
>
> 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 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