August 24, 2006
Efficient Layer Activation for Switching Context-dependent Behavior
The benchmark is based on an example that is frequently used to discuss aspect-oriented programming, especially control-flow-related features like the cflow construct in AspectJ. In our paper, we do not use an aspect-oriented solution, but obviously one based on context-oriented programming. That solution requires repeated activations and deactivations of layers, so this is indeed a useful benchmark for ContextL. These repeated activations and deactivations do not add any significant overhead to a similar program that does not activate or deactivate layers at all. To the contrary, in CMUCL and SBCL, the runs with repeated activations / deactivations are actually faster than the ones without. This means that other factors play a more important role with regard to efficiency. The benchmark is part of the ContextL release, so you can run it in your own environment.
The paper uses a Java-style syntax instead of the original Lisp syntax. We have decided to do so to make the paper more accessible to non-Lispers. However, I will use the original ContextL version for the presentation at the conference.
The paper can be downloaded from my website.
August 10, 2006
Common Lisp Document Repository
What?
The Common Lisp Document Repository is a repository of documents that are of interest to the Common Lisp community. The most important property of a CDR document is that it will never change: if you refer to it, you can be sure that your reference will always refer to exactly the same document.
Why?
There have been a number of attempts to establish a standardization process for Common Lisp after it has been officially published as an ANSI standard. The ANSI standardization was very costly and very time consuming (according to http://groups.google.com/group/comp.lang.lisp/msg/15248a1b11c5a603 it took nearly 10 years and at least $400K).
The goal of the Common Lisp Document Repository is to be more light-weight and more efficient. We focus on one aspect of standardization: the ability to refer to a specification document in an unambiguous way.
The Common Lisp Document Repository intentionally does not define a process for coming up with specifications or any other means to guarantee some level of quality of the submitted documents. Instead, we aim for a community-driven, decentralized approach to come up, discuss and finalize specifications. In this sense, we only provide the services of librarians.
We hope that the Common Lisp Document Repository has the potential to prove useful in establishing new de-facto standards, and to serve as a stepping stone for more formal standardizations in the long run.
Where?
The Common Lisp Document Repository is hosted at http://cdr.eurolisp.org
How?
The Common Lisp Document Repository is a repository of printable text documents that contain material that are of interest to the Common Lisp community. For example, a CDR document can contain specifications of libraries, language extensions, example implementations, test suites, articles, etc. Each CDR document will be identified by a number. Form and possible contents of CDR documents are not prescribed, but the goal is to provide the Common Lisp community with a way to unambiguously refer to a document by way of mentioning its CDR number.
The repository already contains two CDR documents: CDR 0 describes CDR itself, and CDR 1 is the CLOS Metaobject Protocol specification as published in the book "The Art of the Metaobject" by Gregor Kiczales, Jim des Rivieres and Daniel G. Bobrow.
The presence of a document in the CDR repository does not imply a recommendation of any kind, but we leave the acceptance or rejection of particular documents to the community's natural selection process. We expect that some CDR documents will claim to be replacements of, or clarifications for, previous ones, but again such statements do not mean that this repository's goal is to enforce such developments. We are just librarians who want to make it possible to refer and cite documents of interest to Common Lispers.
We use a light-weight process that consists of the following steps:
- One or more authors submit a document.
- We check that the document is a printable text document, that it is indeed about Common Lisp, and that it does not contain objectionable material (like porn, religious or political statements, etc.).
- The document will be immediately assigned a fresh CDR number that can be used to refer to the document. We will make the document available for an initial period, after which it will be frozen and moved into final status, unless the authors decide to withdraw the document during the initial period.
The CDR editors
Marc Battyani, Pascal Costanza, Arthur Lemmens, Edi Weitz
May 21, 2006
Music recommendations May 2006
- Circlesquare, Fight Sounds EP. This is from Canada, and the music is somewhat like an ambient version of Nine Inch Nails. You can see a video clip for the title track at the Circlesquare website to get an impression.
- Motor, Klunk. Techno with some dark edge. The reason is that one of the members has previously been with Industrial projects Hellbent and Haloblack, and the influence is clearly there. See the video for the current single and check out their website.
- Ministry, Rio Grande Blood. This time they have gone metal. ;) You can listen to clips from the new album at the Ministry Online Store. (See the link above the album cover.)
Call for Participation: 3rd European Lisp Workshop
Nick Levine will be giving a keynote presentation on How to stay poor, with macros and closures. He has been a professional Lisp consultant for over two decades and is the organizer of the upcoming International Lisp Conference 2007 in Cambridge, UK. We are grateful to Ravenbrook Limited for sponsoring the keynote presentation.
The workshop will also contain tutorials about CLIM and/or reflection and metaprogramming in Lisp.
There is still enough for additional participants, so please contact me if you wish to participate. Note that the early registration deadline is May 23, 2006.
See the workshop website for more detailed information.
March 25, 2006
Edit-time MOP
March 18, 2006
3rd European Lisp Workshop registration fees
March 14, 2006
News for the 3rd European Lisp Workshop
- Nick Levine will be giving a keynote presentation at the European Lisp Workshop. He has been a professional Lisp consultant for over two decades and is the organizer of the upcoming International Lisp Conference 2007 in Cambridge, UK. We are grateful to Ravenbrook Limited for sponsoring the keynote presentation.
- The Association of Lisp Users has kindly sponsored a $500 prize fund for exceptional papers submitted to this year's European Lisp Workshop. Both the ALU and the workshop organizers are looking forward to your submissions.
March 07, 2006
Dynamic Languages Day Material
February 23, 2006
3rd European Lisp Workshop
February 12, 2006
Workshop on Generic Programming 2006
January 19, 2006
Closer Project: New Releases
All packages now support the current versions of all supported Common Lisp implementations. They are:
- Allegro Common Lisp 7.0 Enterprise Edition.
- Allegro Common Lisp 8.0 Enterprise Edition.
- CLisp 2.35 - 2.37
- CMU Common Lisp 19c
- LispWorks 4.4.5, 4.4.6 for Macintosh, Personal Edition
- LispWorks 4.4.5, 4.4.6 for Macintosh, Professional Edition
- Macintosh Common Lisp 5.1
- OpenMCL 1.0
- SBCL 0.9.7, 0.9.8
MOP Feature Tests 0.4:
- All previous known but untested problems have either been resolved or turned into actual tests.
- Added a test for checking whether the slot order requested by a primary method for COMPUTE-SLOTS is honored by a MOP. (Thanks to Christophe Rhodes for the suggestion.)
- Added a test for checking whether the object returend by COMPUTE-DISCRIMINATING-FUNCTION can be funcalled and whether the second parameter to SET-FUNCALLABLE-INSTANCE-FUNCTION can be a 'real' closure.
- Added a test for checking whether one can use one's own :ALLOCATION kinds.
- Added a test for checking whether a generic function without any methods defined can still be called.
- Added a test for checking whether a DEFMETHOD form can have multiple qualifiers.
- Added more fine-grained tests for checking SLOT-XXX-USING-CLASS functions.
- Added a test whether REINITIALIZE-INSTANCE on a class metaobject calls FINALIZE-INHERITANCE. Luckily, all implementations pass that test.
- The supported Common Lisp implementations improved with regard to their support for the MOP, with varying extent. This required a few changes here and there.
- The lack of extensible :ALLOCATION kinds in Allegro Common Lisp, as specified in AMOP, is fixed. Thanks to John Foderaro for giving me the important hint on how to solve this.
- When rebinding special places, it is now checked whether they actually contain special symbols, so this is now a safe operation. This can be tweaked to omit the check for improved performance.
- Changing a non-special slot to a special slot in an already existing class is now also supported in Allegro Common Lisp from 7.0 on. Thanks to Duane Rettig for fixing the related bug in Allegro and thereby enabling this feature.
- Improved parsing of layered methods: The :METHOD option in DEFINE-LAYERED-FUNCTION is now parsed and processed correctly. Furthermore, one can now optionally give a name to the otherwise anonymous layer parameter. This is useful for calling CALL-NEXT-METHOD with changed parameters.
- Added a new namespace for layers. Before, their names could accidentally clash with class names.
- Added a number of performance tweaks and better error messages.
- Fixed a few bugs.
January 12, 2006
Dynamic Languages Day @ Vrije Universiteit Brussel
January 09, 2006
Gekido Party 01/06
Here is a picture from last November's Gekido Party. It shows Steffi Schmid, one of my absolutely best friends of all time, and myself.
January 04, 2006
December 27, 2005
ContextL in the media
December 22, 2005
MoDELS 2006
December 21, 2005
Best Albums of 2005
1. Depeche Mode - Playing the Angel
Depeche Mode is one of my all-time favorite bands. Their last album "Exciter" was somewhat weak in retrospect, for example weaker than "Ultra", because it had a number of fillers that are definitely not among their best songs. I think this time they have managed to produce an album that can be considered to be among their best. It took a time to grow on me, but that's typically a good sign. It's surprising that Dave Gahan's songs are among the best ones on this album, especially "Suffer Well" and "Nothing's Impossible". Another favorite is "The Darkest Star".
2. Rasputina - A Radical Recital
Another long-time favorite. I don't remember how I discovered Rasputina about almost ten year's ago. As far as I know, their records have never been officially released in Europe, so it was definitely a bit of an accident. This one is a live album, and a kind of "best of". I would love to see them live at least just once, it must be a great experience. Favorite songs on this album: "Rose K." and "A Quitter".
3. Paula - Ruhig Blut
This is a German band. Previously, they have made purely electronic music, a mixture between OMD, Erasure and Marianne Rosenberg (because of the very high voice of the female lead singer). Now they have switched to guitars and real drums, a combination that is currently very popular in Germany, but it works surprisingly well for me here. The lyrics are great. All the songs are very good, but maybe you can try "Ruhig Blut" and "Lied für Dich".
4. Wir sind Helden - Von hier an blind
Another German band which is actually quite popular in Germany, and they actually use that popular combination of new-wavish guitars. The previous album mixed this with some Electroclash elements, but here the electronic elements are more in the background. Recommended titles: "Echolot" and "Nur ein Wort". The single "Gekommen um zu bleiben" is actually the worst track in my opinion.
5. Nine Inch Nails - With Teeth
Nine Inch Nails have finally made a relatively straightforward album. In the past, they have always put a lot of work into new sounds and complex song structures, and therefore it always took them a lot of time to release anything. But it was always worth it. "The Fragile" is an excellent album. Apparently, they don't have that energy anymore - I recall reading an interview with Trent Reznor in which he acknowledged this. Nevertheless, "With Teeth" is still better than lots of other music that is being produced, and I really enjoy listening to it. In the beginning, I didn't like "The Hand That Feeds" at all, but I even enjoy that one by now. Other recommended songs: "All the Love in the World" and "Only".
6. Ministry - Rantology
This is a party album, containing the best songs of Ministry (only the industrial metal stuff) from their back catalogue in remixed versions. Only the live material (the last three tracks) wasn't really necessary. This is not an essential record, but great fun. The new versions don't add anything really interesting, but it's great to listen to the tracks in one row. The one completely new song is probably my most favorite track of 2005, called "The Great Satan". Also great: "Unsing (Alternate Mix)"
7. Kate Bush - Aerial
Great album, although a slight bit too esoteric for my taste. "King of the Mountain" is a great track and a great single. "Bertie" and "Mrs. Bartolozzi" get on my nerves, though.
8. Daft Punk - Human After All
One of the most intelligent and funny examples of deconstructed house music. It's hard to describe. For example, "The Prime Time of Your Life" has almost all the necessary ingredients to be a party/disco hit (which would actually repel me because I normally don't like such kind of music), but it completely (and intentionally) misses the important points. It's clear what it should have been, but I'm glad that it's not. ;) "Robot Rock" takes a 70's rock sample ("Eye of the Tiger", I think), repeats it to death, but always skips the second half. Again, you know that it should be there, but they intentionally have left it incomplete. What a joy! ;)
9. Autechre - Untilted
"Intelligent" techno at its best, and they keep getting better and better. Try "LCC" and "Fermium".
10. The Chemical Brothers - Push the Button
I was much more excited when it came out, but now it's just good. They make great music, but something just doesn't stick. Hmm...
11. Mu - Out of Breach (Manchester's Revenge)
A new discovery. Weird electroclash - even weirder than typical electroclash. Try "Out of Breach" (excellent!) and "Paris Hilton" (the song, that is ;).
OK, that's it for the moment...