Commit 3bc805a3 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

Fix test-load-systems. Fix a test-script for pathname madness on LispWorks.

Update documentation somewhat for ASDF 3.
parent c45e1c46
......@@ -6,20 +6,20 @@ If you cloned our git repository, bootstrap a copy of build/asdf.lisp with:
To use ASDF, read our manual:
The first few sections, Loading ASDF, Configuring ASDF and Using ASDF,
will get you started as a simple user.
If you want to define your own systems, further read the section
Defining systems with defsystem.
ASDF 3 now includes an extensive runtime support library, asdf-driver.
Its documentation unhappily mainly lies in the source code and docstrings.
More information and additional links can be found on ASDF's
home page at:
Last updated Monday, Jan 28, 2013.
Last updated Thursday, January 31st, 2013.
This diff is collapsed.
......@@ -30,25 +30,40 @@
<div class="contents">
<a id="ASDF 2"></a>
<h3>ASDF 2</h3>
<p>ASDF 2, initially released on May 31st 2010,
is the current successor to Daniel Barlow's ASDF,
made more portable and more robust, with a somewhat improved API.
It has since been widely adopted by the CL community,
and is actively maintained.
<a id="ASDF 3"></a>
<h3>ASDF 3</h3>
<p>ASDF 3, released on January 31st 2013,
is the current successor to Daniel Barlow's ASDF.
It was improved for portability, robustness, usability,
extensibility, configurability, internal consistency,
the ability to create standalone executables.
<a id="what_it_is"></a>
<h3>What it is</h3>
<p>ASDF is a tool for describing how source files are organized:
what depends on which and when.
<p>ASDF 3 contains two parts: ASDF/DEFSYSTEM and ASDF/DRIVER.
is a tool to describe how source code are organized,
and how to build the system with
what action depends on what previous actions.
<p>It is roughly what Common Lisp hackers use to build software
where C hackers would use say GNU Make.
where C hackers might use GNU Make.
<p>ASDF stands for <em>A</em>nother <em>S</em>ystem <em>D</em>efinition <em>F</em>acility,
in the continuity of the Lisp DEFSYSTEM of yore.
<p>ASDF/DRIVER is a Common Lisp portability library and runtime support system
that helps you write Common Lisp software in a portable way.
<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.
<a id="what_it_is_not"></a>
<h3>What it is not</h3>
<p>ASDF will <em>not</em> download missing software components for you.
......@@ -87,19 +102,25 @@
<a id="implementations"></a>
<h3>Supported Implementations</h3>
<p>ASDF 2 now supports all CL implementations
<p>ASDF 3 now supports all CL implementations
that seem to have any current user base.
Most implementations provide ASDF 2 as a module,
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.)
They will hopefully soon all provide ASDF 3,
but in the meantime, you can download ASDF 3,
and use <tt>(asdf:load-system :asdf)</tt>
from a properly configured ASDF 2 to upgrade to the latest,
which you should before you use ASDF for anything else.
A few implementations don't provide ASDF yet,
but have announced they will in their next release.
As for remaining implementations,
they are obsolete and/or mostly unmaintained;
still ASDF 2 supports them if you load it manually,
still ASDF 3 supports them if you load it manually,
though there might never be a next release
to provide it through <tt>require</tt>.
......@@ -167,6 +188,10 @@ Peter Graves <>
Please contact our mailing-list (see below)
for any issue that isn't well-documented enough.
<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.
<a id="downloads"></a>
<h3>Getting it</h3>
......@@ -208,16 +233,6 @@ Peter Graves <>
<li><a href=""
to compile Lisp source files with character encodings other than UTF-8.</li>
<li><a href=""
to bundle one or more systems into a single FASL file, for easier delivery</li>
<li><a href=""
utilities originally from asdf, now exported from their own library.</li>
<li><a href=""
(distributed as part of XCVB),
to control which conditions to warn about or to muffle during compilation.</li>
<li><a href=""
to allow macros to include code to be evaluated
......@@ -231,6 +246,30 @@ Peter Graves <>
<li><a href=""
to bind file-local variables around the compilation of some files.</li>
<p>Former extensions, now superseded, include:</p>
<li>ASDF-BINARY-LOCATIONS allowed one to redirect where ASDF creates its output files,
so they don't clash between implementations and don't pollute source directories.
It is superseded by ASDF/DEFSYSTEM's builtin ASDF-OUTPUT-TRANSLATIONS mechanism;
a limited compatibility mode is available to easily convert
your former ABL configuration into an AOT configuration.
COMMON-LISP-CONTROLLER and CL-LAUNCH used to provide similar mechanisms,
and have also been superseded by ASDF-OUTPUT-TRANSLATIONS.
allowed you to create single-file bundled outputs for your systems,
for easier delivery.
It is now a builtin part of ASDF/DEFSYSTEM.
<li>ASDF-UTILS was a colletion of utilities that originated with ASDF.
It is now superseded by ASDF/DRIVER, which is part of ASDF,
and exports its functionality in its own package ASDF/DRIVER.
allowed you to muffle uninteresting conditions during compilation.
Is now superseded by equivalent functionality in ASDF/DRIVER.
......@@ -269,6 +308,15 @@ Peter Graves <>
<a id="news"></a>
<h3>What is happening</h3>
<dt>In January 2013</dt>
ASDF 3 now includes both the traditional ASDF/DEFSYSTEM
and a formalized portability library ASDF/DRIVER.
ASDF/DEFSYSTEM is a backward-compatible reimplementation of ASDF
with correct timestamp propagation based on a consistent dependency model,
and featuring support for bundle output, deferred warnings, and more.
ASDF/DRIVER provides many abstractions to write portable Common Lisp programs.
<dt>In April 2012</dt>
ASDF 2.21 now controls the character encoding used by Lisp source files.
......@@ -367,8 +367,9 @@ test_load_systems () {
case $lisp in
gcl) return 0 ;; # This one is hopeless
echo "Loading all these systems: $*"
${cmd} ${eval} \
"(or #.(load \"test/script-support.lisp\") #.(asdf-test::with-test () (asdf-test::test-load-systems ${s})))" \
"(or #.(load \"test/script-support.lisp\") #.(asdf-test::with-test () (asdf-test::test-load-systems $*)))" \
2>&1 | tee build/results/${lisp}-systems.text
test_interactively () {
......@@ -382,7 +383,7 @@ elif [ -n "$test_interactively" ] ; then
elif [ -n "$clean_load" ] ; then
elif [ -n "$load_systems" ] ; then
test_load_systems "$@"
elif [ -n "$upgrade" ] ; then
......@@ -21,9 +21,9 @@ don't cause full rebuilds all the time...
(defparameter file2.lisp (component-pathname (find-component 'static-and-serial "file2.lisp")))
(defparameter (component-pathname (find-component 'static-and-serial "")))
(defparameter file1.fasl (first (output-files 'compile-op '(static-and-serial "file1"))))
(assert-equal file1.lisp (test-source "file1.lisp"))
(assert-equal file2.lisp (test-source "file2.lisp"))
(assert-equal (test-source ""))
(assert-pathname-equal file1.lisp (test-source "file1.lisp")) ;; differ on LispWorks. Sigh.
(assert-pathname-equal file2.lisp (test-source "file2.lisp"))
(assert-pathname-equal (test-source ""))
(assert-pathname-equal file1.fasl (test-fasl "file1")) ;; differ on CCL. Sigh.
(defparameter file1-date (get-file-stamp file1.fasl))
(defparameter date1 (- file1-date 600))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment