index.html 14.4 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!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"/>
  </head>
  <body>
    <div class="header">
      <span class="logo">
        <a href="http://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>
17
18
19
    <div class="system-links">
      <ul>
        <li><a href="#what_it_is">What it is</a></li>
20
21
        <li><a href="#what_it_is_not">What it is not</a></li>
        <li><a href="#implementations">Supported Implementations</a></li>
22
        <li><a href="#examples">Examples</a></li>
23
24
25
        <li><a href="#documentation">Documentation</a></li>
        <li><a href="#downloads">Getting it</a></li>
        <li><a href="#bugs">Reporting Bugs</a></li>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
26
        <li><a href="#mailing-lists">Mailing Lists</a></li>
27
28
29
30
        <li><a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=log"
               >Changelog</a></li>
      </ul>
    </div>
31
    <div class="contents">
32
33
        <a id="ASDF 2"></a>
        <h3>ASDF 2</h3>
34
        <p>ASDF 2, initially released on May 31st 2010,
35
          is the current successor to Daniel Barlow's ASDF,
36
37
38
          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.
39
        </p>
40
41
42
43
44
        <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>
45
        <p>It is roughly what Common Lisp hackers use to build software
46
47
48
49
50
          where C hackers would use say GNU Make.
        </p>
        <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>
51
52
        <a id="what_it_is_not"></a>
        <h3>What it is not</h3>
53
        <p>ASDF will <em>not</em> download missing software components for you.
54
          For that, you want <a href="http://quicklisp.org/">Quicklisp</a>,
55
56
57
58
59
          that builds upon ASDF, and is great for pulling and installing
          tarballs of packages you may depend upon;
          we also recommend <a href="http://common-lisp.net/project/clbuild/">clbuild</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.
60
61
62
63
64
65
66
67
68
69
70
          We recommend you should <em>not</em> use ASDF-Install anymore,
          as it is an older similar piece of software that is both unmaintained and obsolete.
        </p><p>
          If you're unsatisfied with ASDF, other actively maintained build systems for Common-Lisp
          that may or may not satisfy you include:
          Fran&ccedil;ois-Ren&eacute; Rideau's
          <a href="http://common-lisp.net/project/xcvb/">XCVB</a>
          (trying to build object and image files deterministically and in parallel),
          or its polar opposite,
          Drew McDermott's
          <a href="http://cs-www.cs.yale.edu/homes/dvm/">YTools</a>
71
72
          (trying maintain coherence of the current Lisp image at a fine grain),
          or the newcomer
73
74
          <a href="http://lisp.ystok.ru/asdlite/">ASDlite</a>
          (a somewhat improved incompatible variant of ASDF 1).
75
76
77
78
79
80
81
82
83
84
85
          Older systems that are not maintained anymore include
          Mark Kantrowitz's <a href="http://www.cliki.net/mk-defsystem">mk-defsystem</a>
          (free software successor of the old proprietary DEFSYSTEM's and predecessor of ASDF),
          Sean Ross's <a href="http://sean-ross.blogspot.com/search/label/mudballs">mudballs</a>
          (aborted attempt at making things cleaner than in ASDF),
          Peter Jetter's <a href="http://www.cliki.net/faslpath">faslpath</a>
          (a much simpler system integrating mapping packages to files),
          Alexander Kahl's <a href="http://www.cliki.net/evol">evol</a>
          (a reimplementation of the GNU autotools stack in Lisp),
          and probably more.
          However, none of these systems seems to ever have had the traction of ASDF.
86
        </p>
87
        <a id="implementations"></a>
88
89
90
91
92
        <h3>Supported Implementations</h3>
        <p>ASDF 2 now supports all CL implementations
          that seem to have any current user base.
        </p><p>
          Most implementations provide ASDF 2 as a module,
93
94
95
          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.)
96
97
98
99
        </p><p>
          A few implementations don't provide ASDF yet,
          but have announced they will in their next release.
          As for remaining implementations,
100
101
          they are obsolete and/or mostly unmaintained;
          still ASDF 2 supports them if you load it manually,
102
103
104
105
106
107
108
109
110
111
112
113
114
          though there might never be a next release
          to provide it through <tt>require</tt>.
        </p>
        <table>
          <tr><th></th>
            <th align="left">Provide "asdf"</th>
            <th align="left">Will provide it</th>
            <th align="left">Obsolete</th></tr>
          <tr><th align="left">Free</th>
            <td align="left">abcl ccl clisp cmucl ecl sbcl xcl</td>
            <td> </td>
            <td align="left">gcl mcl</td></tr>
          <tr><th align="left">Proprietary</th>
115
116
            <td align="left">allegro lispworks</td>
            <td align="left">scl</td>
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
            <td align="left">cormanlisp genera</td></tr>
        </table>
        <!-- Note to self:
             The maintainers of the following implementations follow asdf-announce:
             allegro	Gary King <gwking@franz.com>
             clisp	(sds)
             ecl	(juanjo)

             The maintainers of the following implementations require direct notification:
             abcl ccl cmucl gcl lispworks sbcl scl xcl
Armed Bear <armedbear-devel@common-lisp.net>,
openmcl-devel@clozure.com,
cmucl-imp@cons.org,
gcl-devel@gnu.org,
lisp-support@lispworks.com,
SBCL Devel-list <sbcl-devel@lists.sourceforge.net>,
Douglas Crosher <dtc3@scieneer.com>,
Peter Graves <gnooth@gmail.com>
          -->
        <p>
          If there is an old or new implementation that we are missing,
138
          it shouldn't be hard to adapt ASDF to support it.
139
          Ask us!
140
        </p>
141

142
143
144
145
146
147
        <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>

148
149
150
151
152
153
154
        <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>
155
          <li><a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=doc/asdf.texinfo">as texinfo source</a></li>
156
        </ul>
157
158
        <p>Regarding the internal design of ASDF in general,
          and the work we did on ASDF 2,
159
160
161
162
          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></p>
163
164
165
166
167
        <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>
168

169
        <a id="downloads"></a>
170
171
172
173
174
        <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>
175
          <li>download just the latest <em>release</em> source for
176
            <!--<a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob_plain;tag=RELEASE;f=asdf.lisp">asdf.lisp</a>,-->
177
            <a href="http://common-lisp.net/project/asdf/asdf.lisp">asdf.lisp</a>;
178
          </li>
179
          <li>download the latest <em>release</em>
180
181
            <!--<a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;tag=RELEASE;a=snapshot;sf=tgz">tarball</a>,-->
            <a href="http://common-lisp.net/project/asdf/asdf.tar.gz">tarball</a>
182
            to get all bells and whistles;
183
          </li>
184
185
186
187
          <li>download just the latest <em>development</em> source from our git repository:
            <a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob_plain;f=asdf.lisp;hb=HEAD">asdf.lisp</a>
          </li>
          <li>pull the latest <em>development</em> tree from our git repository
188
            <pre>git clone git://common-lisp.net/projects/asdf/asdf.git</pre>
189
190
191
192
193
194
195
196
            (note that our "master" branch is for current development;
            get our "release" branch for the latest stable release.);
          </li>
          <li>browse the latest <em>development</em> tree from our git repository:
            <a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git">gitweb</a>
          </li>
          <li>download the tarball of a past release:
            <a href="http://common-lisp.net/project/asdf/archives/">archives</a>
197
198
199
200
        </li></ul>

        <a id="bugs">
        <h3>Reporting Bugs</h3>
201
        <p>To report bugs, you can use our
202
203
204
205
206
          <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>

Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
207
208
        <a id="mailing-lists"></a>
        <h3>Mailing Lists</h3>
209
210
        <ul>
          <li><a href="http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel">asdf-devel</a>:
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
211
212
213
214
215
216
217
218
219
            A list for questions, suggestions, bug reports, patches, and so on.
	    It's for everyone and everything. Please join the conversation!
	  </li>
          <li><a href="http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-announce">asdf-announce</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.
220
221
222
223
224
225
226
227
228
229
        </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>
230
231
          <dt>In April 2012</dt>
          <dd>
232
233
234
            ASDF 2.21 now controls the character encoding used by Lisp source files.
            You can specify different encodings in your defsystem,
            e.g. <kbd>:encoding :latin1</kbd>,
235
            if you <kbd>:defsystem-depends-on (:asdf-encodings)</kbd>.
236
237
238
239
240
241
242
            While the default will remain to load and compile file
            with the <kbd>:default</kbd> external-format,
            we encourage all library authors to adopt
            the <i>de facto</i> standard, UTF-8,
            for all their source files (.lisp and .asd).
            Our intent is to bless and enforce this standard encoding
            on all these files by default in a not-to-faraway future.
243
          </dd>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
244
          <dt>Since December 2009</dt>
245
          <dd>Fran&ccedil;ois-Ren&eacute; Rideau is de facto maintainer,
246
            with notable contributions from Robert P. Goldman, but also
247
            Juanjo Garcia-Ripoll and James Anderson.
248
            ASDF 2 released
249
            with many clean-ups, better configurability, some new features,
250
251
252
253
254
            and updated documentation.
          </dd>
          <dt>May 2006 to November 2009</dt>
          <dd>Gary King is de facto maintainer,
            with notable contributions from
255
            Robert P. Goldman, Nikodemus Siivola, Christophe Rhodes, Daniel Herring.
256
            Many small features and bug fixes,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
257
            making the project more maintainable,
258
            moving to using git and common-lisp.net.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
259
            Last version: 1.369.
260
261
262
263
264
          </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.
265
            The system made more robust, a few more features.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
266
            Last version: 1.97.
267
          <dt>August 2001 to May 2004</dt>
268
          <dd>Developed by Daniel Barlow, with notable contributions from
269
            Christophe Rhodes, Kevin Rosenberg, Edi Weitz, Rahul Jain.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
270
            Last version: 1.37.
271
272
          <dt>August 2001</dt>
          <dd>Created by Daniel Barlow</dd>
273
274
      </dl>
          </div>
275
276
277
278
279
      <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>
280
        <p><span class="copyright"Copyright &copy; 2001-2012 Daniel Barlow and contributors</span></p>
281
        <p>ASDF has an <a href="http://www.opensource.org/licenses/mit-license.php">MIT style</a> license</p>
282
        <div id="timestamp">Last updated 2012-04-28</div>
283
    </div>
284
285
  </body>
</html>