Welcome!

You’ve reached the website of a young programmer who’s dissatisfied with the current state of the (software) world and does not intend to live with those broken windows. Here you’ll find my publications and software projects to that end, as well as some less serious material. As you’ll see I believe in quality over quantity, but I intend to update this homepage with new content at least once a month.

If you have any questions, comments, suggestions, news, praise, or constructive criticism, please feel free to e-mail me.

Dirk Gerrits

 

More than 9 for Lisp?

Tuesday, 28 June 2005

I’ve just read about LispNYC’s Summer of Lisp.

The idea is to also mentor students without Google funding, on the projects that didn’t make the cut. Also, there seems to be a possibility that funding for one other Lisp project will be made available!

Sign up for the Summer of Lisp mailing list to stay informed.

Erlisp and 8 others funded by Google

Sunday, 26 June 2005

Google has just announced the final per-organization project breakdown on their Summer of Code. LispNYC got awarded no less than NINE project fundings! That’s more than SVN, NetBSD, Wine, Samba, and Inkscape! Who said Lisp was dead? ;)

And guess what? Erlisp is one of the nine! I’m not exactly sure how this selection was made, but if it had anything to do with community feedback: thank you all for the support.

The other eight projects are:

  • Lisp Sockets
    This is great! I have needed to use sockets on several occasions, and had to settle for non-portable solutions with SB-BSD-SOCKETS. Better yet, Erlisp will eventually need portable sockets as well.

    Now we “just” need a library and/or CLRFI to be able to serialize any Lisp object, send it to another Lisp implementation running on another computer, and deserialize it…

  • Fetter - foreign function interface generator
    Generating foreign function interfaces automatically is a cool thing in itself, but this project promises to bring not just C but C++ support to the Open Source Lisp masses! Way cool! (Might it even get wxCL off the ground?)

  • Axiom User Interface
    I know of 2 Common Lisp computer algebra systems; Maxima I’ve used, Axiom I haven’t. There is some cool stuff going on in the Maxima GUI camp, let’s see what this summer will bring for Axiom.

  • Gene Ontology Database
    Not my cup of tea, but a cool example of how Common Lisp is being put to use.

  • Hello-C, extending UFFI
    UFFI with callbacks, better documentation, and higher level abstractions… what more could we ask for? Also, it’ll serve as the basis for Fetter (mentioned above).

    [EDIT] I don’t know where I got that, but Fetter is NOT based on Hello-C (it’s based on UFFI). I guess that’s sensible, to make sure these projects can be developed in parallel.

  • Extend PLT Scheme’s Stepper
    This would have interested me 2-3 years ago, but I’m off Scheme now. Still, nice to see they’re in on the action too.

  • Unified low-level database drivers for PLT Scheme
    Ditto.

  • A Stepper for Slime
    Last but definately not least: better debugging tools for SLIME. Any SLIME addition makes me happy, but this one will be especially well-appreciated. ;)

Erlisp on GMANE

Wednesday, 22 June 2005

Thanks to GMANE, the Erlisp mailing list is now also accessible as the newsgroup gmane.lisp.erlisp.devel on news.gmane.org. The newsgroup is a bi-directional interface to the mailing list, so e-mails sent to either one will show up on both. Newsgroup lovers rejoice! ;)

To those who’d like to try Erlisp 0.0001

Tuesday, 21 June 2005

Erlisp currently doesn’t come with documentation yet, so here are some pointers to get started.

  1. From Erlisp’s download page you should get erlisp-snapshot.tar.gz. This file contains the source code in the Erlisp repository, and is updated whenever that repository is updated. Extract its contents somewhere. (Alternatively, you can check out the source code directly from the repository, as described here.)

    In your new erlisp directory, there should be the following:

    • LICENSE
      Contains Erlisp’s license (BSD).

    • erlisp.asd
      ASDF system definition for Erlisp.

    • doc/external/, doc/internal/
      Currently empty. Should hold external (user) documentation and internal (developer) documentation at some point.

    • src/
      Contains all actual source code. This directory will probably be subdivided into further subdirectories (and corresponding ASDF modules) when Erlisp grows.

    • test/
      This contains all automated FiveAM (unit) tests. At the moment, this is the closest thing to documentation there is.

  2. To conveniently use Erlisp, you’ll need ASDF. Create a symlink to erlisp.asd from one of the directories in ASDF:*CENTRAL-REGISTRY*, or add the erlisp directory to that list.

  3. Start SBCL, and load Erlisp using (asdf:oos ‘asdf:load-op :erlisp).

    If you’d like to run the automated tests, you’ll need to have FiveAM. Then you can use (asdf:oos ‘asdf:test-op :erlisp).

  4. To see what you can do now that you have Erlisp loaded, have a look at the automated tests. Be careful though. Both the internal and external API are tested, so this doesn’t really show “what you’re supposed to be using”. I guess I should be making this distinction clear by exporting symbols from the ERLISP package, but I haven’t gotten around to that yet.

    So at the moment do (in-package :erlisp) and, as a rule of thumb, stay away from anything that isn’t SPAWN, CURRENT-PROCESS, SEND, RECEIVE, RECEIVE-WITH-MATCHER, or SET-DEFAULT-PATTERN-MATCHER.

If any non-SBCL users among you tried the above, you would have gotten a message like “Threads are currently only implemented for SBCL”.

The file src/compatibility.lisp makes sure that the rest of the code doesn’t have to depend on implementation specific features, but it is only implemented for SBCL at the moment. If you know the threads API of your Lisp, feel free to send me a patch. The download page describes how to check out the repository, make your changes, and send them to me in a patch. It’ll be much appreciated!

8 months of Erlisp

Monday, 20 June 2005

It’s been over 8 months since I announced Erlisp to the Lisp community, and I’m sure that I’m not the only one who had hoped that Erlisp would have come farther in all this time. However, many of you may not be aware of the things that have happened, hence this summary.

I’ve implemented (for SBCL):

  • Processes as threads.

  • Local message sending and receiving.

  • API to plug in your own pattern matcher.

Apart from actually writing code, I’ve been taking steps to get development back on track:

  • I’ve switched from GNU Arch to darcs for version control. Darcs is much easier to use, and in my opinion also conceptually nicer. (For example there is no difference between a working copy and a repository.) It’s the first version control system I like to use.

  • To get more community interaction, I’ve started this blog, and there is now an Erlisp mailing list. Thanks to Mario Mommer of Common-Lisp.net for setting it up for me.

  • I’ve written a little Bash script that:
    Synchronizes the main Erlisp repository with my local one.
    Uploads a new Erlisp snapshot tarball.
    Sends an e-mail to the mailing list about the new patches in the repository.

Other noteworthy events are:

  • I’ve been contacted by Heow Eide-Goodman of Lisp NYC about Google’s Summer of Code. Apparently, Lisp NYC is a participating mentoring organization and they list working on Erlisp as one of their project ideas.

    I’m very flattered by all this, but I’m not sure whether I can mentor a student to work on Erlisp. I’m only figuring this stuff out as I go, so I’m by no means an expert, and I’m not exactly drowning in spare time either (not even during the coming summer vacation).

  • As part of the website revamping I’ve made a (very primitive) search mechanism for the Erlisp reference section. There has also been a slow but steady stream of reference additions over the months.

  • This blog has been added to Planet Lisp.