March 25, 2006

Edit-time MOP

Last week I have attended the AOSD'06 conference in my old hometown in Bonn - it was nice to be back there for a week, meet some friends, go to some favorite places of mine, especially Cafe Göttlich, and at the same time do some work. I have found one of the presentations I have seen especially intriguing, about a first implementation of an edit-time metaobject protocol. Unfortunately, it is implemented in the wrong language. ;) I think this could be a worthwhile project to implement in Lisp or Scheme.

March 18, 2006

3rd European Lisp Workshop registration fees

Apart from the previous news that the 3rd European Lisp Workshop will have a best-paper award and a keynote presentation by Nick Levine, we now also have information about the registration fees. If you want to attend only the European Lisp Workshop (two days), this will cost 150 Euro for students and 250 Euro for regular participants. If you want to attend the whole conference, including the workshop, this will cost 300 Euro for students and 500 Euro for regular participants. During the workshop days, coffee breaks and lunches are included in those fees, as are receptions on both evenings that typically include food and drinks. Note that these fees are early registration fees valid only before May 23, 2006. See the conference's page about registration fees for more information.

March 14, 2006

News for the 3rd European Lisp Workshop

There two news items concerning 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

The presentations, some demo code and quicktime movies of the Dynamic Languages Day @ Vrije Universiteit Brussel are now available for download at the DLD website. Since the quicktime movies are quite large, we welcome any volunteers who want to mirror them. Please send me links that I can mention on the DLD website.

February 23, 2006

3rd European Lisp Workshop

We are organizing another instance of the European Lisp Workshop (former European Lisp and Scheme Workshop). This time it will be in Nantes, Frances, on July 3 & 4, and will again be co-located with ECOOP, as in previous years. This time, the workshop is organized by Theo D'Hondt, Arthur Lemmens, Christophe Rhodes and myself. See the ELW'06 website for further information.

February 12, 2006

Workshop on Generic Programming 2006

I am a member of the program committee of the forthcoming Workshop on Generic Programming 2006 at the International Conference on Functional Programming.

January 19, 2006

Closer Project: New Releases

Today, I have released new versions of all the packages currently included in 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. It is also the home of ContextL, a full-fledged CLOS extension in its own right providing language constructs for Context-oriented Programming (COP).

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
Highlights of the new versions.

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.
Closer to MOP 0.3:
  • 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.
ContextL 0.2:
  • 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.
Special thanks go to John Foderaro, Duane Rettig and Christophe Rhodes (in alphabetical order) for exceptional help.

January 12, 2006

Dynamic Languages Day @ Vrije Universiteit Brussel

On Monday, February 12 there will be a Dynamic Languages Day @ Vrije Universiteit Brussel. It will consist of a number of talks about dynamic languages. It begins with a presentation about how Scheme is used at the Vrije Universiteit Brussel as an introductory programming language, and will be followed by presentations about Self, Smalltalk and Common Lisp. A special focus will be on the reflective and metaobject features of the respective languages. I will contribute to this event by repeating my tutorial on generic functions and the CLOS Metaobject Protocol that I have already given at OOPSLA'05 and several other past events. Attendance is free and open for the general public. See the website for that event for more information.

January 09, 2006

Gekido Party 01/06

This week's Saturday, I'll be going to the Gekido Party, which is one of the coolest parties around, pretty good music. And that's not just because the organizers and DJs are friends of mine. ;)

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.

Steffi und Pascal

December 27, 2005

ContextL in the media

Bill Clementson has posted a quicktime movie of a presentation about Lisp on Lines by Drew Crampsie. It's a web application framework written in Common Lisp that takes advantage of a number of libraries, including our own ContextL.

December 22, 2005

MoDELS 2006

I am a member of the program committee of MoDELS 2006 - a conference that was previously centered around UML and related technologies, but they are trying to open up. I have talked to the program chair, and he convinced me that he is very serious about this. I have also suggested to explicitly add metaprogramming to the list of topics, and it's in. So this definitely has the potential to become an interesting conference.

December 21, 2005

Best Albums of 2005

OK, this is my first blog posting. In order to tell you something that makes a little sense, I list what I consider to be the best albums of 2005. The year is not over yet, but we're pretty close, so I think that's ok. So let's start:

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