To those who’d like to try Erlisp 0.0001

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!

This entry was posted in Lisp. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>