Hi Robert,
Thanks for your AspectS. I have not used it for anything yet, but I have a feeling that this is a very powerful and precise tool.
It was mentioned on this list that AspectS can be an excellent tool for modularizing Squeak, would you like to comment on this suggestion ?
In your paper, you said 'crosscutting is inherent to complex systems [Kicz+97].'
Do you think that AspectS itself is a complex system ?
If so, do you think that AspectS can be improved if you use AspectS to 'aspectize' AspectS itself ?
This brings to the question, how would you bootstrap AspectS with some builtin features in Squeak to make AspectS itself more modular (?) or bringing the benefit of Aspect to earlier objects. BTW, do you plan to support module, make AspectS module aware ?
In your document you said:
'in its current implementation, AspectS is realized without changing neither Smalltalk's syntax nor its virtual machine. AspectS shows great flexibility by not relying on code transformations (neither source nor byte code) but making use of metaobject composition instead.'
Does this imply that AspectS can be implemented differently by modification in Squeak's syntax and/or its virtual machine.
I can see the power and elegance of AspectS based on an existing image. Say, if the GNU Smalltalk people want to add support for AspectS, what would be the best approach they should take as far as the compiler and builtin primitives are concerned. Is 'MethodWrapper' the core of AspectS ?
I am learning AspectS and enjoying it. Please keep up with your work on AspectS.
Cheers,
PhiHo.
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Robert Hirschfeld Sent: Thursday, April 11, 2002 3:42 AM To: Squeak-Dev Subject: [ANN] AspectS (0.4.1)
AspectS 0.4.1 ---
There is an updated version of AspectS (0.4.1).
Besides several small fixes and enhancements, there is a new example that illustrates how to use AspectS to introduce different perspectives on the system, depending on different contexts. The example implements the AspectS tool support, previously done via subclassing of existing browser and support classes, now as an additional layer on top of the browser and support classes. The tools aspect is, amongst other characteristics, sensitive to projects as its context:
To create a tools aspect instance:-
aspect _ AsAspectToolsAspect new.
To install an aspect:-
aspect install.
To make the tools aspect aware of a certain project:-
aspect addProject: (Project named: 'Test'). aspect addProject: Project current.
To make the tools aspect unaware of a certain project:-
aspect removeProject: Project current. aspect removeProject: (Project named: 'Test').
To uninstall the aspect:-
aspect uninstall. aspect _ nil.
The new version (a change set and pre-configured image) is available at http://www.prakinf.tu-ilmenau.de/~hirsch/Projects/Squeak/AspectS/
Comments are welcome.
Best, -Robert