index.html 31.9 KB
Newer Older
1
2
3
4
5
6
<!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"/>
7
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
8
9
10
11
  </head>
  <body>
    <div class="header">
      <span class="logo">
12
        <a href="https://common-lisp.net/project/asdf/" title="ASDF Homepage">
13
14
15
16
17
          <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>
18
19
20
    <div class="system-links">
      <ul>
        <li><a href="#what_it_is">What it is</a></li>
21
22
        <li><a href="#what_it_is_not">What it is not</a></li>
        <li><a href="#implementations">Supported Implementations</a></li>
23
        <li><a href="#examples">Examples</a></li>
24
25
        <li><a href="#documentation">Documentation</a></li>
        <li><a href="#downloads">Getting it</a></li>
26
        <li><a href="#extensions">Extensions</a></li>
27
        <li><a href="#bugs">Reporting Bugs</a></li>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
28
        <li><a href="#mailing-lists">Mailing Lists</a></li>
29
        <li><a href="changelog">Changelog</a></li>
30
31
      </ul>
    </div>
32
    <div class="contents">
33
34
        <a id="ASDF 3"></a>
        <h3>ASDF 3</h3>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
35
36
37
38
39
40
        <p>
	  ASDF is the <i>de facto</i> standard build facility for Common Lisp.
	  Your Lisp implementation probably contains a copy of ASDF,
	  which you can load using <kbd>(require "asdf")</kbd>.
	</p><p>
	  ASDF 3 is the current successor to Daniel Barlow's ASDF.
41
          It was rewritten for improved portability, robustness, usability,
42
          extensibility, configurability, internal consistency,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
43
          and the ability to deliver standalone executables.
44
          Its notable versions include pre-release 2.27 on February 1st 2013,
45
          first stable release 3.0.1 on May 16th 2013,
46
          major release 3.1.2 on May 6th 2014,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
47
          and latest release 3.1.7 on March 23rd 2016.
48
        </p>
49
50
        <a id="what_it_is"></a>
        <h3>What it is</h3>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
51
52
53
54
        <p>
	  ASDF is what Common Lisp hackers use to build and load software.
	  It is the successor of the Lisp <tt>DEFSYSTEM</tt> of yore.
	  ASDF stands for <em>A</em>nother <em>S</em>ystem <em>D</em>efinition <em>F</em>acility.
55
        </p>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
56
        <p>ASDF 3 contains two parts: <tt>asdf/defsystem</tt> and <tt>uiop</tt>.
57
        </p>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
58
59
60
61
        <dl>
          <dt><tt>asdf/defsystem</tt></dt>
          <dd>
            <p>is a tool to describe how Lisp source code is organized in systems,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
62
63
64
              and to build and load these systems.
	      The build happens based on a plan in term of actions that depend on previous actions;
	      the plan is computed from the structure of the systems.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
65
66
            </p>
            <p>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
67
68
              Typical actions consist in compiling a Lisp source file (unless already up to date)
              and loading the resulting compilation output (unless both already loaded and up to date).
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
69
70
71
              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>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
72
73
74
75
76
77
78
79
80
81
82
            <p>
	      If you come from the C/C++ world, ASDF covers a bit of what each of
	      <tt>make</tt>, <tt>autoconf</tt>, <tt>dlopen</tt> and <tt>libc</tt> do for C programs:
	      it orchestrates the compilation and dependency management,
	      handles some of the portability issues, dynamically finds and loads code,
	      and offers some portable system access library.
	      Except everything is different in Common Lisp, and ultimately much simpler overall,
	      though it does require acquiring some basic concepts
	      that do not exactly match those of the C and Unix world.
	      Importantly, ASDF builds all software in the current Lisp image,
	      as opposed to building software into separate processes.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
83
84
85
86
87
88
89
90
            </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>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
91
92
93
            <p>
              the <em>U</em>tilities for <em>I</em>mplementation- and <em>O</em>S- <em>P</em>ortability,
	      formerly known as <tt>asdf/driver</tt>,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
94
95
96
              is a Common Lisp portability library and runtime support system
              that helps you write Common Lisp software in a portable way.
            </p>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
97
98
            <p>
	      In addition to many general-purpose Lisp utilities,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
99
100
101
102
103
104
105
              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
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
106
107
108
              <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
109
              <a href="http://bimib.disco.unimib.it/people/Marco.Antoniotti/Projects/CL/HELAMBDAP/tests/asdf-uiop/docs/html/dictionary/dictionary.html">HEΛP</a>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
110
              (NB: you can, though it's not obvious, scroll the list of packages
111
              with a scrollbar on the right of the top-left pane, and then click on the package
112
              you're interested in to browse its symbols).
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
113
            </p>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
114
115
116
117
            <p>
	      <tt>uiop</tt> is distributed as part of <tt>ASDF</tt>:
              its source code is <em>transcluded</em> in
	      the single-file <tt>asdf.lisp</tt> being distributed
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
118
119
120
121
122
123
124
              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>
125
126
        <a id="what_it_is_not"></a>
        <h3>What it is not</h3>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
127
128
        <p>
	  ASDF will <em>not</em> download missing software components for you.
129
          For that, you want <a href="http://quicklisp.org/"><tt>Quicklisp</tt></a>,
130
          that builds upon ASDF, and is great for pulling and installing
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
131
132
          tarballs of packages you may depend upon.
          We also recommend <a href="https://common-lisp.net/project/clbuild/"><tt>clbuild</tt></a>,
133
134
          that now builds upon Quicklisp, as a great tool for pulling from version control
          packages you need to modify or want to contribute to.
135
          We recommend you should <em>not</em> use <tt>asdf-install</tt> anymore,
136
          as it is an older similar piece of software that is both unmaintained and obsolete.
137
138
139
        </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>,
140
141
          <a href="http://www.xach.com/lisp/buildapp/">buildapp</a>, or
          <a href="https://github.com/roswell/roswell">roswell</a>.
142
        </p><p>
143
          If you're unsatisfied with ASDF,
144
          beside helping with our
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
145
          <a href="https://gitlab.common-lisp.net/asdf/asdf/blob/master/TODO">TODO list</a>,
146
147
          you might be interested in other build systems for Common-Lisp:
          <ul>
148
            <li>Alastair Bridgewater's small and simple one-package-per-file
149
              <a href="https://bugs.launchpad.net/asdf/+bug/1230368"><tt>quick-build</tt></a>
150
              (also reimplemented as the ASDF extension
151
              <a href="https://gitlab.common-lisp.net/asdf/asdf-package-system"
152
153
                 ><tt>asdf-package-system</tt></a>, now part of ASDF 3;
              similar to <tt>faslpath</tt> below).
154
155
            </li>
            <li>Fran&ccedil;ois-Ren&eacute; Rideau's
156
              <a href="https://common-lisp.net/project/xcvb/"><tt>XCVB</tt></a>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
157
158
              (building object and image files deterministically and in parallel,
              but not actively maintained since 2012;
159
160
              a hypothetical ASDF 4 could conceivably be evolved to support these features
              thanks to the groundwork laid by ASDF 3).
161
162
163
            </li>
            <li>Drew McDermott's
              <a href="http://cs-www.cs.yale.edu/homes/dvm/"><tt>YTools</tt></a>
164
              (the polar opposite of XCVB, trying to maintain coherence
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
              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,
183
              abandoned but see <tt>asdf-package-system</tt> and <tt>quick-build</tt> above),
184
185
186
187
188
            </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>
189
190
191
192
193
            <li>Google's
              <a href="https://github.com/qitab/bazelisp"><tt>bazelisp</tt></a>
              (building Lisp applications deterministically with
              <a href="https://bazel.io/">Bazel</a>).
            </li>
194
195
196
          </ul>
          There are probably more.
          However, none of these systems seems to ever have had the traction of ASDF,
Robert Goldman's avatar
Robert Goldman committed
197
          probably because none was technically superior enough (if at all)
198
          to compensate for the first mover advantage.
199
200
        </p>
        <h3>Supported Implementations</h3>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
201
202
        <p>
	  ASDF 3 now supports all CL implementations
203
          that seem to have any current user base, and then some.
204
        </p><p>
205
          Most implementations provide ASDF as a module,
206
207
208
          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.)
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
209
210
          All these implementations provide ASDF 3.1 in their latest version,
	  but your software distribution might have an older version.
211
          As for remaining implementations,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
212
213
          they are obsolete and/or mostly unmaintained;
	  GCL is maintained but its maintainer doesn't seem to care about ASDF.
214
215
          CormanLisp was recently open-sourced, but its bundled ASDF has
    not yet been updated from 1.x.
216
        </p>
217
        <table border="1">
218
          <tr><th></th>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
219
220
            <th align="left">Provide ASDF 3.1</th>
            <th align="left">No ASDF</th>
221
            <th align="left">Unmaintained</th></tr>
222
          <tr><th align="left">Free</th>
223
            <td align="left"><tt>abcl ccl clasp clisp cmucl ecl mkcl sbcl</tt></td>
224
            <td align="left"><tt>cormanlisp gcl</tt></td>
225
            <td align="left"><tt>mcl xcl</tt></td></tr>
226
          <tr><th align="left">Proprietary</th>
227
228
            <td align="left"><tt>allegro lispworks</tt></td>
            <td align="left"></td>
229
            <td align="left"><tt>genera mocl scl</tt></td></tr>
230
        </table>
231
        <p>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
232
233
234
          To deal with an implementation that does not yet provide ASDF 3.1, we provide
          <a href="https://common-lisp.net/asdf/asdf/blob/master/tools/install-asdf.lisp">a script</a>
          that can install ASDF 3.1 where your implementation goes looking for it
235
236
          when you <tt>(require "asdf")</tt> .
        </p><p>
237
238
          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.
239
          Also note that <tt>mocl</tt> only supports a heavily modified variant of ASDF 2,
240
241
          and will require robust cross-compilation support to be added to ASDF 3
          before it is actually supported.
242
        </p>
243
244
        <!-- Note to self:
             The maintainers of the following implementations require direct notification:
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
245
             abcl allegro ccl clisp cmucl ecl gcl lispworks mkcl sbcl scl xcl
246
Armed Bear <armedbear-devel@common-lisp.net>,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
247
248
Allegro <bugs@franz.com>,
Clozure CL <openmcl-devel@clozure.com>,
249
GNU CLISP <clisp-list@lists.sourceforge.net> (sds),
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
250
CMU CL <cmucl-imp@cmucl.cons.org>,
251
ECL <ecl-devel@common-lisp.net>,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
252
253
254
255
256
257
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>
258
259
CLASP <clasp-devel@common-lisp.net>
Corman Common Lisp <admin@cormanlisp.com>
260
        -->
261
262
        <p>
          If there is an old or new implementation that we are missing,
263
          it shouldn't be hard to adapt ASDF to support it.
264
          Ask us!
265
        </p>
266

267
268
269
270
271
272
        <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>

273
274
275
276
277
278
279
        <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>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
280
          <li><a href="https://gitlab.common-lisp.net/asdf/asdf/blob/master/doc/asdf.texinfo">as texinfo source</a></li>
281
        </ul>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
282
283
284
285
286
287
288
289
290
291
292
        <p>
	  The first few sections,
	  <a href="https://common-lisp.net/project/asdf/asdf/Loading-ASDF.html">Loading ASDF</a>,
	  <a href="https://common-lisp.net/project/asdf/asdf/Configuring-ASDF.html">Configuring ASDF</a>
	  and <a href="https://common-lisp.net/project/asdf/asdf/Using-ASDF.html">Using ASDF</a>
	  will get you started as a simple user.
        </p><p>
	  If you want to define your own systems, further read the section
	  <a href="https://common-lisp.net/project/asdf/asdf/Defining-systems-with-defsystem.html">Defining systems with defsystem</a>.
        </p><p>
	  Regarding the internal design of ASDF in general,
293
          and the work we did on ASDF 3,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
294
          see the extended version (26 pages) of our paper
295
          <cite><a href="http://fare.tunes.org/files/asdf3/asdf3-2014.html"
296
                   >ASDF 3, or Why Lisp is Now an Acceptable Scripting Language</a></cite>
297
          (<a href="http://fare.tunes.org/files/asdf3/asdf3-2014.pdf">PDF</a>,
298
          <a href="https://github.com/fare/asdf3-2013">git</a>).
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
299
          The shorter version (8 pages), presented at
300
301
302
303
304
305
          <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"
306
             >ASDF 3 tutorial</a> presented at ELS 2013,
307
308
          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>.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
309
310
          For details about our previous work on ASDF 2,
          see our paper presented at
311
312
          <a href="http://www.international-lisp-conference.org/2010/index">ILC 2010</a>,
          <cite><a href="ilc2010draft.pdf"
313
                   >Evolving ASDF: More Cooperation, Less Coordination</a></cite>
314
          (<a href="https://gitlab.common-lisp.net/asdf/ilc2010">git</a>).
315
        </p>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
316
317
        <p>
	  Finally, while the manual covers all the basics,
318
319
          some advanced or new features remain underdocumented.
          Please contact our mailing-list (see below)
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
320
          regarding any feature that isn't well-documented enough.
321
        </p>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
322
323
324
325
326
327
        <p>
	  Until we write more documentation on the further innovations of ASDF 3,
          the documentation strings,
	  the <a href="https://gitlab.common-lisp.net/asdf/asdf">source code</a>,
	  the <a href="changelog">changelog</a>
	  and the <a href="https://gitlab.common-lisp.net/asdf/asdf/commits/master">git log</a>
328
329
          are unfortunately your best chances for discovering the available functionality.
        </p>
330

331
        <a id="downloads"></a>
332
333
334
335
336
        <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>
337
          <li>download just the latest <em>release</em> source for
338
            <a href="https://common-lisp.net/project/asdf/asdf.lisp">asdf.lisp</a>;
339
          </li>
340
          <li>download the latest <em>release</em>
341
            <a href="https://common-lisp.net/project/asdf/asdf.tar.gz">tarball</a>
342
            to get all bells and whistles;
343
          </li>
344
          <li>pull the latest <em>development</em> tree from our git repository
345
            <pre>git clone https://gitlab.common-lisp.net/asdf/asdf.git</pre>
346
            (note that our "master" branch is for current development;
347
348
            get our "release" branch for the latest stable release.
            Run <tt>make</tt> to create <tt>build/asdf.lisp</tt>);
349
          </li>
Robert P. Goldman's avatar
Robert P. Goldman committed
350
351
          <li>browse the latest <em>development</em> tree from our git
        repository:
352
          <a href="https://gitlab.common-lisp.net/asdf/asdf">gitlab</a>
353
354
          </li>
          <li>download the tarball of a past release:
355
            <a href="https://common-lisp.net/project/asdf/archives/">archives</a>
356
357
        </li></ul>

358
359
360
        <a id="extensions"></a>
        <h3>Extensions</h3>
        <p>Known extensions to ASDF include:</p>
361
        <ul>
362
363
364
365
          <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>
366
          <li><a href="https://gitlab.common-lisp.net/asdf/asdf-encodings"
367
368
                 ><tt>asdf-encodings</tt></a>,
            to compile Lisp source files with character encodings other than UTF-8.</li>
369
          <li><a href="https://gitlab.common-lisp.net/asdf/asdf-finalizers"
370
371
372
                 ><tt>asdf-finalizers</tt></a>,
            to allow macros to include code to be evaluated
            at the end of a file being compiled.</li>
373
374
375
          <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>
376
          <li><a href="https://common-lisp.net/project/asdf-system-connections/"
377
378
                 ><tt>asdf-system-connections</tt></a>,
            lets you specify systems that are automatically loaded when
379
            two other systems are loaded, to connect them.</li>
380
381
382
383
384
385
386
387
388
          <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>
389
390
391
        </ul>
        <p>Former extensions, now superseded, include:</p>
        <ul>
392
393
          <li><tt>asdf-binary-locations</tt>
            used to allow one to redirect where ASDF 1 created its output files,
394
            so they don't clash between implementations and don't pollute source directories.
395
396
            It is superseded by <tt>asdf/defsystem</tt>'s builtin
            <tt>asdf-output-translations</tt> mechanism;
397
398
            a limited compatibility mode is available to easily convert
            your former ABL configuration into an AOT configuration.
399
400
401
402
            <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).
403
          </li>
404
          <li><tt>asdf-bundle</tt>, n&eacute;e <tt>asdf-ecl</tt>,
405
            allowed you to create a single-file bundle out of a system,
406
            for easier delivery.
407
            It is now a builtin part of <tt>asdf/defsystem</tt>,
408
409
410
            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.
411
          </li>
412
413
414
415
          <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>
416
417
418
419
          <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>
420
421
422
423
424
425
426
427
428
429
          <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>
430
          <li><tt>asdf-utils</tt> was a collection of utilities that originated with ASDF.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
431
            It is now superseded by <tt>uiop</tt>, aka <tt>asdf/driver</tt>,
432
433
434
            which is part of ASDF,
            and exports its functionality
            in its own package <tt>uiop</tt>.
435
          </li>
436
        </ul>
437
438
439
440
441
442

        <h3>Contributing</h3>
        <p>Join our mailing list, check the code out from git,
          send questions, ideas and patches!
        </p>

443
444
        <a id="bugs">
        <h3>Reporting Bugs</h3>
445
        <p>To report bugs, you can use our
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
446
          <a href="https://bugs.launchpad.net/asdf/">launchpad project</a>.
447
448
449
          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>
450
451
452
453
454
455
456
457
458
        <p>
          Note that the most valuable thing you can send this way are test cases,
          if possible as <tt>.script</tt> files readily runnable by our test system.
          If you're courageous, send us merge requests on
          <a href="https://gitlab.common-lisp.net/asdf/asdf/">gitlab</a>.
        </p>
        <p>
          While bug fixes are useful, they are not usually as valuable as test cases:
          small easy fixes will be obvious from the test case,
459
460
          and large fixes written by someone who isn't
          either a maintainer or working tightly with one
461
462
463
464
465
466
467
          will probably not be correct and not fit the codebase:
          any modification at one point is likely to have repercussions
          at other unobvious places in the codebase,
          for the code to be correct in a wider variety of scenarios
          than casual developers usually think about.
          Now, if you're willing to become a maintainer, you're welcome to join the team!
        </p>
468

Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
469
470
        <a id="mailing-lists"></a>
        <h3>Mailing Lists</h3>
471
        <ul>
472
          <li><b>asdf-devel</b>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
473
            A list for questions, suggestions, bug reports, patches, and so on.
474
            It's for everyone and everything. Please join the conversation!
475
476
477
          <a
        href="http://mailman.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel">asdf-devel
        mailman site to subscribe</a>
478
          </li>
479
          <li><b>asdf-announce</b>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
480
            A low-volume mailing-list for announcements only, mostly regarding new releases.
481
482
483
484
            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
485
486
487
488
        development.
          <a
        href="http://mailman.common-lisp.net/cgi-bin/mailman/listinfo/asdf-announce">asdf-announce
        mailman site to subscribe</a>
489
490
491
492
493
494
495
496
497
498
        </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>
Robert Goldman's avatar
Robert Goldman committed
499
500
          <dt>March 2016</dt>
          <dd>Release of 3.1.7, another bug fix release for the 3.1.x series.</dd>
Robert Goldman's avatar
Robert Goldman committed
501
502
503
504
505
506
          <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>
Robert Goldman's avatar
Robert Goldman committed
507
508
509
510
511
          <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>
512
513
          <dt>May 2015</dt>
          <dd>With the LispWorks 7.0 release, all actively maintained CL implementations
Robert Goldman's avatar
Robert Goldman committed
514
        are now providing ASDF 3.0 or later, and
515
        support for older variants is now officially dropped.</dd>
516
517
          <dt>October 2014</dt>
          <dd>More bug fixing leads to release of 3.1.4 on 10 October 2014.
518
519
          There should be no incompatibilities.
          See the <a href="changelog">Changelog</a> for more details.</dd>
520
521
522
523
          <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>
Robert P. Goldman's avatar
Robert P. Goldman committed
524
525
526
527
528
          <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>
529
          <dt>July 2013 to May 2014</dt>
530
          <dd>Fran&ccedil;ois-Ren&eacute; Rideau has resigned as maintainer
531
            but remained an active developer.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
532
533
            Robert P. Goldman is interim maintainer until someone more gifted,
            charming, dedicated, and better-looking can be secured to fill the role.
534
535
536
537
            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.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
538
539
          </dd>
          <dt>November 2012 to June 2013</dt>
540
          <dd>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
541
            Fran&ccedil;ois-Ren&eacute; Rideau completely rewrites ASDF
542
            and publishes ASDF 3, pre-released as 2.27 in February 2013,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
543
544
            and released as 3.0.1 in May 2013.
            It now includes both the traditional <tt>asdf/defsystem</tt>
545
            and a formalized portability library <tt>uiop</tt> (n&eacute;e <tt>asdf/driver</tt>).
546
            <tt>asdf/defsystem</tt> is a backward-compatible reimplementation of ASDF
547
            with correct timestamp propagation based on a consistent dependency model,
548
            and featuring support for bundle output, deferred warnings check, and more.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
549
550
            <tt>uiop</tt> provides many abstractions to write portable Common Lisp programs.
            Last version: 3.0.1.
551
          </dd>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
552
          <dt>December 2009 to October 2012</dt>
553
          <dd>Fran&ccedil;ois-Ren&eacute; Rideau is de facto maintainer,
554
            with notable contributions from Robert P. Goldman, but also
555
            Juanjo Garcia-Ripoll and James Anderson.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
556
            ASDF 2.000 is released in May 2010
557
            with many clean-ups, better configurability, some new features,
558
            and updated documentation.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
559
560
561
562
            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.
563
564
565
566
          </dd>
          <dt>May 2006 to November 2009</dt>
          <dd>Gary King is de facto maintainer,
            with notable contributions from
567
            Robert P. Goldman, Nikodemus Siivola, Christophe Rhodes, Daniel Herring.
568
            Many small features and bug fixes,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
569
            making the project more maintainable,
570
            moving to using git and common-lisp.net.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
571
            Last version: 1.369.
572
573
574
575
576
          </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.
577
            The system made slightly more robust, a few more features.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
578
            Last version: 1.97.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
579
          </dd>
580
          <dt>August 2001 to May 2004</dt>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
581
          <dd>Created then developed by Daniel Barlow, with notable contributions from
582
            Christophe Rhodes, Kevin Rosenberg, Edi Weitz, Rahul Jain.
583
            Last version: 1.85.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
584
          </dd>
585
586
      </dl>
          </div>
587
588
589
590
591
      <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>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
592
        <p><span class="copyright"Copyright &copy; 2001-2016 Daniel Barlow and contributors</span></p>
593
        <p>ASDF has an <a href="http://www.opensource.org/licenses/mit-license.php">MIT style</a> license</p>
594
        <div id="timestamp">Last updated 2016-09-19</div>
595
    </div>
596
597
  </body>
</html>