Some Lisp things

Christian Schafmeister is working on Clasp, "a superset of ... Common Lisp using LLVM to provide just-in-time compilation support." He's put up a video of a C++ refactoring tool created with Clasp.

Performance and Types in Lisp takes a look at how SBCL handles types, particularly with type inference and use of declarations. It prompted some followup discussion on /r/lisp.

Butler is a Common Lisp kernel for IPython Notebook, but "don't expect anything to happen yet until more messages and sockets are set up." Pull requests welcome.

cl-lockable provides a simple locking mixin class with convenient macros and functions to work with it.

Lisp bits

Apis is "a worker bee for building application hives" by supporting shared-nothing concurrency and distributed processing. By Mikel Evins.

BASIC-BINARY-IPC uses local or network (IPv4) streams for inter-process communication. It supports fast multiplexing primitives on multiple platforms, e.g. epoll (Linux), kqueues (OS X and FreeBSD), and overlapped I/O (Windows 8). (The author seems too modest, because that's well beyond "basic.")

CL-STRIPE-CLIENT is exactly what it sounds like: a CL client for the Stripe online payment system.

Last week I asked for suggestions to rename ASDF 3.1's "package-system" feature. Jean-Philippe Paradis came up with package-inferred-system, and the change was committed in ece9fa3205875fdf88122554abf73e6af6d402b9 on April 19th.

cmacro adds Lisp macros to C source with a preprocessor written in SBCL. It sparked some lively discussion on

neslisp-c64 is a port of neslisp to the Commodore 64. (I can only assume that hosting it on SourceForge is in that same spirit of retro nostalgia.)

The week in CL

Babel2 — "Babel2 connects the implementations of our core technologies such as Fluid Construction Grammar (FCG) and Incremental Recruitment Language (IRL) with mechanisms for multi-agent interactions, robotic embodiment, cognitive processing and learning. An extensive monitoring system gives access to every detail of Babel2’s intermediate representations and dynamics and a high modularity ensures that the system can be used in a very wide variety of scenarios." I haven't tried it, but it sounds interesting.

cl-http2-protocol — "This is HTTP/2.0 draft-06 interopability test code written in Common Lisp. … The code offers a pure Common Lisp transport agnostic implementation of the HTTP 2.0 protocol at draft-06." This is not related to Mallery's CL-HTTP, but is based on a Ruby library, ported and updated by Akamai engineer Martin Flack.

emacs-cl — "Emacs Common Lisp is an implementation of Common Lisp, written in Emacs Lisp." A fun hack by Lars Brinkhoff.

{} descriptions — "… a meta level descriptions library for Common Lisp," inspired by Smalltalk Magritte and Lisp On Lines."

Multi-year SBCL uptime. 1000+ days, pretty cool.

Work-in-progress ASDF 3.1 has a feature that creates objects called package-systems. The name stems from its melding of the CL package system with ASDF system definition objects. As a name "package-system" seems to me to be ripe for confusion, since it's not the package system of CL, or a package system in the fetch-me-useful-software sense. Can you suggest a better name? Chime in. Before release is the proper time for a rename.

SLIME is now officially on github

Helmut Eller explains:

From: Helmut Eller
Subject: Moving to GitHub and cl-lib
Date: 2014-01-04 09:01:12 GMT

As you may have heard, we're moving the SLIME repository to GitHub. The new location is:

The bug tracker will also be moved from Lunchpad to GitHub.

João Távora has already done some work in the new repository. In particular SLIME now requires the cl-lib library. As you probably know, the Emacs maintaners have declared the cl library obsolete, and encourage everybody to use the new names. What used to be "find" from the cl library is now called "cl-find" and in the cl-lib library.

If you're using Emacs 23 then you need to install cl-lib manually, i.e. grab the .el file from and drop it somewhere into Emacs' load-path. Is that too much hassle? Should we include scripts to automate this or perhaps include cl-lib-3.0.el in our repo?

cl-lib may or may not work with XEmacs. This poses the questions: are there many XEmacs users left? Would you be very unhappy if we drop XEmacs support? Or are you a "I'd be happier with XEmacs but GNU Emacs is also OK" kind of person?


I'll be very pleased not to have to use CVS to fetch SLIME any more.