Here is an announcement of the Closer Project. This project is an umbrella project for a few subprojects whose aim is to improve the usability of the CLOS MOP across different Common Lisp implementations. The project website is at http://common-lisp.net/project/closer/
The first step (which already exists to a large degree) is a library that checks what features of the AMOP specification is supported by a given CL implementation. This results in a number of keywords that describe the various aspects of a MOP which can, for example, be used to conditionalize one's source code (when added to *features*). Currently, the following Common Lisp implementations are supported:
* Allegro Common Lisp, 6.2 Trial Version * CLisp, 2.33.80 * CMU CL, experimental port to Mac OS X, 2004-01-28-020 * LispWorks 4.3 for Macintosh, Personal Edition * OpenMCL 0.14.2-p1 * SBCL 0.8.18
...and some other implementation that I am not allowed to talk about.
The second step (which exists as a rough sketch) is a compatibility library that provides a package that adds missing features and/or replaces existing features with versions that better reflect the AMOP specs. If the latter is not possible, I try to provide utility functions that allow one to work around restrictions.
Finally, the Closer project should host a few example metaclasses, including some of the examples given in AMOP, and probably others as well. For example, my goal is to move some of the stuff from AspectL to the Closer project in order to turn this into a more coherent library. It is important to provide example applications of the MOP because they implicitly provide test cases against which new MOP implementations can be checked for compatibility.
So in the long run, the Closer project should help to bring the MOP into a shape that Common Lisp programmers can better rely on across many implementations.
Pascal
Disclaimer: This project is in a very early stage. Don't publish any findings about existing MOP implementations based on the software offered there with the implicit suggestion that they are facts. It is very likely that the code includes bugs and misinterpretations of the AMOP specification. You have been warned!
Pascal Costanza pc@p-cos.net writes:
Here is an announcement of the Closer Project. This project is an umbrella project for a few subprojects whose aim is to improve the usability of the CLOS MOP across different Common Lisp implementations. The project website is at http://common-lisp.net/project/closer/
This is very cool Pascal! You're bringing one of the coolest parts of Common Lisp to portable Common Lisp. ;) Can't wait to see how this turns out.
Currently, the following Common Lisp implementations are supported:
[...]
...and some other implementation that I am not allowed to talk about.
?? NDA?
By the way, the two .zip files downloadable from the project website contain "__MACOSX" directories, directories named ".<<implementation name>>" containing FASL files, ".DS_Store" files, backup files named "<<something>>~"... was all of that intentional?
Kind regards,
Dirk Gerrits
On Tue, 25 Jan 2005 21:01:43 +0100, Dirk Gerrits dirk@dirkgerrits.com wrote:
By the way, the two .zip files downloadable from the project website contain "__MACOSX" directories, directories named ".<<implementation name>>" containing FASL files, ".DS_Store" files, backup files named "<<something>>~"... was all of that intentional?
I guess these things just happen if you're using an OS that tries to hide things from you... :)
On 25 Jan 2005, at 23:05, Edi Weitz wrote:
On Tue, 25 Jan 2005 21:01:43 +0100, Dirk Gerrits dirk@dirkgerrits.com wrote:
By the way, the two .zip files downloadable from the project website contain "__MACOSX" directories, directories named ".<<implementation name>>" containing FASL files, ".DS_Store" files, backup files named "<<something>>~"... was all of that intentional?
I guess these things just happen if you're using an OS that tries to hide things from you... :)
Partly. ;)
The .<<implementation-name>> directories are an intentional setup for my own use. I was just too lazy to remove the unnecessary stuff from the directories before packing them for download. This is something that needs to be addressed later when things will be polished...
Pascal
-- Never ascribe to malice that which can adequately be explained by incompetence. - Napoleon Bonaparte