Newer
Older
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
<head>
<title>ASDF - Another System Definition Facility</title>
<link type='text/css' href='style.css' rel='stylesheet' />
<meta name="author" content="the ASDF group"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div class="header">
<span class="logo">
<a href="https://common-lisp.net/project/asdf/" title="ASDF Homepage">
<img src="lisp-logo120x80.png" title="ASDF homepage" width="100" alt="Lisp Lizzard" />
</a>
</span>
<h2>ASDF</h2><h4>Another System Definition Facility</h4>
</div>
<div class="system-links">
<ul>
<li><a href="#what_it_is">What it is</a></li>
<li><a href="#what_it_is_not">What it is not</a></li>
<li><a href="#implementations">Supported Implementations</a></li>
Francois-Rene Rideau
committed
<li><a href="#examples">Examples</a></li>
<li><a href="#documentation">Documentation</a></li>
<li><a href="#downloads">Getting it</a></li>
<li><a href="#extensions">Extensions</a></li>
<li><a href="#bugs">Reporting Bugs</a></li>
<li><a href="#mailing-lists">Mailing Lists</a></li>
<li><a href="changelog">Changelog</a></li>
<div class="contents">
Francois-Rene Rideau
committed
<a id="ASDF 3"></a>
<h3>ASDF 3</h3>
<p>ASDF 3 is the current successor to Daniel Barlow's ASDF.
It was rewritten for improved portability, robustness, usability,
Francois-Rene Rideau
committed
extensibility, configurability, internal consistency,
and the ability to deliver standalone executables.
Its notable versions include pre-release 2.27 on February 1st 2013,
first stable release 3.0.1 on May 16th 2013,
major release 3.1.2 on May 6th 2014,
and latest release 3.1.6 on October 17th 2015.
<a id="what_it_is"></a>
<h3>What it is</h3>
<p>ASDF stands for <em>A</em>nother <em>S</em>ystem <em>D</em>efinition <em>F</em>acility,
the successor of the Lisp <tt>DEFSYSTEM</tt> of yore.
</p>
<p>ASDF 3 contains two parts: <tt>asdf/defsystem</tt> and <tt>uiop</tt>.
Francois-Rene Rideau
committed
</p>
<dl>
<dt><tt>asdf/defsystem</tt></dt>
<dd>
<p>is a tool to describe how Lisp source code is organized in systems,
and how to build a system in term of actions that depend on previous actions.
</p>
<p>
Typical actions consist in compiling a Lisp source file (if not up to date)
and loading the resulting compilation output (if not both loaded and up to date).
And you must typically compile and load files that define packages, macros, variables,
before you may compile and load other files that use them.
</p>
<p>ASDF is what Common Lisp hackers use to build and load software,
where C hackers might use GNU <tt>Make</tt> to build software and
<tt>ld.so</tt> to load it.
</p>
<p><tt>asdf/defsystem</tt> is the part that people usually refer to as <tt>ASDF</tt>,
with <tt>uiop</tt> being only a supporting library,
that happens to be distributed at the same time, by necessity.
</p>
</dd>
<dt><tt>uiop</tt></dt>
<dd>
<p>also known as <tt>asdf/driver</tt>,
the Utilities for Implementation- and OS- Portability,
is a Common Lisp portability library and runtime support system
that helps you write Common Lisp software in a portable way.
</p>
<p>In addition to many general-purpose Lisp utilities,
it notably provides portable abstractions to
gloss over implementation quirks, support hot-upgrade of code,
manipulate pathnames, create programs, use command-line arguments,
access the environment, use the filesystem,
call other programs and parse their output,
compile Lisp code, muffle conditions, or configure Lisp software.
See its
<a href="https://gitlab.common-lisp.net/asdf/asdf/blob/master/uiop/README.md">README.md</a> for an overview,
and the documentation as extracted from its docstrings by
<a href="http://bimib.disco.unimib.it/people/Marco.Antoniotti/Projects/CL/HELAMBDAP/tests/asdf-uiop/docs/html/dictionary/dictionary.html">HEΛP</a>
(beware: you can, though it's not obvious, scroll the list of packages
with a scrollbar on the right of the top-left pane, and then click on the package
you're interested in to browse its symbols).
</p>
<p><tt>uiop</tt> is distributed as part of the <tt>ASDF</tt>,
its source code is transcluded in the single-file <tt>asdf.lisp</tt> being distributed
and the precompiled fasls provided by Lisp implementations.
<tt>ASDF</tt> relies heavily on it for its portability layer and runtime support,
particularly so as to handle pathnames and filesystem access.
<tt>uiop</tt> is useful on its own and can also be compiled and distributed separately.
</p>
</dd>
</dl>
<a id="what_it_is_not"></a>
<h3>What it is not</h3>
Francois-Rene Rideau
committed
<p>ASDF will <em>not</em> download missing software components for you.
Francois-Rene Rideau
committed
For that, you want <a href="http://quicklisp.org/"><tt>Quicklisp</tt></a>,
that builds upon ASDF, and is great for pulling and installing
tarballs of packages you may depend upon;
we also recommend <a href="https://common-lisp.net/project/clbuild/"><tt>clbuild</tt></a>,
that now builds upon Quicklisp, as a great tool for pulling from version control
packages you need to modify or want to contribute to.
Francois-Rene Rideau
committed
We recommend you should <em>not</em> use <tt>asdf-install</tt> anymore,
Francois-Rene Rideau
committed
as it is an older similar piece of software that is both unmaintained and obsolete.
</p><p>
ASDF is also not a tool to build or run Common Lisp software from the Unix command-line.
For that, you want <a href="http://cliki.net/cl-launch">cl-launch</a>,
or perhaps <a href="http://www.xach.com/lisp/buildapp/">buildapp</a>.
Francois-Rene Rideau
committed
</p><p>
Francois-Rene Rideau
committed
If you're unsatisfied with ASDF,
<a href="https://gitlab.common-lisp.net/asdf/asdf/blob/master/TODO">TODO list</a>,
you might be interested in other build systems for Common-Lisp:
<ul>
<li>Alastair Bridgewater's small and simple one-package-per-file
<a href="https://bugs.launchpad.net/asdf/+bug/1230368"><tt>quick-build</tt></a>
(also reimplemented as the ASDF extension
<a href="https://gitlab.common-lisp.net/asdf/asdf-package-system"
><tt>asdf-package-system</tt></a>, now part of ASDF 3;
similar to <tt>faslpath</tt> below).
</li>
<li>François-René Rideau's
<a href="https://common-lisp.net/project/xcvb/"><tt>XCVB</tt></a>
(building object and image files deterministically and in parallel,
but not actively maintained since 2012;
a hypothetical ASDF 4 could conceivably be evolved to support these features
thanks to the groundwork laid by ASDF 3).
</li>
<li>Drew McDermott's
<a href="http://cs-www.cs.yale.edu/homes/dvm/"><tt>YTools</tt></a>
(the polar opposite, trying to maintain coherence
of the current Lisp image at a fine grain).
</li>
<li>Dmitriy Ivanov's
<a href="http://lisp.ystok.ru/asdlite/"><tt>ASDlite</tt></a>
(a somewhat improved incompatible variant of ASDF 1, less featureful than ASDF 3),
</li>
<li>Mark Kantrowitz's
<a href="http://www.cliki.net/mk-defsystem"><tt>mk-defsystem</tt></a>
(free software successor of the old proprietary DEFSYSTEM's
and predecessor of ASDF, obsolete),
</li>
<li>Sean Ross's
<a href="http://sean-ross.blogspot.com/search/label/mudballs"><tt>mudballs</tt></a>
(an attempt at making things cleaner than in ASDF 2, aborted),
</li>
<li>Peter von Etter's
<a href="http://www.cliki.net/faslpath"><tt>faslpath</tt></a>
(a much simpler system establishing a mapping between packages and files,
abandoned but see <tt>asdf-package-system</tt> and <tt>quick-build</tt> above).
</li>
<li>Alexander Kahl's
<a href="http://www.cliki.net/evol"><tt>evol</tt></a>
(a reimplementation in Lisp of the GNU autotools stack, abandoned),
</li>
</ul>
There are probably more.
However, none of these systems seems to ever have had the traction of ASDF,
probably because none was technically superior enough (if at all)
to compensate for the first mover advantage.
</p>
<h3>Supported Implementations</h3>
Francois-Rene Rideau
committed
<p>ASDF 3 now supports all CL implementations
that seem to have any current user base, and then some.
</p><p>
Francois-Rene Rideau
committed
Most implementations provide ASDF as a module,
Francois-Rene Rideau
committed
and you can simply <tt>(require "asdf")</tt>.
(All of them but CLISP also accept
<tt>:asdf</tt>, <tt>"ASDF"</tt> or <tt>'asdf</tt> as an argument.)
Most of these implementations provide ASDF 3.
Some implementations don't provide ASDF 3 yet,
but have announced they will in their next release.
As for remaining implementations,
they are obsolete and/or mostly unmaintained.
<table border="1">
<tr><th></th>
<th align="left">Will provide ASDF 3</th>
<th align="left">Unmaintained</th></tr>
<tr><th align="left">Free</th>
<td align="left"><tt>abcl ccl clasp clisp cmucl ecl mkcl sbcl</tt></td>
<td align="left"><tt>gcl</tt></td>
<td align="left"><tt>mcl xcl</tt></td></tr>
<tr><th align="left">Proprietary</th>
Francois-Rene Rideau
committed
<td align="left"><tt>allegro lispworks</tt></td>
<td align="left"></td>
<td align="left"><tt>cormanlisp genera mocl scl</tt></td></tr>
</table>
To deal with an implementation that does not yet provide ASDF 3,
we provide <a href="https://common-lisp.net/asdf/asdf/blob/master/tools/install-asdf.lisp">a script</a>
that can install ASDF 3 where your implementation goes looking for it
when you <tt>(require "asdf")</tt> .
</p><p>
Francois-Rene Rideau
committed
Note that upgrading from an old version of ASDF is possible,
but quite complex to do right in a robust way, and we do not recommend it.
Also note that <tt>mocl</tt> only supports a heavily modified variant of ASDF 2,
Francois-Rene Rideau
committed
and will require robust cross-compilation support to be added to ASDF 3
before it is actually supported.
<!-- Note to self:
The maintainers of the following implementations require direct notification:
abcl allegro ccl clisp cmucl ecl gcl lispworks mkcl sbcl scl xcl
Armed Bear <armedbear-devel@common-lisp.net>,
Allegro <bugs@franz.com>,
Clozure CL <openmcl-devel@clozure.com>,
Francois-Rene Rideau
committed
GNU CLISP <clisp-list@lists.sourceforge.net> (sds),
GCL <gcl-devel@gnu.org>,
LispWorks <lisp-support@lispworks.com>,
MKCL <jean.claude.beaudoin@gmail.com>,
SBCL <sbcl-devel@lists.sourceforge.net>,
Scieneer CL (Douglas Crosher) <dtc3@scieneer.com>,
XCL (Peter Graves) <gnooth@gmail.com>
CLASP <clasp-devel@common-lisp.net>
Corman Common Lisp <admin@cormanlisp.com>
Francois-Rene Rideau
committed
-->
<p>
If there is an old or new implementation that we are missing,
Francois-Rene Rideau
committed
it shouldn't be hard to adapt ASDF to support it.
Ask us!
</p>
Francois-Rene Rideau
committed
<a id="examples"></a>
<h3>Examples</h3>
<p>Download any of the many packages available through
<a href="http://quicklisp.org/">Quicklisp</a>
to see as many examples.</p>
<a id="documentation"></a>
<h3>Documentation</h3>
<p>You can read our manual:</p>
<ul>
<li><a href="asdf.html">as one HTML file</a></li>
<li><a href="asdf/">split into one HTML file per section</a></li>
<li><a href="asdf.pdf">as a PDF document</a></li>
<li><a href="https://gitlab.common-lisp.net/asdf/asdf/blob/master/doc/asdf.texinfo">as texinfo source</a></li>
</ul>
Francois-Rene Rideau
committed
<p>Regarding the internal design of ASDF in general,
and the work we did on ASDF 3,
see the extended version (26 pages) of our paper
<cite><a href="http://fare.tunes.org/files/asdf3/asdf3-2014.html"
>ASDF 3, or Why Lisp is Now an Acceptable Scripting Language</a></cite>
(<a href="http://fare.tunes.org/files/asdf3/asdf3-2014.pdf">PDF</a>,
<a href="https://github.com/fare/asdf3-2013">git</a>).
<a href="http://www.european-lisp-symposium.org/">ELS 2014</a>,
focuses on ASDF 3 and misses historical and technical information
(<a href="http://fare.tunes.org/files/asdf3/asdf3-els2014.pdf">PDF</a>,
<a href="http://fare.tunes.org/files/asdf3/asdf3-2014.html">HTML</a>).
Regarding ASDF 3, see also the slides of the
<a href="https://github.com/fare/asdf3-2013/blob/master/els-slides.org"
>ASDF 3 tutorial</a> presented at ELS 2013,
and for an introduction to the source code, this video:
<a href="https://www.youtube.com/watch?v=Qqqbc31ZZ-U">ASDF 3.1 walkthrough</a>.
For more details about our work on ASDF 2,
see the last draft version of our paper for
<a href="http://www.international-lisp-conference.org/2010/index">ILC 2010</a>,
<cite><a href="ilc2010draft.pdf"
>Evolving ASDF: More Cooperation, Less Coordination</a></cite>
(<a href="https://gitlab.common-lisp.net/asdf/ilc2010">git</a>).
<p>Finally, while the manual covers all the basics,
some advanced or new features remain underdocumented.
Please contact our mailing-list (see below)
for any issue that isn't well-documented enough.
</p>
Francois-Rene Rideau
committed
<p>Until we write more documentation on the further innovations of ASDF 3,
the documentation strings, the source code, the changelog and the git log
are unfortunately your best chances for discovering the available functionality.
</p>
Francois-Rene Rideau
committed
<a id="downloads"></a>
<h3>Getting it</h3>
<p>Though they may lag behind the version here, ASDF comes bundled with most Lisps.
To get the greatest and latest, you can:
</p>
<ul>
<li>download just the latest <em>release</em> source for
<a href="https://common-lisp.net/project/asdf/asdf.lisp">asdf.lisp</a>;
</li>
<li>download the latest <em>release</em>
<a href="https://common-lisp.net/project/asdf/asdf.tar.gz">tarball</a>
to get all bells and whistles;
</li>
<li>pull the latest <em>development</em> tree from our git repository
<pre>git clone https://gitlab.common-lisp.net/asdf/asdf.git</pre>
(note that our "master" branch is for current development;
Francois-Rene Rideau
committed
get our "release" branch for the latest stable release.
Run <tt>make</tt> to create <tt>build/asdf.lisp</tt>);
<li>browse the latest <em>development</em> tree from our git
repository:
<a href="https://gitlab.common-lisp.net/asdf/asdf">gitlab</a>
</li>
<li>download the tarball of a past release:
<a href="https://common-lisp.net/project/asdf/archives/">archives</a>
</li></ul>
<a id="extensions"></a>
<h3>Extensions</h3>
<p>Known extensions to ASDF include:</p>
<li>
<a href="https://gitlab.common-lisp.net/xcvb/asdf-dependency-grovel">
<tt>asdf-dependency-grovel</tt></a>,
to compute the actual dependencies in a big ASDF system.</li>
<li><a href="https://gitlab.common-lisp.net/asdf/asdf-encodings"
><tt>asdf-encodings</tt></a>,
to compile Lisp source files with character encodings other than UTF-8.</li>
<li><a href="https://gitlab.common-lisp.net/asdf/asdf-finalizers"
><tt>asdf-finalizers</tt></a>,
to allow macros to include code to be evaluated
at the end of a file being compiled.</li>
<li><a href="http://www.lrde.epita.fr/~didier/software/lisp/misc.php#asdf-flv"
><tt>asdf-flv</tt></a>,
to bind file-local variables around the compilation of some files.</li>
<li><a href="https://common-lisp.net/project/asdf-system-connections/"
><tt>asdf-system-connections</tt></a>,
lets you specify systems that are automatically loaded when
two other systems are loaded, to connect them.</li>
<li><a href="https://common-lisp.net/project/cffi/"
><tt>cffi</tt></a>,
lets you interface between with functions and datastructures written in C
and functions written in Lisp,
including support for automatically detecting constants from C macros,
linking to dynamic libraries, and writing your own wrapper code in C.</li>
<li><a href="https://common-lisp.net/project/qitab/"
><tt>poiu</tt></a>,
to compile a system in parallel on a multiprocessor machine.</li>
Francois-Rene Rideau
committed
</ul>
<p>Former extensions, now superseded, include:</p>
<ul>
<li><tt>asdf-binary-locations</tt>
used to allow one to redirect where ASDF 1 created its output files,
Francois-Rene Rideau
committed
so they don't clash between implementations and don't pollute source directories.
It is superseded by <tt>asdf/defsystem</tt>'s builtin
<tt>asdf-output-translations</tt> mechanism;
Francois-Rene Rideau
committed
a limited compatibility mode is available to easily convert
your former ABL configuration into an AOT configuration.
<tt>common-lisp-controller</tt> and <tt>cl-launch</tt>
used to provide similar mechanisms,
and have also been superseded by <tt>asdf-output-translations</tt>
(built into ASDF 2 and later).
Francois-Rene Rideau
committed
</li>
<li><tt>asdf-bundle</tt>, née <tt>asdf-ecl</tt>,
allowed you to create a single-file bundle out of a system,
Francois-Rene Rideau
committed
for easier delivery.
Francois-Rene Rideau
committed
It is now a builtin part of <tt>asdf/defsystem</tt>,
and allows users to deliver a single FASL for a system,
a standalone executable program (on supported implementations),
or an image containing your system precompiled.
Francois-Rene Rideau
committed
</li>
<li><tt>asdf-condition-control</tt>, initially part of XCVB's <tt>xcvb-driver</tt>,
allowed you to muffle uninteresting conditions during compilation.
Is now superseded by equivalent functionality in <tt>uiop</tt>.
</li>
<li><a href="https://gitlab.common-lisp.net/asdf/asdf-contrib"
><tt>asdf-contrib</tt></a>,
an empty package that used to collect dependencies on other systems
in the list above and below.</li>
<li><a href="http://gitlab.common-lisp.net/asdf/asdf-package-system"
><tt>asdf-package-system</tt></a>,
to compile Lisp source files with one package per file
that also determines dependencies, in the style of
<a href="https://bugs.launchpad.net/asdf/+bug/1230368"><tt>quick-build</tt></a> or
<a href="http://www.cliki.net/faslpath"><tt>faslpath</tt></a>
(this functionality is built into recent versions of ASDF 3.1 and later,
but this package exists for backward compatibility with earlier versions of ASDF 3;
search the manual for <tt>package-inferred-system</tt>).
</li>
<li><tt>asdf-utils</tt> was a collection of utilities that originated with ASDF.
It is now superseded by <tt>uiop</tt>, aka <tt>asdf/driver</tt>,
which is part of ASDF,
and exports its functionality
in its own package <tt>uiop</tt>.
Francois-Rene Rideau
committed
</li>
<h3>Contributing</h3>
<p>Join our mailing list, check the code out from git,
send questions, ideas and patches!
</p>
<a id="bugs">
<h3>Reporting Bugs</h3>
<p>To report bugs, you can use our
<a href="https://launchpad.net/asdf/">launchpad project</a>.
If you're unsure about the bug or want to discuss how to fix it,
you can send email to the project mailing-list below.
</p>
<a id="mailing-lists"></a>
<h3>Mailing Lists</h3>
<ul>
A list for questions, suggestions, bug reports, patches, and so on.
It's for everyone and everything. Please join the conversation!
<a
href="http://mailman.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel">asdf-devel
mailman site to subscribe</a>
A low-volume mailing-list for announcements only, mostly regarding new releases.
Posting is restricted to project administrators and to important notices.
Please subscribe to it if you're a Lisp implementation or distribution vendor,
who needs to know when to upgrade the ASDF you distribute,
but are otherwise not interested in day to day design and
development.
<a
href="http://mailman.common-lisp.net/cgi-bin/mailman/listinfo/asdf-announce">asdf-announce
mailman site to subscribe</a>
</li></ul>
<h3>Contributing</h3>
<p>Join our mailing list, check the code out from git,
send questions, ideas and patches!
</p>
<a id="news"></a>
<h3>What is happening</h3>
<dl>
<dt>March 2016</dt>
<dd>Release of 3.1.7, another bug fix release for the 3.1.x series.</dd>
<dt>October 2015</dt>
<dd>Although we had hoped that ASDF 3.1.5 would be the final release
in the ASDF 3.1 series, a number of bug reports led us to prepare
release 3.1.6. Support for Windows continues to improve, and we wished
to release a number of bug fixes, and support the recent Allegro Common
Lisp 10.0 release.</dd>
<dt>July 2015</dt>
<dd>An extensive bout of bug-fixing, notably on Windows, leads to
release of ASDF 3.1.5 on 21 July 2015. XDG handling has been improved to
be more compliant with the standard. <em>Preliminary</em> support for
immutable systems has been added.</dd>
Francois-Rene Rideau
committed
<dt>May 2015</dt>
<dd>With the LispWorks 7.0 release, all actively maintained CL implementations
Francois-Rene Rideau
committed
support for older variants is now officially dropped.</dd>
<dt>October 2014</dt>
<dd>More bug fixing leads to release of 3.1.4 on 10 October 2014.
There should be no incompatibilities.
See the <a href="changelog">Changelog</a> for more details.</dd>
<dt>August 2014</dt>
<dd>The ASDF mailing lists have been reestablished, in particular
asdf-announce, which should allow CL implementers better access to only
the information they want about ASDF development.</dd>
<dt>May 2014 to July 2014</dt>
<dd>ASDF bug fixing from 3.1.2 leads to release of 3.1.3, a major bug
fix release. We strongly urge implementors that have shipped with 3.1.2
to upgrade to 3.1.3. There should be no incompatibilities, and some
very important bug fixes are provided. See the Changelog for more details.</dd>
Francois-Rene Rideau
committed
<dd>François-René Rideau has resigned as maintainer
Robert P. Goldman is interim maintainer until someone more gifted,
charming, dedicated, and better-looking can be secured to fill the role.
ASDF 3.0.2 was released in July 2013, 3.0.3 in October 2013, and 3.1.2 in May 2014.
In addition to significant improvements and bug fixes,
notably better Windows support,
ASDF 3.1.2 notably sports the <tt>package-inferred-system</tt> extension.
</dd>
<dt>November 2012 to June 2013</dt>
Francois-Rene Rideau
committed
<dd>
François-René Rideau completely rewrites ASDF
and publishes ASDF 3, pre-released as 2.27 in February 2013,
and released as 3.0.1 in May 2013.
It now includes both the traditional <tt>asdf/defsystem</tt>
and a formalized portability library <tt>uiop</tt> (née <tt>asdf/driver</tt>).
Francois-Rene Rideau
committed
<tt>asdf/defsystem</tt> is a backward-compatible reimplementation of ASDF
Francois-Rene Rideau
committed
with correct timestamp propagation based on a consistent dependency model,
Francois-Rene Rideau
committed
and featuring support for bundle output, deferred warnings check, and more.
<tt>uiop</tt> provides many abstractions to write portable Common Lisp programs.
Last version: 3.0.1.
<dd>François-René Rideau is de facto maintainer,
with notable contributions from Robert P. Goldman, but also
Francois-Rene Rideau
committed
Juanjo Garcia-Ripoll and James Anderson.
with many clean-ups, better configurability, some new features,
and updated documentation.
The ASDF 2 series culminates with ASDF 2.26 in October 2012,
which in addition to many bug fixes and small features
includes support for file encodings, around-compile and compile-check hooks.
Last version: 2.26.
</dd>
<dt>May 2006 to November 2009</dt>
<dd>Gary King is de facto maintainer,
with notable contributions from
Robert P. Goldman, Nikodemus Siivola, Christophe Rhodes, Daniel Herring.
Many small features and bug fixes,
moving to using git and common-lisp.net.
</dd>
<dt>May 2004 to April 2006</dt>
<dd>Christophe Rhodes is de facto maintainer,
with notable contributions from
Nikodemus Siivola, Peter Van Eynde, Edi Weitz, Kevin Rosenberg.
The system made slightly more robust, a few more features.
<dt>August 2001 to May 2004</dt>
<dd>Created then developed by Daniel Barlow, with notable contributions from
Christophe Rhodes, Kevin Rosenberg, Edi Weitz, Rahul Jain.
Francois-Rene Rideau
committed
Last version: 1.85.
<div id="footer">
<a class="nav" href="http://validator.w3.org/check/referer" title="xhtml1.1"><img src="http://common-lisp.net/project/cl-containers/shared/buttons/xhtml.gif" width="80" height="15" title="valid xhtml button" alt="valid xhtml" /></a>
<a class="nav" href="http://www.catb.org/hacker-emblem/" title="hacker"> <img src="http://common-lisp.net/project/cl-containers/shared/buttons/hacker.png" width="80" height="15" title="hacker emblem" alt="hacker button" /></a>
<a class="nav" href="http://www.lisp.org/" title="Association of Lisp Users"> <img src="http://common-lisp.net/project/cl-containers/shared/buttons/lambda-lisp.png" width="80" height="15" title="ALU emblem" alt="ALU button" /></a>
<a class="nav" href="http://common-lisp.net/" title="Common-Lisp.net"> <img src="http://common-lisp.net/project/cl-containers/shared/buttons/lisp-lizard.png" width="80" height="15" title="Common-Lisp.net" alt="Common-Lisp.net button" /></a>
<p><span class="copyright"Copyright © 2001-2015 Daniel Barlow and contributors</span></p>
<p>ASDF has an <a href="http://www.opensource.org/licenses/mit-license.php">MIT style</a> license</p>
<div id="timestamp">Last updated 2015-07-21</div>
</body>
</html>