Skip to content
index.html 13.5 KiB
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"/>
  </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>
    <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>
        <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
        <li><a href="#mailing-lists">Mailing Lists</a></li>
        <li><a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=log"
               >Changelog</a></li>
      </ul>
    </div>
        <a id="ASDF 2"></a>
        <h3>ASDF 2</h3>
        <p>ASDF 2, initially released on May 31st 2010,
          is the current successor of 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="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>
        <p>It is roughly what Common Lisp hackers use to build software
          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>
        <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.
          For that, you want <a href="http://quicklisp.org/">Quicklisp</a>,
          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.
          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>
          (trying maintain coherence of the current Lisp image at a fine grain).
          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.
        </p>
        <a id="implmementations"></a>
        <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,
          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.)
        </p><p>
          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,
          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>
            <td align="left">allegro</td>
            <td align="left">lispworks scl</td>
            <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,
          it shouldn't be hard to adapt ASDF to support it.
        <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="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=doc/asdf.texinfo">as texinfo source</a></li>
        <p>Regarding the internal design of ASDF in general,
          and the work we did 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></p>
        <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>
        <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="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob_plain;tag=RELEASE;f=asdf.lisp">asdf.lisp</a>,-->
            <a href="http://common-lisp.net/project/asdf/asdf.lisp">asdf.lisp</a>;
          <li>download the latest <em>release</em>
            <!--<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>
            to get all bells and whistles;
          <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
            <pre>git clone git://common-lisp.net/projects/asdf/asdf.git</pre>
            (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>
        <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>

Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
        <a id="mailing-lists"></a>
        <h3>Mailing Lists</h3>
        <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
            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.
        </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>
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
          <dt>Since December 2009</dt>
          <dd>Fran&ccedil;ois-Ren&eacute; Rideau is de facto maintainer,
            with notable contributions from Robert P. Goldman,
            Juanjo Garcia-Ripoll and James Anderson.
            with many clean-ups, better configurability
            and updated documentation.
          </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,
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
            making the project more maintainable,
            moving to using git and common-lisp.net.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
            Last version: 1.369.
          </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 more robust, a few more features.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
            Last version: 1.97.
          <dd>Developed by Daniel Barlow, with notable contributions from
            Christophe Rhodes, Kevin Rosenberg, Edi Weitz, Rahul Jain.
Francois-Rene Rideau's avatar
Francois-Rene Rideau committed
            Last version: 1.37.
          <dt>August 2001</dt>
          <dd>Created by Daniel Barlow</dd>
      <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 &copy; 2001-2011 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 2011-11-21</div>