What it is

ASDF-Binary-Locations is an ASDF-Extension that makes it easy to specify where your Common Lisp binaries (FASL files) should go. If you don't want to specify, then not to worry: ABL also provides intelligent defaults.

How to use it

  1. Install ASDF-Binary-Locations using your method of choice.
  2. Customize it as desired (see below).
  3. ASDF load it before loading anything else (perhaps from your Lisp's initialization file)

Voila, your binaries will be sorted as required but never spindled, folded or mutilated.

What it does

As you would expect, each Common Lisp implementation has its own format for binary compiled files. If you use multiple implementations (or multiple versions of the same implementation), you'll soon find your source directories littered with various DFSLs, FASLs, CFSLs and so on. This is ugly and makes navigating the sources more difficult. Worse yet, some implementations may share the same file extension or change formats from version to version. This means that you'll find yourself constantly recompiling binaries as you switch from one implementation to the next. That's downright inefficient.

ASDF-Binary-Locations prevents this nightmare by first providing reasonable default locations for binaries of each Lisp and, secondly, by allowing you to customize the locations as required.

Default Locations

ABL's default binary location for each Lisp implementation is a subdirectory of the source directory. To account for different Lisps, Operating Systems, implementation versions, and so on, ABL borrows code from SLIME to create intelligent directory names as necessary. You can also have ABL put all compiled files into subdirectories of a single central location. See the user's guide for details.

Mailing Lists

Where is it

A darcs repository is available. The darcs command is listed below:

darcs get http://common-lisp.net/project/asdf-binary-locations/ 

ASDF-Binary-Locations is also ASDF installable. Its CLiki home is right where you'd expect.

There's also a handy gzipped tar file.

Notes and Issues

What is happening

8 Sept 2009
Scott Burson adds code to differentiate between international and non-international Allegro CL.
11 Aug 2008
Marko Kocic contributes some patches to improve ECL support. Thanks!
5 May 2008
Keeping up with the Jones and the rest of the Common-Lisp world; Stelian Ionescu rationalizes features lists. Thanks!
15 April 2007
Paid taxes and posted the latest changes
13 December 2007
Exported implementation-specific-directory-name
9 October 2006
Made compatible with SLIME's 64-bit Allegro locations (Thanks to Matthias Koeppe).
31 July 2006
Added include-per-user-information (Thanks to Erik Enge).
15 June 2006
Happy now on 64-bit OpenMCL. Thanks to Joshua Moody.
5 June 2006
Thanks to Peter Seibel and Robert Goldman for helping to push out a bunch of useful improvements.
19 Dec 2005
Created by munging great code together and added a bit of spice.