An Emacs Lisp Based Common Lisp

Lars Brinkhoff has a really interesting project up at GitHub. It's emacs-cl, a Common Lisp implemented in Emacs Lisp. This probably isn't all that useful but it sure is awesome. As far as I can tell, it's a pretty complete. CLOS and pretty printing are missing but it has lexical closures, packages, multiple values, bignums, adjustable arrays, and other CL features.

This is one of those things that is noteworthy not because it's going to change your life or be particularly useful but because it shows what a tool you already have can do. It's often said that Emacs Lisp is crippled and not powerful enough to do real work. Guys like Nic Ferrier and Kris Jenkins have already put the lie to that notion but here is yet another example of what Emacs Lisp can do.

I've said several times that Emacs is the closest thing we have to a Lisp machine but mostly we don't pursue that aspect of Emacs. Brinkhoff's project reminds us that Emacs really does provide a Lisp environment and that the Lisp it provides is far from toothless.

This entry was posted in Programming and tagged , . Bookmark the permalink.

4 Responses to An Emacs Lisp Based Common Lisp

  1. Lork says:

    Well, I'd be convinced if it could run some of the examples from https://github.com/crategus/cl-cffi-gtk

  2. Grant Rettke says:

    Vitriol shared on any subject usually doesn't actually say much about it.

    Emacs Lisp is a fine delightful language.

  3. Phil says:

    This seems like impressive work which could potentially be extremely beneficial.

    Having never worked with Common Lisp, however, I am entirely unfamiliar with the existing libraries which could potentially be integrated with Emacs.

    Can anyone suggest some example 'killer apps' for this?

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>