1
0
Fork 0
cl-sites/asdf.common-lisp.dev/asdf/Bibliography.html
2023-11-12 11:34:18 +01:00

196 lines
11 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- This manual describes ASDF, a system definition facility
for Common Lisp programs and libraries.
You can find the latest version of this manual at
https://common-lisp.net/project/asdf/asdf.html.
ASDF Copyright (C) 2001-2019 Daniel Barlow and contributors.
This manual Copyright (C) 2001-2019 Daniel Barlow and contributors.
This manual revised (C) 2009-2019 Robert P. Goldman and Francois-Rene Rideau.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-->
<title>Bibliography (ASDF Manual)</title>
<meta name="description" content="Bibliography (ASDF Manual)">
<meta name="keywords" content="Bibliography (ASDF Manual)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link href="index.html" rel="start" title="Top">
<link href="Concept-Index.html" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html" rel="up" title="Top">
<link href="Concept-Index.html" rel="next" title="Concept Index">
<link href="Ongoing-Work.html" rel="prev" title="Ongoing Work">
<style type="text/css">
<!--
a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
span:hover a.copiable-anchor {visibility: visible}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<div class="unnumbered" id="Bibliography">
<div class="header">
<p>
Next: <a href="Concept-Index.html" accesskey="n" rel="next">Concept Index</a>, Previous: <a href="Ongoing-Work.html" accesskey="p" rel="prev">Ongoing Work</a>, Up: <a href="index.html" accesskey="u" rel="up">ASDF: Another System Definition Facility</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<span id="Bibliography-1"></span><h2 class="unnumbered">Bibliography</h2>
<ul>
<li> Andrey Mokhov, Neil Mitchell and Simon Peyton Jones:
&ldquo;Build Systems à la Carte&rdquo;,
International Conference on Functional Programming, 2018.
<a href="https://www.microsoft.com/en-us/research/uploads/prod/2018/03/build-systems-final.pdf">https://www.microsoft.com/en-us/research/uploads/prod/2018/03/build-systems-final.pdf</a>
This influential article provides axes along which to describe build systems in general;
ASDF, in addition to being in-image (an axis not considered by these authors),
has the following characteristics:
ASDF&rsquo;s persistent build information is file modification times
(the way ASDF is written, it should be easy enough to write an extension that modifies it
to use a &ldquo;cloud cache&rdquo; à la Bazel,
but that would involve using some database, network and cryptographic libraries,
which cannot reasonably be included in the base ASDF,
that must remain a minimal bootstrappable system with no external dependencies).
The object model of ASDF was initially designed for &ldquo;static&rdquo; dependencies
with a &ldquo;topological&rdquo; scheduler, but its <code>defsystem-depends-on</code> mechanism
(and more generally, the ability to call ASDF from within an <code>.asd</code> file)
allows for multiple <em>phases</em> of execution resulting
in &ldquo;dynamic&rdquo; dependencies with a &ldquo;suspending&rdquo; scheduler.
The rebuilder essentially uses a &ldquo;dirty bit&rdquo;, except that the in-image model
and the multiple phase support mean that&rsquo;s actually more than a bit:
instead it&rsquo;s three bits plus the timestamp plus a phase depth level.
The build is guaranteed &ldquo;minimal&rdquo; in number of steps computed.
It is local. It assumes but does not enforce determinism.
It does not assume early cutoff of the build when rebuild dependencies didn&rsquo;t change.
</li><li> Robert Goldman, Elias Pipping, and François-René Rideau:
&ldquo;Delivering Common Lisp Applications with ASDF 3.3&rdquo;,
European Lisp Symposium, 2017.
<a href="https://github.com/fare/asdf2017">https://github.com/fare/asdf2017</a>
This short article gives an overview of the changes in ASDF 3.2 and 3.3, including
improved application delivery, asynchronous subprocess management,
correct support for multi-phase builds, and enhanced source location configuration.
</li><li> Francois-Rene Rideau:
&ldquo;ASDF 3, or Why Lisp is Now an Acceptable Scripting Language&rdquo;,
European Lisp Symposium, 2014.
<a href="https://github.com/fare/asdf3-2013">https://github.com/fare/asdf3-2013</a>
This article describes the innovations in ASDF 3 and 3.1,
as well as historical information on previous versions.
</li><li> Alastair Bridgewater:
&ldquo;Quick-build&rdquo; (private communication), 2012.
<code>quick-build</code> is a simple and robust one file, one package build system,
similar to <code>faslpath</code>, in 182 lines of code
(117 of which are neither blank nor comments nor docstrings).
Unhappily, it remains unpublished and its IP status is unclear as of April 2014.
<code>asdf/package-system</code> is mostly compatible with it,
modulo a different setup for toplevel hierarchies.
</li><li> Zach Beane:
&ldquo;Quicklisp&rdquo;, 2011.
The Quicklisp blog and Xach&rsquo;s personal blogs contain information on Quicklisp.
<a href="http://blog.quicklisp.org/">http://blog.quicklisp.org/</a>
<a href="http://lispblog.xach.com/">http://lispblog.xach.com/</a> (new)
<a href="http://xach.livejournal.com/">http://xach.livejournal.com/</a> (old)
</li><li> Francois-Rene Rideau and Robert Goldman:
&ldquo;Evolving ASDF: More Cooperation, Less Coordination&rdquo;,
International Lisp Conference, 2010.
This article describes the main issues solved by ASDF 2,
and exposes its design principles.
<a href="https://common-lisp.net/project/asdf/ilc2010draft.pdf">https://common-lisp.net/project/asdf/ilc2010draft.pdf</a>
<a href="http://rpgoldman.goldman-tribe.org/papers/ilc2010-asdf.pdf">http://rpgoldman.goldman-tribe.org/papers/ilc2010-asdf.pdf</a>
</li><li> Francois-Rene Rideau and Spencer Brody:
&ldquo;XCVB: an eXtensible Component Verifier and Builder for Common Lisp&rdquo;,
International Lisp Conference, 2009.
This article describes XCVB, a proposed competitor for ASDF;
many of its ideas have been incorporated into ASDF 2 and 3,
though many other ideas still haven&rsquo;t.
<a href="https://common-lisp.net/project/xcvb/">https://common-lisp.net/project/xcvb/</a>
</li><li> Peter von Etter:
&ldquo;faslpath&rdquo;, 2009.
<code>faslpath</code> is similar to the latter <code>quick-build</code>
and our yet latter <code>asdf/package-system</code> extension,
except that it uses dot <code>.</code> rather than slash <code>/</code> as a separator.
<a href="https://code.google.com/p/faslpath/">https://code.google.com/p/faslpath/</a>
</li><li> Drew McDermott:
&ldquo;A Framework for Maintaining the Coherence of a Running Lisp,&rdquo;
International Lisp Conference, 2005.
<a href="http://www.cs.yale.edu/homes/dvm/papers/lisp05.pdf">http://www.cs.yale.edu/homes/dvm/papers/lisp05.pdf</a>
</li><li> Dan Barlow: &ldquo;ASDF Manual&rdquo;, 2004.
Older versions of this document from the days of ASDF 1;
they include ideas laid down by Dan Barlow,
and comparisons with older defsystems (<code>mk-defsystem</code>)
and defsystem (<code>defsystem-4</code>, kmp&rsquo;s Memo 801).
</li><li> Marco Antoniotti and Peter Van Eynde:
&ldquo;<code>DEFSYSTEM</code>: A <code>make</code> for Common Lisp, A Thoughtful Re-Implementation of an Old Idea&rdquo;, 2002.
The <samp>defsystem-4</samp> proposal available in the CLOCC repository.
</li><li> Mark Kantrovitz:
&ldquo;Defsystem: A Portable Make Facility for Common Lisp&rdquo;, 1990.
The classic <samp>mk-defsystem</samp>, later variants of which
are available in the CLOCC repository as <code>defsystem-3.x</code>.
</li><li> Richard Elliot Robbins:
&ldquo;BUILD: A Tool for Maintaining Consistency in Modular Systems&rdquo;, MIT AI TR 874, 1985.
<a href="http://www.dtic.mil/dtic/tr/fulltext/u2/a162744.pdf">http://www.dtic.mil/dtic/tr/fulltext/u2/a162744.pdf</a>
</li><li> Kent M. Pitman (kmp): &ldquo;The Description of Large Systems&rdquo;, MIT AI Memo 801, 1984.
Available in updated-for-CL form on the web at
<a href="http://nhplace.com/kent/Papers/Large-Systems.html">http://nhplace.com/kent/Papers/Large-Systems.html</a>
</li><li> Dan Weinreb and David Moon:
&ldquo;Lisp Machine Manual&rdquo;, 3rd Edition MIT, March 1981.
The famous CHINE NUAL describes one of the earliest variants of DEFSYSTEM.
(NB: Not present in the second preliminary version of January 1979)
<a href="http://bitsavers.org/pdf/mit/cadr/chinual_3rdEd_Mar81.pdf">http://bitsavers.org/pdf/mit/cadr/chinual_3rdEd_Mar81.pdf</a>
</li></ul>
</div>
<hr>
<div class="header">
<p>
Next: <a href="Concept-Index.html">Concept Index</a>, Previous: <a href="Ongoing-Work.html">Ongoing Work</a>, Up: <a href="index.html">ASDF: Another System Definition Facility</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>