Raymond Toy pushed to branch master at cmucl / cmucl
Commits:
-
005cf179
by Raymond Toy at 2017-01-11T21:55:53-08:00
5 changed files:
- src/contrib/asdf/asdf.lisp
- src/contrib/asdf/doc/asdf.html
- src/contrib/asdf/doc/asdf.info
- src/contrib/asdf/doc/asdf.pdf
- src/general-info/release-21c.txt
Changes:
... | ... | @@ -6,11 +6,11 @@ for Common Lisp programs and libraries. |
6 | 6 |
You can find the latest version of this manual at
|
7 | 7 |
https://common-lisp.net/project/asdf/asdf.html.
|
8 | 8 |
|
9 |
-ASDF Copyright (C) 2001-2015 Daniel Barlow and contributors.
|
|
9 |
+ASDF Copyright (C) 2001-2016 Daniel Barlow and contributors.
|
|
10 | 10 |
|
11 |
-This manual Copyright (C) 2001-2015 Daniel Barlow and contributors.
|
|
11 |
+This manual Copyright (C) 2001-2016 Daniel Barlow and contributors.
|
|
12 | 12 |
|
13 |
-This manual revised (C) 2009-2015 Robert P. Goldman and Francois-Rene Rideau.
|
|
13 |
+This manual revised (C) 2009-2016 Robert P. Goldman and Francois-Rene Rideau.
|
|
14 | 14 |
|
15 | 15 |
Permission is hereby granted, free of charge, to any person obtaining
|
16 | 16 |
a copy of this software and associated documentation files (the
|
... | ... | @@ -127,11 +127,11 @@ ul.no-bullet {list-style: none} |
127 | 127 |
<li><a name="toc-Pathname-specifiers" href="#Pathname-specifiers">6.3.7 Pathname specifiers</a></li>
|
128 | 128 |
<li><a name="toc-Version-specifiers" href="#Version-specifiers">6.3.8 Version specifiers</a></li>
|
129 | 129 |
<li><a name="toc-Require" href="#Require">6.3.9 Require</a></li>
|
130 |
- <li><a name="toc-Using-logical-pathnames" href="#Using-logical-pathnames">6.3.10 Using logical pathnames</a></li>
|
|
131 |
- <li><a name="toc-Serial-dependencies" href="#Serial-dependencies">6.3.11 Serial dependencies</a></li>
|
|
132 |
- <li><a name="toc-Source-location-_0028_003apathname_0029" href="#Source-location-_0028_003apathname_0029">6.3.12 Source location (<code>:pathname</code>)</a></li>
|
|
133 |
- <li><a name="toc-if_002dfeature-option" href="#if_002dfeature-option">6.3.13 if-feature option</a></li>
|
|
134 |
- <li><a name="toc-if_002dcomponent_002ddep_002dfails-option" href="#if_002dcomponent_002ddep_002dfails-option">6.3.14 if-component-dep-fails option</a></li>
|
|
130 |
+ <li><a name="toc-Feature-dependencies" href="#Feature-dependencies">6.3.10 Feature dependencies</a></li>
|
|
131 |
+ <li><a name="toc-Using-logical-pathnames" href="#Using-logical-pathnames">6.3.11 Using logical pathnames</a></li>
|
|
132 |
+ <li><a name="toc-Serial-dependencies" href="#Serial-dependencies">6.3.12 Serial dependencies</a></li>
|
|
133 |
+ <li><a name="toc-Source-location-_0028_003apathname_0029" href="#Source-location-_0028_003apathname_0029">6.3.13 Source location (<code>:pathname</code>)</a></li>
|
|
134 |
+ <li><a name="toc-if_002dfeature-option" href="#if_002dfeature-option">6.3.14 if-feature option</a></li>
|
|
135 | 135 |
<li><a name="toc-feature-requirement" href="#feature-requirement">6.3.15 feature requirement</a></li>
|
136 | 136 |
</ul></li>
|
137 | 137 |
<li><a name="toc-Other-code-in-_002easd-files-1" href="#Other-code-in-_002easd-files">6.4 Other code in .asd files</a></li>
|
... | ... | @@ -255,6 +255,7 @@ ul.no-bullet {list-style: none} |
255 | 255 |
<li><a name="toc-How-should-my-library-make-a-readtable-available-to-other-systems_003f" href="#How-should-my-library-make-a-readtable-available-to-other-systems_003f">13.6.7.2 How should my library make a readtable available to other systems?</a></li>
|
256 | 256 |
</ul></li>
|
257 | 257 |
<li><a name="toc-How-can-I-capture-ASDF_0027s-output_003f-1" href="#How-can-I-capture-ASDF_0027s-output_003f">13.6.8 How can I capture ASDF’s output?</a></li>
|
258 |
+ <li><a name="toc-_002aLOAD_002dPATHNAME_002a-and-_002aLOAD_002dTRUENAME_002a-have-weird-values_002c-help_0021" href="#LOAD_002dPATHNAME-has-a-weird-value">13.6.9 *LOAD-PATHNAME* and *LOAD-TRUENAME* have weird values, help!</a></li>
|
|
258 | 259 |
</ul></li>
|
259 | 260 |
<li><a name="toc-ASDF-development-FAQs-1" href="#ASDF-development-FAQs">13.7 ASDF development FAQs</a>
|
260 | 261 |
<ul class="no-bullet">
|
... | ... | @@ -275,7 +276,7 @@ ul.no-bullet {list-style: none} |
275 | 276 |
<a name="Top"></a>
|
276 | 277 |
<a name="ASDF_003a-Another-System-Definition-Facility"></a>
|
277 | 278 |
<h1 class="top">ASDF: Another System Definition Facility</h1>
|
278 |
-<p>Manual for Version 3.1.6.14
|
|
279 |
+<p>Manual for Version 3.2.0
|
|
279 | 280 |
</p>
|
280 | 281 |
|
281 | 282 |
<p>This manual describes ASDF, a system definition facility
|
... | ... | @@ -284,11 +285,11 @@ for Common Lisp programs and libraries. |
284 | 285 |
<p>You can find the latest version of this manual at
|
285 | 286 |
<a href="https://common-lisp.net/project/asdf/asdf.html">https://common-lisp.net/project/asdf/asdf.html</a>.
|
286 | 287 |
</p>
|
287 |
-<p>ASDF Copyright © 2001-2015 Daniel Barlow and contributors.
|
|
288 |
+<p>ASDF Copyright © 2001-2016 Daniel Barlow and contributors.
|
|
288 | 289 |
</p>
|
289 |
-<p>This manual Copyright © 2001-2015 Daniel Barlow and contributors.
|
|
290 |
+<p>This manual Copyright © 2001-2016 Daniel Barlow and contributors.
|
|
290 | 291 |
</p>
|
291 |
-<p>This manual revised © 2009-2015 Robert P. Goldman and Francois-Rene Rideau.
|
|
292 |
+<p>This manual revised © 2009-2016 Robert P. Goldman and Francois-Rene Rideau.
|
|
292 | 293 |
</p>
|
293 | 294 |
<p>Permission is hereby granted, free of charge, to any person obtaining
|
294 | 295 |
a copy of this software and associated documentation files (the
|
... | ... | @@ -679,7 +680,8 @@ may already have configured system-managed libraries for you. |
679 | 680 |
|
680 | 681 |
|
681 | 682 |
|
682 |
- |
|
683 |
+<p>Novices may skip this section.
|
|
684 |
+</p>
|
|
683 | 685 |
<p>The old way to configure ASDF to find your systems is by
|
684 | 686 |
<code>push</code>ing directory pathnames onto the variable
|
685 | 687 |
<code>asdf:*central-registry*</code>.
|
... | ... | @@ -697,7 +699,7 @@ When used, it takes precedence over the above source-registry.<a name="DOCF5" hr |
697 | 699 |
</p>
|
698 | 700 |
<p>For example, let’s say you want ASDF to find the <samp>.asd</samp> file
|
699 | 701 |
<samp>/home/me/src/foo/foo.asd</samp>.
|
700 |
-In your lisp initialization file, you could have the following:
|
|
702 |
+In your Lisp initialization file, you could have the following:
|
|
701 | 703 |
</p>
|
702 | 704 |
<div class="lisp">
|
703 | 705 |
<pre class="lisp">(require "asdf")
|
... | ... | @@ -1291,6 +1293,7 @@ other-component-type := symbol-by-name |
1291 | 1293 |
# which is used in :in-order-to
|
1292 | 1294 |
dependency-def := simple-component-name
|
1293 | 1295 |
| ( :feature <var>feature-expression</var> dependency-def )
|
1296 |
+ # (see <a href="#The-defsystem-grammar">Feature dependencies</a>)
|
|
1294 | 1297 |
| ( :version simple-component-name version-specifier )
|
1295 | 1298 |
| ( :require module-name )
|
1296 | 1299 |
|
... | ... | @@ -1309,8 +1312,6 @@ pathname-specifier := pathname | string | symbol |
1309 | 1312 |
method-form := (operation-name qual lambda-list &rest body)
|
1310 | 1313 |
qual := method qualifier?
|
1311 | 1314 |
|
1312 |
-component-dep-fail-option := :fail | :try-next | :ignore
|
|
1313 |
- |
|
1314 | 1315 |
feature-expression := keyword
|
1315 | 1316 |
| (:and <var>feature-expression</var>*)
|
1316 | 1317 |
| (:or <var>feature-expression</var>*)
|
... | ... | @@ -1537,9 +1538,29 @@ rather than <code>#+<em>implementation-name</em></code> |
1537 | 1538 |
to only depend on the specified module on the specific implementation that provides it.
|
1538 | 1539 |
See <a href="#if_002dfeature_002doption">if-feature-option</a>.
|
1539 | 1540 |
</p>
|
1541 |
+<a name="Feature-dependencies"></a>
|
|
1542 |
+<h4 class="subsection">6.3.10 Feature dependencies</h4>
|
|
1543 |
+<a name="index-_003afeature-dependencies"></a>
|
|
1540 | 1544 |
|
1545 |
+<p>A feature dependency is of the form
|
|
1546 |
+<code>(:feature <var>feature-expression</var> <var>dependency</var>)</code>
|
|
1547 |
+If the <var>feature-expression</var> is satisfied by the running lisp at the
|
|
1548 |
+time the system definition is parsed, then the <var>dependency</var> will be
|
|
1549 |
+added to the system’s dependencies. If the <var>feature-expression</var> is
|
|
1550 |
+<em>not</em> satisfied, then the feature dependency form is ignored.
|
|
1551 |
+</p>
|
|
1552 |
+<p>Note that this means that <code>:feature</code> <strong>cannot</strong> be used to
|
|
1553 |
+enforce a feature dependency for the system in question. I.e., it
|
|
1554 |
+cannot be used to require that a feature hold in order for the system
|
|
1555 |
+definition to be loaded. E.g., one cannot use <code>(:feature :sbcl)</code>
|
|
1556 |
+to require that a system only be used on SBCL.
|
|
1557 |
+</p>
|
|
1558 |
+<p>Feature dependencies are not to be confused with the obsolete
|
|
1559 |
+feature requirement (see <a href="#The-defsystem-grammar">feature requirement</a>), or
|
|
1560 |
+with <code>if-feature</code>.
|
|
1561 |
+</p>
|
|
1541 | 1562 |
<a name="Using-logical-pathnames"></a>
|
1542 |
-<h4 class="subsection">6.3.10 Using logical pathnames</h4>
|
|
1563 |
+<h4 class="subsection">6.3.11 Using logical pathnames</h4>
|
|
1543 | 1564 |
<a name="index-logical-pathnames"></a>
|
1544 | 1565 |
|
1545 | 1566 |
<p>We do not generally recommend the use of logical pathnames,
|
... | ... | @@ -1595,7 +1616,7 @@ underscores, dots or CamelCase in pathnames. |
1595 | 1616 |
</p>
|
1596 | 1617 |
|
1597 | 1618 |
<a name="Serial-dependencies"></a>
|
1598 |
-<h4 class="subsection">6.3.11 Serial dependencies</h4>
|
|
1619 |
+<h4 class="subsection">6.3.12 Serial dependencies</h4>
|
|
1599 | 1620 |
<a name="index-serial-dependencies"></a>
|
1600 | 1621 |
|
1601 | 1622 |
<p>If the <code>:serial t</code> option is specified for a module,
|
... | ... | @@ -1618,7 +1639,7 @@ This is done as if by <code>:depends-on</code>. |
1618 | 1639 |
|
1619 | 1640 |
|
1620 | 1641 |
<a name="Source-location-_0028_003apathname_0029"></a>
|
1621 |
-<h4 class="subsection">6.3.12 Source location (<code>:pathname</code>)</h4>
|
|
1642 |
+<h4 class="subsection">6.3.13 Source location (<code>:pathname</code>)</h4>
|
|
1622 | 1643 |
|
1623 | 1644 |
<p>The <code>:pathname</code> option is optional in all cases for systems
|
1624 | 1645 |
defined via <code>defsystem</code>, and generally is unnecessary. In the
|
... | ... | @@ -1664,7 +1685,7 @@ from within an editor without clobbering its source location) |
1664 | 1685 |
</li></ul>
|
1665 | 1686 |
|
1666 | 1687 |
<a name="if_002dfeature-option"></a>
|
1667 |
-<h4 class="subsection">6.3.13 if-feature option</h4>
|
|
1688 |
+<h4 class="subsection">6.3.14 if-feature option</h4>
|
|
1668 | 1689 |
<a name="index-_003aif_002dfeature-component-option"></a>
|
1669 | 1690 |
<a name="if_002dfeature_002doption"></a>
|
1670 | 1691 |
<p>This option allows you to specify a feature expression to be evaluated
|
... | ... | @@ -1689,14 +1710,6 @@ been performed. |
1689 | 1710 |
<p>This option was added in ASDF 3. For more information,
|
1690 | 1711 |
See <a href="#required_002dfeatures">Required features</a>.
|
1691 | 1712 |
</p>
|
1692 |
-<a name="if_002dcomponent_002ddep_002dfails-option"></a>
|
|
1693 |
-<h4 class="subsection">6.3.14 if-component-dep-fails option</h4>
|
|
1694 |
-<a name="index-_003aif_002dcomponent_002ddep_002dfails-component-option"></a>
|
|
1695 |
-<p>This option was removed in ASDF 3.
|
|
1696 |
-Its semantics was limited in purpose and dubious to explain,
|
|
1697 |
-and its implementation was breaking a hole into the ASDF object model.
|
|
1698 |
-Please use the <code>if-feature</code> option instead.
|
|
1699 |
-</p>
|
|
1700 | 1713 |
<a name="feature-requirement"></a>
|
1701 | 1714 |
<h4 class="subsection">6.3.15 feature requirement</h4>
|
1702 | 1715 |
<p>This requirement was removed in ASDF 3.1. Please do not use it. In
|
... | ... | @@ -1854,7 +1867,7 @@ where the <samp>.asd</samp> file resides. |
1854 | 1867 |
|
1855 | 1868 |
<p>ASDF is designed in an object-oriented way from the ground up.
|
1856 | 1869 |
Both a system’s structure and the operations that can be performed on systems
|
1857 |
-follow a extensible protocol, allowing programmers to add new behaviours to ASDF.
|
|
1870 |
+follow an extensible protocol, allowing programmers to add new behaviours to ASDF.
|
|
1858 | 1871 |
For example, <code>cffi</code> adds support for special FFI description files
|
1859 | 1872 |
that interface with C libraries and for wrapper files that embed C code in Lisp.
|
1860 | 1873 |
<code>asdf-jar</code> supports creating Java JAR archives in ABCL.
|
... | ... | @@ -1926,20 +1939,21 @@ discuss these in turn below. |
1926 | 1939 |
<dd><p><code>operate</code> invokes <var>operation</var> on <var>system</var>.
|
1927 | 1940 |
<code>oos</code> is a synonym for <code>operate</code> (it stands for operate-on-system).
|
1928 | 1941 |
</p>
|
1929 |
-<p><var>operation</var> is a symbol that is passed,
|
|
1930 |
-along with the supplied <var>initargs</var>,
|
|
1931 |
-to <code>make-operation</code> (which will call <code>make-instance</code>)
|
|
1942 |
+<p><var>operation</var> is an operation designator:
|
|
1943 |
+it can be an operation object itself, or, typically,
|
|
1944 |
+a symbol that is passed to <code>make-operation</code> (which will call <code>make-instance</code>),
|
|
1932 | 1945 |
to create the operation object.
|
1933 |
-<var>component</var> is a component designator,
|
|
1934 |
-usually a string or symbol that designates a system,
|
|
1935 |
-sometimes a list of strings or symbols that designate a subcomponent of a system.
|
|
1946 |
+<var>component</var> is a component designator:
|
|
1947 |
+it can be a component object itself, or, typically,
|
|
1948 |
+a string or symbol (to be <code>string-downcase</code>d) that names a system,
|
|
1949 |
+more rarely a list of strings or symbols that designate a subcomponent of a system.
|
|
1936 | 1950 |
</p>
|
1937 |
-<p>The <var>initargs</var> are passed to the <code>make-instance</code> call
|
|
1938 |
-when creating the operation object.
|
|
1951 |
+<p>The ability to pass <var>initargs</var> to <code>make-operation</code> is now deprecated, and will be removed.
|
|
1952 |
+For more details, see <a href="#make_002doperation">make-operation</a>.
|
|
1939 | 1953 |
Note that dependencies may cause the operation
|
1940 | 1954 |
to invoke other operations on the system or its components:
|
1941 |
-the new operations will be created
|
|
1942 |
-with the same <var>initargs</var> as the original one.
|
|
1955 |
+the new operations may or may not be created
|
|
1956 |
+with the same <var>initargs</var> as the original one (for the moment).
|
|
1943 | 1957 |
</p>
|
1944 | 1958 |
<p>If <var>force</var> is <code>:all</code>, then all systems
|
1945 | 1959 |
are forced to be recompiled even if not modified since last compilation.
|
... | ... | @@ -1973,6 +1987,20 @@ See <a href="#Miscellaneous-Functions">Miscellaneous Functions</a>. |
1973 | 1987 |
|
1974 | 1988 |
</dd></dl>
|
1975 | 1989 |
|
1990 |
+<dl>
|
|
1991 |
+<dt><a name="index-make_002doperation"></a>Function: <strong><code>make-operation</code></strong> <em><var>operation-class</var> &rest <var>initargs</var></em></dt>
|
|
1992 |
+<dd><a name="make_002doperation"></a>
|
|
1993 |
+<p>The <var>initargs</var> are passed to <code>make-instance</code> call
|
|
1994 |
+when creating the operation object.
|
|
1995 |
+</p>
|
|
1996 |
+<p><strong>Note:</strong><var>initargs</var> for <code>operation</code>s are now deprecated,
|
|
1997 |
+and will be removed from ASDF in the near future.
|
|
1998 |
+</p>
|
|
1999 |
+<p><strong>Note:</strong> <code>operation</code> instances must <strong>never</strong> be created
|
|
2000 |
+using <code>make-instance</code> directly: only through
|
|
2001 |
+<code>make-operation</code>. Attempts to directly make <code>operation</code>
|
|
2002 |
+instances will cause a run-time error.
|
|
2003 |
+</p></dd></dl>
|
|
1976 | 2004 |
|
1977 | 2005 |
|
1978 | 2006 |
<hr>
|
... | ... | @@ -2490,8 +2518,8 @@ time when the <var>previous</var> system definition was loaded. |
2490 | 2518 |
but system <code>foo</code> was previously loaded from <samp>/previous/path/to/foo.asd</samp>
|
2491 | 2519 |
then <var>locate-system</var> will return the following values:
|
2492 | 2520 |
</p><ol>
|
2493 |
-<li> <var>foundp</var> will be <code>T</code>,
|
|
2494 |
-</li><li> <var>found-system</var> will be <code>NIL</code>,
|
|
2521 |
+<li> <var>foundp</var> will be <code>t</code>,
|
|
2522 |
+</li><li> <var>found-system</var> will be <code>nil</code>,
|
|
2495 | 2523 |
</li><li> <var>pathname</var> will be <code>#p"/current/path/to/foo.asd"</code>,
|
2496 | 2524 |
</li><li> <var>previous</var> will be an object of type <code>SYSTEM</code> with
|
2497 | 2525 |
<code>system-source-file</code> slot value of
|
... | ... | @@ -3972,28 +4000,37 @@ or namestring in an <code>:include</code> directive, e.g.: |
3972 | 4000 |
<a name="Shell_002dfriendly-syntax-for-configuration-2"></a>
|
3973 | 4001 |
<h3 class="section">9.5 Shell-friendly syntax for configuration</h3>
|
3974 | 4002 |
|
3975 |
-<p>When considering environment variable <code>ASDF_OUTPUT_TRANSLATIONS</code>
|
|
3976 |
-ASDF will skip to the next configuration if it’s an empty string.
|
|
3977 |
-It will <code>READ</code> the string as an SEXP in the DSL
|
|
3978 |
-if it begins with a paren <code>(</code>
|
|
3979 |
-and it will be interpreted as a list of directories.
|
|
3980 |
-Directories should come by pairs, indicating a mapping directive.
|
|
4003 |
+<p>When processing the environment variable
|
|
4004 |
+<code>ASDF_OUTPUT_TRANSLATIONS</code>:
|
|
4005 |
+</p><ul>
|
|
4006 |
+<li> ASDF will skip to the next configuration if it’s an empty string.
|
|
4007 |
+</li><li> ASDF will <code>READ</code> the string as an SEXP in the DSL, if it
|
|
4008 |
+begins with a parenthesis <code>(</code>.
|
|
4009 |
+</li><li> Otherwise ASDF will interpret the value as a list of directories
|
|
4010 |
+(see below).
|
|
4011 |
+</li></ul>
|
|
4012 |
+ |
|
4013 |
+<p>In the directory list format,
|
|
4014 |
+directories should come in pairs, each pair indicating a mapping directive.
|
|
3981 | 4015 |
Entries are separated
|
3982 |
-by a <code>:</code> (colon) on Unix platforms (including cygwin),
|
|
4016 |
+by a <code>:</code> (colon) on Unix platforms (including Mac and cygwin), and
|
|
3983 | 4017 |
by a <code>;</code> (semicolon) on other platforms (mainly, Windows).
|
3984 | 4018 |
</p>
|
3985 | 4019 |
<p>The magic empty entry,
|
3986 | 4020 |
if it comes in what would otherwise be the first entry in a pair,
|
3987 |
-indicates the splicing of inherited configuration.
|
|
3988 |
-If it comes as the second entry in a pair,
|
|
3989 |
-it indicates that the directory specified first is to be left untranslated
|
|
4021 |
+indicates the splicing of inherited configuration;
|
|
4022 |
+the next entry (if any) then starts a new pair.
|
|
4023 |
+If the second entry in a pair is empty,
|
|
4024 |
+it indicates that the directory in the first entry is to be left untranslated
|
|
3990 | 4025 |
(which has the same effect as if the directory had been repeated).
|
3991 |
-Thus <code>"/foo:/bar::/baz:"</code> means that
|
|
3992 |
-things under directory <samp>/foo/</samp>
|
|
3993 |
-are translated to be under <samp>/bar/</samp>,
|
|
3994 |
-then include the inherited configuration,
|
|
3995 |
-then specify that things under directory <samp>/baz/</samp> are not translated.
|
|
3996 | 4026 |
</p>
|
4027 |
+<p>For example, <code>"/foo:/bar::/baz:"</code> means:
|
|
4028 |
+specify that outputs for things under directory <samp>/foo/</samp>
|
|
4029 |
+are translated to be under <samp>/bar/</samp>;
|
|
4030 |
+then include the inherited configuration;
|
|
4031 |
+then specify that outputs for things under directory <samp>/baz/</samp> are not translated.
|
|
4032 |
+</p>
|
|
4033 |
+ |
|
3997 | 4034 |
<hr>
|
3998 | 4035 |
<a name="Semantics-of-Output-Translations"></a>
|
3999 | 4036 |
<a name="Semantics-of-Output-Translations-1"></a>
|
... | ... | @@ -4292,7 +4329,7 @@ to protect any <code>:encoding <em>encoding</em></code> statement, as in |
4292 | 4329 |
<code>#+asdf-unicode :encoding #+asdf-unicode :utf-8</code>.
|
4293 | 4330 |
We recommend that you avoid using unprotected <code>:encoding</code> specifications
|
4294 | 4331 |
until after ASDF 2.21 or later becomes widespread.
|
4295 |
-As of May 2015, all maintained implementations provide ASDF 3,
|
|
4332 |
+As of May 2016, all maintained implementations provide ASDF 3.1,
|
|
4296 | 4333 |
so you may prudently start using this and other features without such protection.
|
4297 | 4334 |
</p>
|
4298 | 4335 |
<p>While it offers plenty of hooks for extension,
|
... | ... | @@ -4442,12 +4479,16 @@ from what it does in <samp>header.lisp</samp> and <samp>upgrade.lisp</samp>. |
4442 | 4479 |
</p></dd></dl>
|
4443 | 4480 |
|
4444 | 4481 |
<dl>
|
4445 |
-<dt><a name="index-register_002dpreloaded_002dsystem"></a>Function: <strong>register-preloaded-system</strong> <em>name &rest keys</em></dt>
|
|
4482 |
+<dt><a name="index-register_002dpreloaded_002dsystem"></a>Function: <strong>register-preloaded-system</strong> <em>name &rest keys &key version &allow-other-keys</em></dt>
|
|
4446 | 4483 |
<dd><p>A system with name <var>name</var>,
|
4447 | 4484 |
created by <code>make-instance</code> with extra keys <var>keys</var>
|
4448 | 4485 |
(e.g. <code>:version</code>),
|
4449 | 4486 |
is registered as <em>preloaded</em>.
|
4450 |
-That is, its code has already been loaded into the current image,
|
|
4487 |
+If <var>version</var> is <code>t</code> (default), then the version is copied from the defined system
|
|
4488 |
+of the same name (if registered) or else is <code>nil</code>
|
|
4489 |
+(this automatic copy of version is only available starting since ASDF 3.1.8).
|
|
4490 |
+</p>
|
|
4491 |
+<p>A preloaded system is considered as having already been loaded into the current image,
|
|
4451 | 4492 |
and if at some point some other system <code>:depends-on</code> it yet no source code is found,
|
4452 | 4493 |
it is considered as already provided,
|
4453 | 4494 |
and ASDF will not raise a <code>missing-component</code> error.
|
... | ... | @@ -4456,25 +4497,35 @@ and ASDF will not raise a <code>missing-component</code> error. |
4456 | 4497 |
as fasls with either <code>compile-bundle-op</code> or <code>monolithic-compile-bundle-op</code>,
|
4457 | 4498 |
and want to register systems so that dependencies will work uniformly
|
4458 | 4499 |
whether you’re using your software from source or from fasl.
|
4500 |
+</p>
|
|
4501 |
+<p>Note that if the system was already defined or loaded from source code,
|
|
4502 |
+its build information will remain active until you call <code>clear-system</code> on it,
|
|
4503 |
+at which point a system without build information will be registered in its place.
|
|
4459 | 4504 |
</p></dd></dl>
|
4460 | 4505 |
|
4461 | 4506 |
<dl>
|
4462 | 4507 |
<dt><a name="index-register_002dimmutable_002dsystem-1"></a>Function: <strong>register-immutable-system</strong> <em>name &rest keys</em></dt>
|
4463 |
-<dd><p>A system with name <var>name</var>,
|
|
4464 |
-created by <code>make-instance</code> with extra keys <var>keys</var>
|
|
4465 |
-(e.g. <code>:version</code>),
|
|
4466 |
-is registered as <em>immutable</em>.
|
|
4467 |
-That is, its code has already been loaded into the current image,
|
|
4468 |
-and if at some point some other system <code>:depends-on</code> it,
|
|
4469 |
-it is considered as already provided, and
|
|
4470 |
-no attempt will be made to search for an updated version from the source-registry
|
|
4471 |
-or any other method.
|
|
4472 |
-There will be no search for an <samp>.asd</samp> file, and no <code>missing-component</code> error.
|
|
4473 |
-</p>
|
|
4474 |
-<p>This function (available since ASDF 3.1.5) is particularly useful if
|
|
4475 |
-you distribute a large body of code as a precompiled image,
|
|
4508 |
+<dd><p>A system with name <var>name</var> is registered as preloaded,
|
|
4509 |
+and additionally is marked as <em>immutable</em>:
|
|
4510 |
+that is, attempts to compile or load it will be succeed
|
|
4511 |
+without actually reading, creating or loading any file,
|
|
4512 |
+as if the system was passed as a <code>force-not</code> argument
|
|
4513 |
+to all calls to <code>plan</code> or <code>operate</code>.
|
|
4514 |
+There will be no search for an updated <samp>.asd</samp> file
|
|
4515 |
+to override the loaded version,
|
|
4516 |
+whether from the source-register or any other method.
|
|
4517 |
+</p>
|
|
4518 |
+<p>If a <var>version</var> keyword argument is specified as <code>t</code> or left unspecified,
|
|
4519 |
+then the version is copied from the defined system
|
|
4520 |
+of the same name (if registered) or else is <code>nil</code>.
|
|
4521 |
+This automatic copy of version is available starting
|
|
4522 |
+since immutable systems have been available in ASDF 3.1.5.
|
|
4523 |
+</p>
|
|
4524 |
+<p>This function, available since ASDF 3.1.5, is particularly useful
|
|
4525 |
+if you distribute a large body of code as a precompiled image,
|
|
4476 | 4526 |
and want to allow users to extend the image with further extension systems,
|
4477 |
-but without making thousands of filesystem requests looking for inexistent (or worse, out of date) source code
|
|
4527 |
+but without making thousands of filesystem requests looking for inexistent
|
|
4528 |
+(or worse, out of date) source code
|
|
4478 | 4529 |
for all the systems that came bundled with the image but aren’t
|
4479 | 4530 |
distributed as source code to regular users.
|
4480 | 4531 |
<a name="index-immutable-systems-1"></a>
|
... | ... | @@ -4508,15 +4559,15 @@ while others (like SBCL) will make an attempt at invoking a POSIX shell |
4508 | 4559 |
<h3 class="section">11.4 Some Utility Functions</h3>
|
4509 | 4560 |
|
4510 | 4561 |
<p>The below functions are not exported by ASDF itself, but by UIOP, available since ASDF 3.
|
4511 |
-Some of them have precursors in ASDF 2, but we recommend
|
|
4512 |
-you rely on ASDF 3 for active developments.
|
|
4562 |
+Some of them have precursors in ASDF 2, but we recommend that for active developments,
|
|
4563 |
+you should rely on the package UIOP as included in ASDF 3.
|
|
4513 | 4564 |
UIOP provides many, many more utility functions, and we recommend
|
4514 |
-you read its README and sources for more information.
|
|
4565 |
+you read its <samp>README.md</samp> and sources for more information.
|
|
4515 | 4566 |
</p>
|
4516 | 4567 |
|
4517 | 4568 |
<dl>
|
4518 | 4569 |
<dt><a name="index-parse_002dunix_002dnamestring"></a>Function: <strong>parse-unix-namestring</strong> <em>name &key type defaults dot-dot ensure-directory &allow-other-keys</em></dt>
|
4519 |
-<dd><p>Coerce NAME into a PATHNAME using standard Unix syntax.
|
|
4570 |
+<dd><p>Coerce <var>name</var> into a <var>pathname</var> using standard Unix syntax.
|
|
4520 | 4571 |
</p>
|
4521 | 4572 |
<p>Unix syntax is used whether or not the underlying system is Unix;
|
4522 | 4573 |
on non-Unix systems it is only usable for relative pathnames.
|
... | ... | @@ -4707,7 +4758,7 @@ which defaults to <code>0</code>, extracting the first line. |
4707 | 4758 |
A number will extract the corresponding line.
|
4708 | 4759 |
See the documentation for <code>uiop:access-at</code>.
|
4709 | 4760 |
|
4710 |
-</li><li> If the object is <code>:forms</code>, the content is captured as a list of S-expressions,
|
|
4761 |
+</li><li> If the object is <code>:forms</code>, the content is captured as a list of s-expressions,
|
|
4711 | 4762 |
as read by the Lisp reader.
|
4712 | 4763 |
If the <var>count</var> argument is provided,
|
4713 | 4764 |
it is a maximum count of lines to be read.
|
... | ... | @@ -5256,7 +5307,7 @@ should load, configure and upgrade ASDF among the very first things they do, |
5256 | 5307 |
and ensure that ASDF 3 or later is present indeed,
|
5257 | 5308 |
before they start using ASDF to load anything else.
|
5258 | 5309 |
|
5259 |
-</li><li> Now that all implementations provide ASDF 3 or later (since May 2015),
|
|
5310 |
+</li><li> Now that all implementations provide ASDF 3.1 or later (since May 2016),
|
|
5260 | 5311 |
the simple solution is just to use code as below in your setup,
|
5261 | 5312 |
and when it fails, upgrade your implementation or replace its ASDF.
|
5262 | 5313 |
(see <a href="#Replacing-your-implementation_0027s-ASDF">Replacing your implementation's ASDF</a>):
|
... | ... | @@ -5309,14 +5360,14 @@ and lose configuration as they do. |
5309 | 5360 |
<p><code>asdf-ecl</code> and its short-lived successor <code>asdf-bundle</code> are no more,
|
5310 | 5361 |
having been replaced by code now built into ASDF 3.
|
5311 | 5362 |
Moreover, the name of the bundle operations has changed since ASDF 3.1.3.
|
5363 |
+Starting with ASDF 3.2.0, <code>load-system</code>
|
|
5364 |
+will once again use <code>load-bundle-op</code> instead of <code>load-op</code> on ECL,
|
|
5365 |
+as originally intended by <code>asdf-ecl</code> authors, but disabled for a long time
|
|
5366 |
+due to bugs in both ECL and ASDF.
|
|
5312 | 5367 |
</p>
|
5313 |
-<p>And yet, the feature is not enabled to be used by <code>load-system</code> by default on ECL as originally intended,
|
|
5314 |
-because of a bug in ECL itself found during testing.
|
|
5315 |
-</p>
|
|
5316 |
- |
|
5317 |
-<p>Some of the bundle operations were renamed after ASDF 3.1.3, and the old
|
|
5318 |
-names have been removed. Old bundle operations, and their modern
|
|
5319 |
-equivalents are:
|
|
5368 |
+<p>Note that some of the bundle operations were renamed after ASDF 3.1.3,
|
|
5369 |
+and the old names have been removed.
|
|
5370 |
+Old bundle operations, and their modern equivalents are:
|
|
5320 | 5371 |
</p>
|
5321 | 5372 |
<ul>
|
5322 | 5373 |
<li> <code>fasl-op</code> is now <code>compile-bundle-op</code>
|
... | ... | @@ -5769,7 +5820,36 @@ to eschew using such an important library anymore. |
5769 | 5820 |
<code>*standard-output*</code>, so rebinding that stream around calls to
|
5770 | 5821 |
<code>asdf:operate</code> should redirect all output from ASDF operations.
|
5771 | 5822 |
</p>
|
5823 |
+<hr>
|
|
5824 |
+<a name="LOAD_002dPATHNAME-has-a-weird-value"></a>
|
|
5825 |
+<a name="g_t_002aLOAD_002dPATHNAME_002a-and-_002aLOAD_002dTRUENAME_002a-have-weird-values_002c-help_0021"></a>
|
|
5826 |
+<h4 class="subsection">13.6.9 *LOAD-PATHNAME* and *LOAD-TRUENAME* have weird values, help!</h4>
|
|
5827 |
+<a name="index-_002aLOAD_002dPATHNAME_002a"></a>
|
|
5828 |
+<a name="index-_002aLOAD_002dTRUENAME_002a"></a>
|
|
5829 |
+ |
|
5830 |
+<p>Conventional Common Lisp code may use <code>*LOAD-TRUENAME*</code> or <code>*LOAD-PATHNAME*</code> to find
|
|
5831 |
+files adjacent to source files. This will generally <em>not</em> work in
|
|
5832 |
+ASDF-loaded systems. Recall that ASDF relocates the FASL files it
|
|
5833 |
+builds, typically to a special cache directory. Thus the value of
|
|
5834 |
+<code>*LOAD-PATHNAME*</code> and <code>*LOAD-TRUENAME*</code> at load time, when ASDF is loading your system,
|
|
5835 |
+will typically be a pathname in that cache directory, and useless to you
|
|
5836 |
+for finding other system components.
|
|
5837 |
+</p>
|
|
5838 |
+<p>There are two ways to work around this problem:
|
|
5839 |
+</p><ol>
|
|
5840 |
+<li> <a name="index-system_002drelative_002dpathname-1"></a>
|
|
5841 |
+Use the <code>system-relative-pathname</code> function. This can readily be
|
|
5842 |
+used from outside the system, but it is probably not good software
|
|
5843 |
+engineering to require a source file <em>of</em> a system to know what
|
|
5844 |
+system it is going to be part of. Contained objects should not have to
|
|
5845 |
+know their containers.
|
|
5846 |
+</li><li> Store the pathname at compile time, so that you get the pathname of the
|
|
5847 |
+source file, which is presumably what you want. To do this, you can
|
|
5848 |
+capture the value of <code>(or *compile-file-pathname* *load-truename*)</code>
|
|
5849 |
+(or <code>*LOAD-PATHNAME*</code>, if you prefer)
|
|
5850 |
+in a macro expansion or other compile-time evaluated context.
|
|
5772 | 5851 |
|
5852 |
+</li></ol>
|
|
5773 | 5853 |
|
5774 | 5854 |
<hr>
|
5775 | 5855 |
<a name="ASDF-development-FAQs"></a>
|
... | ... | @@ -5857,7 +5937,8 @@ see the <samp>TODO</samp> file in the source repository. |
5857 | 5937 |
<a href="http://xach.livejournal.com/">http://xach.livejournal.com/</a>
|
5858 | 5938 |
</li><li> Francois-Rene Rideau and Robert Goldman:
|
5859 | 5939 |
“Evolving ASDF: More Cooperation, Less Coordination”, 2010.
|
5860 |
- This article describes the main issues solved by ASDF 2.
|
|
5940 |
+ This article describes the main issues solved by ASDF 2,
|
|
5941 |
+ and exposes its design principles.
|
|
5861 | 5942 |
<a href="https://common-lisp.net/project/asdf/doc/ilc2010draft.pdf">https://common-lisp.net/project/asdf/doc/ilc2010draft.pdf</a>
|
5862 | 5943 |
<a href="https://gitlab.common-lisp.org/asdf/ilc2010">https://gitlab.common-lisp.org/asdf/ilc2010</a>
|
5863 | 5944 |
</li><li> Francois-Rene Rideau and Spencer Brody:
|
... | ... | @@ -5957,7 +6038,7 @@ see the <samp>TODO</samp> file in the source repository. |
5957 | 6038 |
<tr><td></td><td valign="top"><a href="#index-_003adefsystem_002ddepends_002don">:defsystem-depends-on</a>:</td><td> </td><td valign="top"><a href="#The-defsystem-grammar">The defsystem grammar</a></td></tr>
|
5958 | 6039 |
<tr><td></td><td valign="top"><a href="#index-_003adirectory-source-config-directive">:directory source config directive</a>:</td><td> </td><td valign="top"><a href="#Configuration-DSL">Configuration DSL</a></td></tr>
|
5959 | 6040 |
<tr><td></td><td valign="top"><a href="#index-_003aexclude-source-config-directive">:exclude source config directive</a>:</td><td> </td><td valign="top"><a href="#Configuration-DSL">Configuration DSL</a></td></tr>
|
5960 |
-<tr><td></td><td valign="top"><a href="#index-_003aif_002dcomponent_002ddep_002dfails-component-option">:if-component-dep-fails component option</a>:</td><td> </td><td valign="top"><a href="#The-defsystem-grammar">The defsystem grammar</a></td></tr>
|
|
6041 |
+<tr><td></td><td valign="top"><a href="#index-_003afeature-dependencies">:feature dependencies</a>:</td><td> </td><td valign="top"><a href="#The-defsystem-grammar">The defsystem grammar</a></td></tr>
|
|
5961 | 6042 |
<tr><td></td><td valign="top"><a href="#index-_003aif_002dfeature-component-option">:if-feature component option</a>:</td><td> </td><td valign="top"><a href="#The-defsystem-grammar">The defsystem grammar</a></td></tr>
|
5962 | 6043 |
<tr><td></td><td valign="top"><a href="#index-_003aignore_002dinvalid_002dentries-source-config-directive">:ignore-invalid-entries source config directive</a>:</td><td> </td><td valign="top"><a href="#Configuration-DSL">Configuration DSL</a></td></tr>
|
5963 | 6044 |
<tr><td></td><td valign="top"><a href="#index-_003ainclude-source-config-directive">:include source config directive</a>:</td><td> </td><td valign="top"><a href="#Configuration-DSL">Configuration DSL</a></td></tr>
|
... | ... | @@ -6173,6 +6254,7 @@ see the <samp>TODO</samp> file in the source repository. |
6173 | 6254 |
<tr><td colspan="4"> <hr></td></tr>
|
6174 | 6255 |
<tr><th><a name="Function-and-Class-Index_fn_letter-M">M</a></th><td></td><td></td></tr>
|
6175 | 6256 |
<tr><td></td><td valign="top"><a href="#index-make"><code>make</code></a>:</td><td> </td><td valign="top"><a href="#Convenience-Functions">Convenience Functions</a></td></tr>
|
6257 |
+<tr><td></td><td valign="top"><a href="#index-make_002doperation"><code><code>make-operation</code></code></a>:</td><td> </td><td valign="top"><a href="#Operations">Operations</a></td></tr>
|
|
6176 | 6258 |
<tr><td></td><td valign="top"><a href="#index-merge_002dpathnames_002a"><code>merge-pathnames*</code></a>:</td><td> </td><td valign="top"><a href="#Some-Utility-Functions">Some Utility Functions</a></td></tr>
|
6177 | 6259 |
<tr><td></td><td valign="top"><a href="#index-module"><code>module</code></a>:</td><td> </td><td valign="top"><a href="#Pre_002ddefined-subclasses-of-component">Pre-defined subclasses of component</a></td></tr>
|
6178 | 6260 |
<tr><td></td><td valign="top"><a href="#index-monolithic_002dbinary_002dop-_0028obsolete_0029"><code>monolithic-binary-op (obsolete)</code></a>:</td><td> </td><td valign="top"><a href="#What-happened-to-the-bundle-operations">What happened to the bundle operations</a></td></tr>
|
... | ... | @@ -6218,6 +6300,7 @@ see the <samp>TODO</samp> file in the source repository. |
6218 | 6300 |
<tr><td></td><td valign="top"><a href="#index-system_002ddefsystem_002ddepends_002don"><code>system-defsystem-depends-on</code></a>:</td><td> </td><td valign="top"><a href="#Information-about-system-dependencies">Information about system dependencies</a></td></tr>
|
6219 | 6301 |
<tr><td></td><td valign="top"><a href="#index-system_002ddepends_002don"><code>system-depends-on</code></a>:</td><td> </td><td valign="top"><a href="#Information-about-system-dependencies">Information about system dependencies</a></td></tr>
|
6220 | 6302 |
<tr><td></td><td valign="top"><a href="#index-system_002drelative_002dpathname"><code>system-relative-pathname</code></a>:</td><td> </td><td valign="top"><a href="#Miscellaneous-Functions">Miscellaneous Functions</a></td></tr>
|
6303 |
+<tr><td></td><td valign="top"><a href="#index-system_002drelative_002dpathname-1"><code>system-relative-pathname</code></a>:</td><td> </td><td valign="top"><a href="#LOAD_002dPATHNAME-has-a-weird-value">LOAD-PATHNAME has a weird value</a></td></tr>
|
|
6221 | 6304 |
<tr><td></td><td valign="top"><a href="#index-system_002dsource_002ddirectory"><code>system-source-directory</code></a>:</td><td> </td><td valign="top"><a href="#Miscellaneous-Functions">Miscellaneous Functions</a></td></tr>
|
6222 | 6305 |
<tr><td></td><td valign="top"><a href="#index-system_002dweakly_002ddepends_002don"><code>system-weakly-depends-on</code></a>:</td><td> </td><td valign="top"><a href="#Information-about-system-dependencies">Information about system dependencies</a></td></tr>
|
6223 | 6306 |
<tr><td colspan="4"> <hr></td></tr>
|
... | ... | @@ -6283,7 +6366,9 @@ see the <samp>TODO</samp> file in the source repository. |
6283 | 6366 |
<tr><td></td><td valign="top"><a href="#index-_002adefault_002dsource_002dregistry_002dexclusions_002a"><code>*default-source-registry-exclusions*</code></a>:</td><td> </td><td valign="top"><a href="#Search-Algorithm">Search Algorithm</a></td></tr>
|
6284 | 6367 |
<tr><td></td><td valign="top"><a href="#index-_002afeatures_002a-1"><code>*features*</code></a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr>
|
6285 | 6368 |
<tr><td></td><td valign="top"><a href="#index-_002aimage_002ddump_002dhook_002a"><code>*image-dump-hook*</code></a>:</td><td> </td><td valign="top"><a href="#Resetting-the-ASDF-configuration">Resetting the ASDF configuration</a></td></tr>
|
6369 |
+<tr><td></td><td valign="top"><a href="#index-_002aLOAD_002dPATHNAME_002a"><code>*LOAD-PATHNAME*</code></a>:</td><td> </td><td valign="top"><a href="#LOAD_002dPATHNAME-has-a-weird-value">LOAD-PATHNAME has a weird value</a></td></tr>
|
|
6286 | 6370 |
<tr><td></td><td valign="top"><a href="#index-_002aload_002dsystem_002doperation_002a"><code>*load-system-operation*</code></a>:</td><td> </td><td valign="top"><a href="#Convenience-Functions">Convenience Functions</a></td></tr>
|
6371 |
+<tr><td></td><td valign="top"><a href="#index-_002aLOAD_002dTRUENAME_002a"><code>*LOAD-TRUENAME*</code></a>:</td><td> </td><td valign="top"><a href="#LOAD_002dPATHNAME-has-a-weird-value">LOAD-PATHNAME has a weird value</a></td></tr>
|
|
6287 | 6372 |
<tr><td></td><td valign="top"><a href="#index-_002anil_002dpathname_002a"><code>*nil-pathname*</code></a>:</td><td> </td><td valign="top"><a href="#Some-Utility-Functions">Some Utility Functions</a></td></tr>
|
6288 | 6373 |
<tr><td></td><td valign="top"><a href="#index-_002aoldest_002dforward_002dcompatible_002dasdf_002dversion_002a"><code>*oldest-forward-compatible-asdf-version*</code></a>:</td><td> </td><td valign="top"><a href="#Pitfalls-of-the-upgrade-to-ASDF-3">Pitfalls of the upgrade to ASDF 3</a></td></tr>
|
6289 | 6374 |
<tr><td></td><td valign="top"><a href="#index-_002asource_002dregistry_002dparameter_002a"><code>*source-registry-parameter*</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002asource_002dregistry_002dparameter_002a-variable">*source-registry-parameter* variable</a></td></tr>
|
... | ... | @@ -6361,7 +6446,7 @@ on the value of shell variables or the identity of the user. |
6361 | 6446 |
“system directory designators”.
|
6362 | 6447 |
A <em>system directory designator</em> is a form
|
6363 | 6448 |
which will be evaluated whenever a system is to be found,
|
6364 |
-and must evaluate to a directory to look in (or <code>NIL</code>).
|
|
6449 |
+and must evaluate to a directory to look in (or <code>nil</code>).
|
|
6365 | 6450 |
By “directory”, we mean
|
6366 | 6451 |
“designator for a pathname with a non-empty DIRECTORY component”.
|
6367 | 6452 |
</p>
|
... | ... | @@ -6,11 +6,11 @@ programs and libraries. |
6 | 6 |
You can find the latest version of this manual at
|
7 | 7 |
<https://common-lisp.net/project/asdf/asdf.html>.
|
8 | 8 |
|
9 |
- ASDF Copyright (C) 2001-2015 Daniel Barlow and contributors.
|
|
9 |
+ ASDF Copyright (C) 2001-2016 Daniel Barlow and contributors.
|
|
10 | 10 |
|
11 |
- This manual Copyright (C) 2001-2015 Daniel Barlow and contributors.
|
|
11 |
+ This manual Copyright (C) 2001-2016 Daniel Barlow and contributors.
|
|
12 | 12 |
|
13 |
- This manual revised (C) 2009-2015 Robert P. Goldman and Francois-Rene
|
|
13 |
+ This manual revised (C) 2009-2016 Robert P. Goldman and Francois-Rene
|
|
14 | 14 |
Rideau.
|
15 | 15 |
|
16 | 16 |
Permission is hereby granted, free of charge, to any person obtaining
|
... | ... | @@ -43,7 +43,7 @@ File: asdf.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) |
43 | 43 |
ASDF: Another System Definition Facility
|
44 | 44 |
****************************************
|
45 | 45 |
|
46 |
-Manual for Version 3.1.6.14
|
|
46 |
+Manual for Version 3.2.0
|
|
47 | 47 |
|
48 | 48 |
This manual describes ASDF, a system definition facility for Common
|
49 | 49 |
Lisp programs and libraries.
|
... | ... | @@ -51,11 +51,11 @@ Lisp programs and libraries. |
51 | 51 |
You can find the latest version of this manual at
|
52 | 52 |
<https://common-lisp.net/project/asdf/asdf.html>.
|
53 | 53 |
|
54 |
- ASDF Copyright (C) 2001-2015 Daniel Barlow and contributors.
|
|
54 |
+ ASDF Copyright (C) 2001-2016 Daniel Barlow and contributors.
|
|
55 | 55 |
|
56 |
- This manual Copyright (C) 2001-2015 Daniel Barlow and contributors.
|
|
56 |
+ This manual Copyright (C) 2001-2016 Daniel Barlow and contributors.
|
|
57 | 57 |
|
58 |
- This manual revised (C) 2009-2015 Robert P. Goldman and Francois-Rene
|
|
58 |
+ This manual revised (C) 2009-2016 Robert P. Goldman and Francois-Rene
|
|
59 | 59 |
Rideau.
|
60 | 60 |
|
61 | 61 |
Permission is hereby granted, free of charge, to any person obtaining
|
... | ... | @@ -244,6 +244,7 @@ Issues with using and extending ASDF to define systems |
244 | 244 |
* How do I mark a source file to be loaded only and not compiled?::
|
245 | 245 |
* How do I work with readtables?::
|
246 | 246 |
* How can I capture ASDF's output?::
|
247 |
+* LOAD-PATHNAME has a weird value::
|
|
247 | 248 |
|
248 | 249 |
ASDF development FAQs
|
249 | 250 |
|
... | ... | @@ -611,7 +612,9 @@ File: asdf.info, Node: Configuring ASDF to find your systems --- old style, Ne |
611 | 612 |
4.2 Configuring ASDF to find your systems -- old style
|
612 | 613 |
======================================================
|
613 | 614 |
|
614 |
-The old way to configure ASDF to find your systems is by 'push'ing
|
|
615 |
+Novices may skip this section.
|
|
616 |
+ |
|
617 |
+ The old way to configure ASDF to find your systems is by 'push'ing
|
|
615 | 618 |
directory pathnames onto the variable 'asdf:*central-registry*'.
|
616 | 619 |
|
617 | 620 |
You must configure this variable between the time you load ASDF and
|
... | ... | @@ -625,7 +628,7 @@ used to put it in their '~/.sbclrc'.) |
625 | 628 |
takes precedence over the above source-registry.(1)
|
626 | 629 |
|
627 | 630 |
For example, let's say you want ASDF to find the '.asd' file
|
628 |
-'/home/me/src/foo/foo.asd'. In your lisp initialization file, you could
|
|
631 |
+'/home/me/src/foo/foo.asd'. In your Lisp initialization file, you could
|
|
629 | 632 |
have the following:
|
630 | 633 |
|
631 | 634 |
(require "asdf")
|
... | ... | @@ -678,7 +681,7 @@ shell variables or the identity of the user. |
678 | 681 |
The variable 'asdf:*central-registry*' is thus a list of "system
|
679 | 682 |
directory designators". A "system directory designator" is a form which
|
680 | 683 |
will be evaluated whenever a system is to be found, and must evaluate to
|
681 |
-a directory to look in (or 'NIL'). By "directory", we mean "designator
|
|
684 |
+a directory to look in (or 'nil'). By "directory", we mean "designator
|
|
682 | 685 |
for a pathname with a non-empty DIRECTORY component".
|
683 | 686 |
|
684 | 687 |
(3) On Windows, you can use Windows shortcuts instead of POSIX
|
... | ... | @@ -1195,6 +1198,7 @@ File: asdf.info, Node: The defsystem grammar, Next: Other code in .asd files, |
1195 | 1198 |
# which is used in :in-order-to
|
1196 | 1199 |
dependency-def := simple-component-name
|
1197 | 1200 |
| ( :feature FEATURE-EXPRESSION dependency-def )
|
1201 |
+ # (*note Feature dependencies: The defsystem grammar.)
|
|
1198 | 1202 |
| ( :version simple-component-name version-specifier )
|
1199 | 1203 |
| ( :require module-name )
|
1200 | 1204 |
|
... | ... | @@ -1213,8 +1217,6 @@ File: asdf.info, Node: The defsystem grammar, Next: Other code in .asd files, |
1213 | 1217 |
method-form := (operation-name qual lambda-list &rest body)
|
1214 | 1218 |
qual := method qualifier?
|
1215 | 1219 |
|
1216 |
- component-dep-fail-option := :fail | :try-next | :ignore
|
|
1217 |
- |
|
1218 | 1220 |
feature-expression := keyword
|
1219 | 1221 |
| (:and FEATURE-EXPRESSION*)
|
1220 | 1222 |
| (:or FEATURE-EXPRESSION*)
|
... | ... | @@ -1407,7 +1409,26 @@ than '#+_implementation-name_' to only depend on the specified module on |
1407 | 1409 |
the specific implementation that provides it. *Note
|
1408 | 1410 |
if-feature-option::.
|
1409 | 1411 |
|
1410 |
-6.3.10 Using logical pathnames
|
|
1412 |
+6.3.10 Feature dependencies
|
|
1413 |
+---------------------------
|
|
1414 |
+ |
|
1415 |
+A feature dependency is of the form '(:feature FEATURE-EXPRESSION
|
|
1416 |
+DEPENDENCY)' If the FEATURE-EXPRESSION is satisfied by the running lisp
|
|
1417 |
+at the time the system definition is parsed, then the DEPENDENCY will be
|
|
1418 |
+added to the system's dependencies. If the FEATURE-EXPRESSION is _not_
|
|
1419 |
+satisfied, then the feature dependency form is ignored.
|
|
1420 |
+ |
|
1421 |
+ Note that this means that ':feature' *cannot* be used to enforce a
|
|
1422 |
+feature dependency for the system in question. I.e., it cannot be used
|
|
1423 |
+to require that a feature hold in order for the system definition to be
|
|
1424 |
+loaded. E.g., one cannot use '(:feature :sbcl)' to require that a
|
|
1425 |
+system only be used on SBCL.
|
|
1426 |
+ |
|
1427 |
+ Feature dependencies are not to be confused with the obsolete feature
|
|
1428 |
+requirement (*note feature requirement: The defsystem grammar.), or with
|
|
1429 |
+'if-feature'.
|
|
1430 |
+ |
|
1431 |
+6.3.11 Using logical pathnames
|
|
1411 | 1432 |
------------------------------
|
1412 | 1433 |
|
1413 | 1434 |
We do not generally recommend the use of logical pathnames, especially
|
... | ... | @@ -1453,7 +1474,7 @@ are shared with software written in different programming languages |
1453 | 1474 |
where conventions include the use of underscores, dots or CamelCase in
|
1454 | 1475 |
pathnames.
|
1455 | 1476 |
|
1456 |
-6.3.11 Serial dependencies
|
|
1477 |
+6.3.12 Serial dependencies
|
|
1457 | 1478 |
--------------------------
|
1458 | 1479 |
|
1459 | 1480 |
If the ':serial t' option is specified for a module, ASDF will add
|
... | ... | @@ -1469,7 +1490,7 @@ preceding it. This is done as if by ':depends-on'. |
1469 | 1490 |
(:file "b" :depends-on ("a"))
|
1470 | 1491 |
(:file "c" :depends-on ("a" "b")))
|
1471 | 1492 |
|
1472 |
-6.3.12 Source location (':pathname')
|
|
1493 |
+6.3.13 Source location (':pathname')
|
|
1473 | 1494 |
------------------------------------
|
1474 | 1495 |
|
1475 | 1496 |
The ':pathname' option is optional in all cases for systems defined via
|
... | ... | @@ -1508,7 +1529,7 @@ pathname will be set to: |
1508 | 1529 |
that a developer can evaluate a 'defsystem' form from within an
|
1509 | 1530 |
editor without clobbering its source location)
|
1510 | 1531 |
|
1511 |
-6.3.13 if-feature option
|
|
1532 |
+6.3.14 if-feature option
|
|
1512 | 1533 |
------------------------
|
1513 | 1534 |
|
1514 | 1535 |
This option allows you to specify a feature expression to be evaluated
|
... | ... | @@ -1531,13 +1552,6 @@ before any build operations have been performed. |
1531 | 1552 |
This option was added in ASDF 3. For more information, *Note
|
1532 | 1553 |
Required features: required-features.
|
1533 | 1554 |
|
1534 |
-6.3.14 if-component-dep-fails option
|
|
1535 |
-------------------------------------
|
|
1536 |
- |
|
1537 |
-This option was removed in ASDF 3. Its semantics was limited in purpose
|
|
1538 |
-and dubious to explain, and its implementation was breaking a hole into
|
|
1539 |
-the ASDF object model. Please use the 'if-feature' option instead.
|
|
1540 |
- |
|
1541 | 1555 |
6.3.15 feature requirement
|
1542 | 1556 |
--------------------------
|
1543 | 1557 |
|
... | ... | @@ -1677,11 +1691,12 @@ File: asdf.info, Node: The object model of ASDF, Next: Controlling where ASDF |
1677 | 1691 |
|
1678 | 1692 |
ASDF is designed in an object-oriented way from the ground up. Both a
|
1679 | 1693 |
system's structure and the operations that can be performed on systems
|
1680 |
-follow a extensible protocol, allowing programmers to add new behaviours
|
|
1681 |
-to ASDF. For example, 'cffi' adds support for special FFI description
|
|
1682 |
-files that interface with C libraries and for wrapper files that embed C
|
|
1683 |
-code in Lisp. 'asdf-jar' supports creating Java JAR archives in ABCL.
|
|
1684 |
-'poiu' supports compiling code in parallel using background processes.
|
|
1694 |
+follow an extensible protocol, allowing programmers to add new
|
|
1695 |
+behaviours to ASDF. For example, 'cffi' adds support for special FFI
|
|
1696 |
+description files that interface with C libraries and for wrapper files
|
|
1697 |
+that embed C code in Lisp. 'asdf-jar' supports creating Java JAR
|
|
1698 |
+archives in ABCL. 'poiu' supports compiling code in parallel using
|
|
1699 |
+background processes.
|
|
1685 | 1700 |
|
1686 | 1701 |
The key classes in ASDF are 'component' and 'operation'. A
|
1687 | 1702 |
'component' represents an individual source file or a group of source
|
... | ... | @@ -1769,18 +1784,20 @@ in turn below. |
1769 | 1784 |
'operate' invokes OPERATION on SYSTEM. 'oos' is a synonym for
|
1770 | 1785 |
'operate' (it stands for operate-on-system).
|
1771 | 1786 |
|
1772 |
- OPERATION is a symbol that is passed, along with the supplied
|
|
1773 |
- INITARGS, to 'make-operation' (which will call 'make-instance') to
|
|
1774 |
- create the operation object. COMPONENT is a component designator,
|
|
1775 |
- usually a string or symbol that designates a system, sometimes a
|
|
1776 |
- list of strings or symbols that designate a subcomponent of a
|
|
1777 |
- system.
|
|
1778 |
- |
|
1779 |
- The INITARGS are passed to the 'make-instance' call when creating
|
|
1780 |
- the operation object. Note that dependencies may cause the
|
|
1781 |
- operation to invoke other operations on the system or its
|
|
1782 |
- components: the new operations will be created with the same
|
|
1783 |
- INITARGS as the original one.
|
|
1787 |
+ OPERATION is an operation designator: it can be an operation object
|
|
1788 |
+ itself, or, typically, a symbol that is passed to 'make-operation'
|
|
1789 |
+ (which will call 'make-instance'), to create the operation object.
|
|
1790 |
+ COMPONENT is a component designator: it can be a component object
|
|
1791 |
+ itself, or, typically, a string or symbol (to be
|
|
1792 |
+ 'string-downcase'd) that names a system, more rarely a list of
|
|
1793 |
+ strings or symbols that designate a subcomponent of a system.
|
|
1794 |
+ |
|
1795 |
+ The ability to pass INITARGS to 'make-operation' is now deprecated,
|
|
1796 |
+ and will be removed. For more details, *note make-operation::.
|
|
1797 |
+ Note that dependencies may cause the operation to invoke other
|
|
1798 |
+ operations on the system or its components: the new operations may
|
|
1799 |
+ or may not be created with the same INITARGS as the original one
|
|
1800 |
+ (for the moment).
|
|
1784 | 1801 |
|
1785 | 1802 |
If FORCE is ':all', then all systems are forced to be recompiled
|
1786 | 1803 |
even if not modified since last compilation. If FORCE is 't', then
|
... | ... | @@ -1807,6 +1824,18 @@ in turn below. |
1807 | 1824 |
To see what 'operate' would do, you can use:
|
1808 | 1825 |
(asdf:traverse operation-class system-name)
|
1809 | 1826 |
|
1827 |
+ -- Function: 'make-operation' OPERATION-CLASS &rest INITARGS
|
|
1828 |
+ |
|
1829 |
+ The INITARGS are passed to 'make-instance' call when creating the
|
|
1830 |
+ operation object.
|
|
1831 |
+ |
|
1832 |
+ *Note:*INITARGS for 'operation's are now deprecated, and will be
|
|
1833 |
+ removed from ASDF in the near future.
|
|
1834 |
+ |
|
1835 |
+ *Note:* 'operation' instances must *never* be created using
|
|
1836 |
+ 'make-instance' directly: only through 'make-operation'. Attempts
|
|
1837 |
+ to directly make 'operation' instances will cause a run-time error.
|
|
1838 |
+ |
|
1810 | 1839 |
|
1811 | 1840 |
File: asdf.info, Node: Predefined operations of ASDF, Next: Creating new operations, Prev: Operations, Up: Operations
|
1812 | 1841 |
|
... | ... | @@ -2237,8 +2266,8 @@ component itself, or a string or symbol, or a list of designators. |
2237 | 2266 |
'/current/path/to/foo.asd', but system 'foo' was previously loaded
|
2238 | 2267 |
from '/previous/path/to/foo.asd' then LOCATE-SYSTEM will return the
|
2239 | 2268 |
following values:
|
2240 |
- 1. FOUNDP will be 'T',
|
|
2241 |
- 2. FOUND-SYSTEM will be 'NIL',
|
|
2269 |
+ 1. FOUNDP will be 't',
|
|
2270 |
+ 2. FOUND-SYSTEM will be 'nil',
|
|
2242 | 2271 |
3. PATHNAME will be '#p"/current/path/to/foo.asd"',
|
2243 | 2272 |
4. PREVIOUS will be an object of type 'SYSTEM' with
|
2244 | 2273 |
'system-source-file' slot value of
|
... | ... | @@ -3637,23 +3666,29 @@ File: asdf.info, Node: Output Shell-friendly syntax for configuration, Next: S |
3637 | 3666 |
9.5 Shell-friendly syntax for configuration
|
3638 | 3667 |
===========================================
|
3639 | 3668 |
|
3640 |
-When considering environment variable 'ASDF_OUTPUT_TRANSLATIONS' ASDF
|
|
3641 |
-will skip to the next configuration if it's an empty string. It will
|
|
3642 |
-'READ' the string as an SEXP in the DSL if it begins with a paren '('
|
|
3643 |
-and it will be interpreted as a list of directories. Directories should
|
|
3644 |
-come by pairs, indicating a mapping directive. Entries are separated by
|
|
3645 |
-a ':' (colon) on Unix platforms (including cygwin), by a ';' (semicolon)
|
|
3646 |
-on other platforms (mainly, Windows).
|
|
3669 |
+When processing the environment variable 'ASDF_OUTPUT_TRANSLATIONS':
|
|
3670 |
+ * ASDF will skip to the next configuration if it's an empty string.
|
|
3671 |
+ * ASDF will 'READ' the string as an SEXP in the DSL, if it begins
|
|
3672 |
+ with a parenthesis '('.
|
|
3673 |
+ * Otherwise ASDF will interpret the value as a list of directories
|
|
3674 |
+ (see below).
|
|
3675 |
+ |
|
3676 |
+ In the directory list format, directories should come in pairs, each
|
|
3677 |
+pair indicating a mapping directive. Entries are separated by a ':'
|
|
3678 |
+(colon) on Unix platforms (including Mac and cygwin), and by a ';'
|
|
3679 |
+(semicolon) on other platforms (mainly, Windows).
|
|
3647 | 3680 |
|
3648 | 3681 |
The magic empty entry, if it comes in what would otherwise be the
|
3649 | 3682 |
first entry in a pair, indicates the splicing of inherited
|
3650 |
-configuration. If it comes as the second entry in a pair, it indicates
|
|
3651 |
-that the directory specified first is to be left untranslated (which has
|
|
3652 |
-the same effect as if the directory had been repeated). Thus
|
|
3653 |
-'"/foo:/bar::/baz:"' means that things under directory '/foo/' are
|
|
3654 |
-translated to be under '/bar/', then include the inherited
|
|
3655 |
-configuration, then specify that things under directory '/baz/' are not
|
|
3656 |
-translated.
|
|
3683 |
+configuration; the next entry (if any) then starts a new pair. If the
|
|
3684 |
+second entry in a pair is empty, it indicates that the directory in the
|
|
3685 |
+first entry is to be left untranslated (which has the same effect as if
|
|
3686 |
+the directory had been repeated).
|
|
3687 |
+ |
|
3688 |
+ For example, '"/foo:/bar::/baz:"' means: specify that outputs for
|
|
3689 |
+things under directory '/foo/' are translated to be under '/bar/'; then
|
|
3690 |
+include the inherited configuration; then specify that outputs for
|
|
3691 |
+things under directory '/baz/' are not translated.
|
|
3657 | 3692 |
|
3658 | 3693 |
|
3659 | 3694 |
File: asdf.info, Node: Semantics of Output Translations, Next: Output Caching Results, Prev: Output Shell-friendly syntax for configuration, Up: Controlling where ASDF saves compiled files
|
... | ... | @@ -3909,8 +3944,8 @@ implementations that support Unicode, and you can use |
3909 | 3944 |
reader-conditionalization to protect any ':encoding _encoding_'
|
3910 | 3945 |
statement, as in '#+asdf-unicode :encoding #+asdf-unicode :utf-8'. We
|
3911 | 3946 |
recommend that you avoid using unprotected ':encoding' specifications
|
3912 |
-until after ASDF 2.21 or later becomes widespread. As of May 2015, all
|
|
3913 |
-maintained implementations provide ASDF 3, so you may prudently start
|
|
3947 |
+until after ASDF 2.21 or later becomes widespread. As of May 2016, all
|
|
3948 |
+maintained implementations provide ASDF 3.1, so you may prudently start
|
|
3914 | 3949 |
using this and other features without such protection.
|
3915 | 3950 |
|
3916 | 3951 |
While it offers plenty of hooks for extension, and one such extension
|
... | ... | @@ -4038,13 +4073,20 @@ These functions are exported by ASDF for your convenience. |
4038 | 4073 |
inspiration (or disinspiration) from what it does in 'header.lisp'
|
4039 | 4074 |
and 'upgrade.lisp'.
|
4040 | 4075 |
|
4041 |
- -- Function: register-preloaded-system name &rest keys
|
|
4076 |
+ -- Function: register-preloaded-system name &rest keys &key version
|
|
4077 |
+ &allow-other-keys
|
|
4042 | 4078 |
A system with name NAME, created by 'make-instance' with extra keys
|
4043 |
- KEYS (e.g. ':version'), is registered as _preloaded_. That is,
|
|
4044 |
- its code has already been loaded into the current image, and if at
|
|
4045 |
- some point some other system ':depends-on' it yet no source code is
|
|
4046 |
- found, it is considered as already provided, and ASDF will not
|
|
4047 |
- raise a 'missing-component' error.
|
|
4079 |
+ KEYS (e.g. ':version'), is registered as _preloaded_. If VERSION
|
|
4080 |
+ is 't' (default), then the version is copied from the defined
|
|
4081 |
+ system of the same name (if registered) or else is 'nil' (this
|
|
4082 |
+ automatic copy of version is only available starting since ASDF
|
|
4083 |
+ 3.1.8).
|
|
4084 |
+ |
|
4085 |
+ A preloaded system is considered as having already been loaded into
|
|
4086 |
+ the current image, and if at some point some other system
|
|
4087 |
+ ':depends-on' it yet no source code is found, it is considered as
|
|
4088 |
+ already provided, and ASDF will not raise a 'missing-component'
|
|
4089 |
+ error.
|
|
4048 | 4090 |
|
4049 | 4091 |
This function is particularly useful if you distribute your code as
|
4050 | 4092 |
fasls with either 'compile-bundle-op' or
|
... | ... | @@ -4052,17 +4094,27 @@ These functions are exported by ASDF for your convenience. |
4052 | 4094 |
that dependencies will work uniformly whether you're using your
|
4053 | 4095 |
software from source or from fasl.
|
4054 | 4096 |
|
4097 |
+ Note that if the system was already defined or loaded from source
|
|
4098 |
+ code, its build information will remain active until you call
|
|
4099 |
+ 'clear-system' on it, at which point a system without build
|
|
4100 |
+ information will be registered in its place.
|
|
4101 |
+ |
|
4055 | 4102 |
-- Function: register-immutable-system name &rest keys
|
4056 |
- A system with name NAME, created by 'make-instance' with extra keys
|
|
4057 |
- KEYS (e.g. ':version'), is registered as _immutable_. That is,
|
|
4058 |
- its code has already been loaded into the current image, and if at
|
|
4059 |
- some point some other system ':depends-on' it, it is considered as
|
|
4060 |
- already provided, and no attempt will be made to search for an
|
|
4061 |
- updated version from the source-registry or any other method.
|
|
4062 |
- There will be no search for an '.asd' file, and no
|
|
4063 |
- 'missing-component' error.
|
|
4064 |
- |
|
4065 |
- This function (available since ASDF 3.1.5) is particularly useful
|
|
4103 |
+ A system with name NAME is registered as preloaded, and
|
|
4104 |
+ additionally is marked as _immutable_: that is, attempts to compile
|
|
4105 |
+ or load it will be succeed without actually reading, creating or
|
|
4106 |
+ loading any file, as if the system was passed as a 'force-not'
|
|
4107 |
+ argument to all calls to 'plan' or 'operate'. There will be no
|
|
4108 |
+ search for an updated '.asd' file to override the loaded version,
|
|
4109 |
+ whether from the source-register or any other method.
|
|
4110 |
+ |
|
4111 |
+ If a VERSION keyword argument is specified as 't' or left
|
|
4112 |
+ unspecified, then the version is copied from the defined system of
|
|
4113 |
+ the same name (if registered) or else is 'nil'. This automatic
|
|
4114 |
+ copy of version is available starting since immutable systems have
|
|
4115 |
+ been available in ASDF 3.1.5.
|
|
4116 |
+ |
|
4117 |
+ This function, available since ASDF 3.1.5, is particularly useful
|
|
4066 | 4118 |
if you distribute a large body of code as a precompiled image, and
|
4067 | 4119 |
want to allow users to extend the image with further extension
|
4068 | 4120 |
systems, but without making thousands of filesystem requests
|
... | ... | @@ -4104,9 +4156,10 @@ File: asdf.info, Node: Some Utility Functions, Prev: Miscellaneous Functions, |
4104 | 4156 |
|
4105 | 4157 |
The below functions are not exported by ASDF itself, but by UIOP,
|
4106 | 4158 |
available since ASDF 3. Some of them have precursors in ASDF 2, but we
|
4107 |
-recommend you rely on ASDF 3 for active developments. UIOP provides
|
|
4108 |
-many, many more utility functions, and we recommend you read its README
|
|
4109 |
-and sources for more information.
|
|
4159 |
+recommend that for active developments, you should rely on the package
|
|
4160 |
+UIOP as included in ASDF 3. UIOP provides many, many more utility
|
|
4161 |
+functions, and we recommend you read its 'README.md' and sources for
|
|
4162 |
+more information.
|
|
4110 | 4163 |
|
4111 | 4164 |
-- Function: parse-unix-namestring name &key type defaults dot-dot
|
4112 | 4165 |
ensure-directory &allow-other-keys
|
... | ... | @@ -4293,7 +4346,7 @@ and sources for more information. |
4293 | 4346 |
documentation for 'uiop:access-at'.
|
4294 | 4347 |
|
4295 | 4348 |
* If the object is ':forms', the content is captured as a list
|
4296 |
- of S-expressions, as read by the Lisp reader. If the COUNT
|
|
4349 |
+ of s-expressions, as read by the Lisp reader. If the COUNT
|
|
4297 | 4350 |
argument is provided, it is a maximum count of lines to be
|
4298 | 4351 |
read. We recommend you control the syntax with such macro as
|
4299 | 4352 |
'uiop:with-safe-io-syntax'.
|
... | ... | @@ -4812,8 +4865,8 @@ when upgrading from ASDF 2, due to limitations in ASDF 2. |
4812 | 4865 |
ensure that ASDF 3 or later is present indeed, before they start
|
4813 | 4866 |
using ASDF to load anything else.
|
4814 | 4867 |
|
4815 |
- * Now that all implementations provide ASDF 3 or later (since May
|
|
4816 |
- 2015), the simple solution is just to use code as below in your
|
|
4868 |
+ * Now that all implementations provide ASDF 3.1 or later (since May
|
|
4869 |
+ 2016), the simple solution is just to use code as below in your
|
|
4817 | 4870 |
setup, and when it fails, upgrade your implementation or replace
|
4818 | 4871 |
its ASDF. (*note Replacing your implementation's ASDF::):
|
4819 | 4872 |
(require "asdf")
|
... | ... | @@ -4852,15 +4905,14 @@ File: asdf.info, Node: What happened to the bundle operations, Prev: Pitfalls |
4852 | 4905 |
|
4853 | 4906 |
'asdf-ecl' and its short-lived successor 'asdf-bundle' are no more,
|
4854 | 4907 |
having been replaced by code now built into ASDF 3. Moreover, the name
|
4855 |
-of the bundle operations has changed since ASDF 3.1.3.
|
|
4856 |
- |
|
4857 |
- And yet, the feature is not enabled to be used by 'load-system' by
|
|
4858 |
-default on ECL as originally intended, because of a bug in ECL itself
|
|
4859 |
-found during testing.
|
|
4908 |
+of the bundle operations has changed since ASDF 3.1.3. Starting with
|
|
4909 |
+ASDF 3.2.0, 'load-system' will once again use 'load-bundle-op' instead
|
|
4910 |
+of 'load-op' on ECL, as originally intended by 'asdf-ecl' authors, but
|
|
4911 |
+disabled for a long time due to bugs in both ECL and ASDF.
|
|
4860 | 4912 |
|
4861 |
- Some of the bundle operations were renamed after ASDF 3.1.3, and the
|
|
4862 |
-old names have been removed. Old bundle operations, and their modern
|
|
4863 |
-equivalents are:
|
|
4913 |
+ Note that some of the bundle operations were renamed after ASDF
|
|
4914 |
+3.1.3, and the old names have been removed. Old bundle operations, and
|
|
4915 |
+their modern equivalents are:
|
|
4864 | 4916 |
|
4865 | 4917 |
* 'fasl-op' is now 'compile-bundle-op'
|
4866 | 4918 |
* 'load-fasl-op' is now 'load-bundle-op'
|
... | ... | @@ -5044,6 +5096,7 @@ File: asdf.info, Node: Issues with using and extending ASDF to define systems, |
5044 | 5096 |
* How do I mark a source file to be loaded only and not compiled?::
|
5045 | 5097 |
* How do I work with readtables?::
|
5046 | 5098 |
* How can I capture ASDF's output?::
|
5099 |
+* LOAD-PATHNAME has a weird value::
|
|
5047 | 5100 |
|
5048 | 5101 |
|
5049 | 5102 |
File: asdf.info, Node: How can I cater for unit-testing in my system?, Next: How can I cater for documentation generation in my system?, Prev: Issues with using and extending ASDF to define systems, Up: Issues with using and extending ASDF to define systems
|
... | ... | @@ -5277,7 +5330,7 @@ Use from the 'named-readtables' system the macro |
5277 | 5330 |
'named-readtables:defreadtable'.
|
5278 | 5331 |
|
5279 | 5332 |
|
5280 |
-File: asdf.info, Node: How can I capture ASDF's output?, Prev: How do I work with readtables?, Up: Issues with using and extending ASDF to define systems
|
|
5333 |
+File: asdf.info, Node: How can I capture ASDF's output?, Next: LOAD-PATHNAME has a weird value, Prev: How do I work with readtables?, Up: Issues with using and extending ASDF to define systems
|
|
5281 | 5334 |
|
5282 | 5335 |
13.6.8 How can I capture ASDF's output?
|
5283 | 5336 |
---------------------------------------
|
... | ... | @@ -5287,6 +5340,32 @@ Output from ASDF and ASDF extensions are sent to the CL stream |
5287 | 5340 |
'asdf:operate' should redirect all output from ASDF operations.
|
5288 | 5341 |
|
5289 | 5342 |
|
5343 |
+File: asdf.info, Node: LOAD-PATHNAME has a weird value, Prev: How can I capture ASDF's output?, Up: Issues with using and extending ASDF to define systems
|
|
5344 |
+ |
|
5345 |
+13.6.9 *LOAD-PATHNAME* and *LOAD-TRUENAME* have weird values, help!
|
|
5346 |
+-------------------------------------------------------------------
|
|
5347 |
+ |
|
5348 |
+Conventional Common Lisp code may use '*LOAD-TRUENAME*' or
|
|
5349 |
+'*LOAD-PATHNAME*' to find files adjacent to source files. This will
|
|
5350 |
+generally _not_ work in ASDF-loaded systems. Recall that ASDF relocates
|
|
5351 |
+the FASL files it builds, typically to a special cache directory. Thus
|
|
5352 |
+the value of '*LOAD-PATHNAME*' and '*LOAD-TRUENAME*' at load time, when
|
|
5353 |
+ASDF is loading your system, will typically be a pathname in that cache
|
|
5354 |
+directory, and useless to you for finding other system components.
|
|
5355 |
+ |
|
5356 |
+ There are two ways to work around this problem:
|
|
5357 |
+ 1. Use the 'system-relative-pathname' function. This can readily be
|
|
5358 |
+ used from outside the system, but it is probably not good software
|
|
5359 |
+ engineering to require a source file _of_ a system to know what
|
|
5360 |
+ system it is going to be part of. Contained objects should not
|
|
5361 |
+ have to know their containers.
|
|
5362 |
+ 2. Store the pathname at compile time, so that you get the pathname of
|
|
5363 |
+ the source file, which is presumably what you want. To do this,
|
|
5364 |
+ you can capture the value of '(or *compile-file-pathname*
|
|
5365 |
+ *load-truename*)' (or '*LOAD-PATHNAME*', if you prefer) in a macro
|
|
5366 |
+ expansion or other compile-time evaluated context.
|
|
5367 |
+ |
|
5368 |
+ |
|
5290 | 5369 |
File: asdf.info, Node: ASDF development FAQs, Prev: Issues with using and extending ASDF to define systems, Up: FAQ
|
5291 | 5370 |
|
5292 | 5371 |
13.7 ASDF development FAQs
|
... | ... | @@ -5371,7 +5450,7 @@ Bibliography |
5371 | 5450 |
<http://blog.quicklisp.org/> <http://xach.livejournal.com/>
|
5372 | 5451 |
* Francois-Rene Rideau and Robert Goldman: "Evolving ASDF: More
|
5373 | 5452 |
Cooperation, Less Coordination", 2010. This article describes the
|
5374 |
- main issues solved by ASDF 2.
|
|
5453 |
+ main issues solved by ASDF 2, and exposes its design principles.
|
|
5375 | 5454 |
<https://common-lisp.net/project/asdf/doc/ilc2010draft.pdf>
|
5376 | 5455 |
<https://gitlab.common-lisp.org/asdf/ilc2010>
|
5377 | 5456 |
* Francois-Rene Rideau and Spencer Brody: "XCVB: an eXtensible
|
... | ... | @@ -5426,34 +5505,34 @@ Concept Index |
5426 | 5505 |
* :asdf2: Introduction. (line 6)
|
5427 | 5506 |
* :asdf3: Introduction. (line 6)
|
5428 | 5507 |
* :build-operation: The defsystem grammar.
|
5429 |
- (line 129)
|
|
5508 |
+ (line 128)
|
|
5430 | 5509 |
* :compile-check: Controlling file compilation.
|
5431 | 5510 |
(line 6)
|
5432 | 5511 |
* :default-registry source config directive: Configuration DSL.
|
5433 | 5512 |
(line 6)
|
5434 | 5513 |
* :defsystem-depends-on: The defsystem grammar.
|
5435 |
- (line 121)
|
|
5514 |
+ (line 120)
|
|
5436 | 5515 |
* :directory source config directive: Configuration DSL. (line 6)
|
5437 | 5516 |
* :exclude source config directive: Configuration DSL. (line 6)
|
5438 |
-* :if-component-dep-fails component option: The defsystem grammar.
|
|
5439 |
- (line 395)
|
|
5517 |
+* :feature dependencies: The defsystem grammar.
|
|
5518 |
+ (line 270)
|
|
5440 | 5519 |
* :if-feature component option: The defsystem grammar.
|
5441 |
- (line 372)
|
|
5520 |
+ (line 390)
|
|
5442 | 5521 |
* :ignore-invalid-entries source config directive: Configuration DSL.
|
5443 | 5522 |
(line 6)
|
5444 | 5523 |
* :include source config directive: Configuration DSL. (line 6)
|
5445 | 5524 |
* :inherit-configuration source config directive: Configuration DSL.
|
5446 | 5525 |
(line 6)
|
5447 | 5526 |
* :require dependencies: The defsystem grammar.
|
5448 |
- (line 261)
|
|
5527 |
+ (line 260)
|
|
5449 | 5528 |
* :tree source config directive: Configuration DSL. (line 6)
|
5450 | 5529 |
* :version: The defsystem form. (line 68)
|
5451 | 5530 |
* :version <1>: The defsystem grammar.
|
5452 |
- (line 230)
|
|
5531 |
+ (line 229)
|
|
5453 | 5532 |
* :version <2>: Common attributes of components.
|
5454 | 5533 |
(line 23)
|
5455 | 5534 |
* :weakly-depends-on: The defsystem grammar.
|
5456 |
- (line 141)
|
|
5535 |
+ (line 140)
|
|
5457 | 5536 |
* also-exclude source config directive: Configuration DSL. (line 6)
|
5458 | 5537 |
* around-compile keyword: Controlling file compilation.
|
5459 | 5538 |
(line 6)
|
... | ... | @@ -5485,32 +5564,32 @@ Concept Index |
5485 | 5564 |
* exclude source config directive: Configuration DSL. (line 6)
|
5486 | 5565 |
* ignore-invalid-entries source config directive: Configuration DSL.
|
5487 | 5566 |
(line 6)
|
5488 |
-* immutable systems: Operations. (line 65)
|
|
5567 |
+* immutable systems: Operations. (line 67)
|
|
5489 | 5568 |
* immutable systems <1>: Miscellaneous Functions.
|
5490 |
- (line 91)
|
|
5569 |
+ (line 108)
|
|
5491 | 5570 |
* include source config directive: Configuration DSL. (line 6)
|
5492 | 5571 |
* inherit-configuration source config directive: Configuration DSL.
|
5493 | 5572 |
(line 6)
|
5494 | 5573 |
* launchpad: Where do I report a bug?.
|
5495 | 5574 |
(line 6)
|
5496 | 5575 |
* logical pathnames: The defsystem grammar.
|
5497 |
- (line 271)
|
|
5576 |
+ (line 289)
|
|
5498 | 5577 |
* mailing list: Mailing list. (line 6)
|
5499 | 5578 |
* operation: Operations. (line 6)
|
5500 | 5579 |
* pathname specifiers: The defsystem grammar.
|
5501 |
- (line 163)
|
|
5580 |
+ (line 162)
|
|
5502 | 5581 |
* Primary system name: Components. (line 70)
|
5503 | 5582 |
* readtables: How do I work with readtables?.
|
5504 | 5583 |
(line 6)
|
5505 | 5584 |
* serial dependencies: The defsystem grammar.
|
5506 |
- (line 317)
|
|
5585 |
+ (line 335)
|
|
5507 | 5586 |
* system: Components. (line 6)
|
5508 | 5587 |
* system designator: Components. (line 6)
|
5509 | 5588 |
* System names: Components. (line 70)
|
5510 | 5589 |
* Testing for ASDF: Introduction. (line 6)
|
5511 | 5590 |
* tree source config directive: Configuration DSL. (line 6)
|
5512 | 5591 |
* version specifiers: The defsystem grammar.
|
5513 |
- (line 230)
|
|
5592 |
+ (line 229)
|
|
5514 | 5593 |
|
5515 | 5594 |
|
5516 | 5595 |
File: asdf.info, Node: Function and Class Index, Next: Variable Index, Prev: Concept Index, Up: Top
|
... | ... | @@ -5599,8 +5678,9 @@ Function and Class Index |
5599 | 5678 |
* locate-system: Components. (line 97)
|
5600 | 5679 |
* make: Convenience Functions.
|
5601 | 5680 |
(line 54)
|
5681 |
+* make-operation: Operations. (line 78)
|
|
5602 | 5682 |
* merge-pathnames*: Some Utility Functions.
|
5603 |
- (line 62)
|
|
5683 |
+ (line 63)
|
|
5604 | 5684 |
* module: Pre-defined subclasses of component.
|
5605 | 5685 |
(line 23)
|
5606 | 5686 |
* monolithic-binary-op (obsolete): What happened to the bundle operations.
|
... | ... | @@ -5629,34 +5709,34 @@ Function and Class Index |
5629 | 5709 |
* output-files: Creating new operations.
|
5630 | 5710 |
(line 33)
|
5631 | 5711 |
* parse-unix-namestring: Some Utility Functions.
|
5632 |
- (line 12)
|
|
5712 |
+ (line 13)
|
|
5633 | 5713 |
* perform: Creating new operations.
|
5634 | 5714 |
(line 19)
|
5635 | 5715 |
* prepare-op: Predefined operations of ASDF.
|
5636 | 5716 |
(line 38)
|
5637 | 5717 |
* primary-system-name: Components. (line 70)
|
5638 | 5718 |
* primary-system-name <1>: Components. (line 91)
|
5639 |
-* register-immutable-system: Operations. (line 65)
|
|
5719 |
+* register-immutable-system: Operations. (line 67)
|
|
5640 | 5720 |
* register-immutable-system <1>: Miscellaneous Functions.
|
5641 |
- (line 75)
|
|
5721 |
+ (line 87)
|
|
5642 | 5722 |
* register-preloaded-system: Miscellaneous Functions.
|
5643 | 5723 |
(line 61)
|
5644 | 5724 |
* require-system: Convenience Functions.
|
5645 | 5725 |
(line 65)
|
5646 | 5726 |
* run-program: Some Utility Functions.
|
5647 |
- (line 89)
|
|
5727 |
+ (line 90)
|
|
5648 | 5728 |
* run-shell-command: Miscellaneous Functions.
|
5649 |
- (line 93)
|
|
5729 |
+ (line 110)
|
|
5650 | 5730 |
* slurp-input-stream: Some Utility Functions.
|
5651 |
- (line 161)
|
|
5731 |
+ (line 162)
|
|
5652 | 5732 |
* source-file: Pre-defined subclasses of component.
|
5653 | 5733 |
(line 6)
|
5654 | 5734 |
* source-file-type: Pitfalls of the transition to ASDF 2.
|
5655 | 5735 |
(line 77)
|
5656 | 5736 |
* subpathname: Some Utility Functions.
|
5657 |
- (line 71)
|
|
5737 |
+ (line 72)
|
|
5658 | 5738 |
* subpathname*: Some Utility Functions.
|
5659 |
- (line 84)
|
|
5739 |
+ (line 85)
|
|
5660 | 5740 |
* system: Pre-defined subclasses of component.
|
5661 | 5741 |
(line 51)
|
5662 | 5742 |
* SYSTEM-DEFINITION-ERROR: Error handling. (line 6)
|
... | ... | @@ -5666,6 +5746,8 @@ Function and Class Index |
5666 | 5746 |
(line 12)
|
5667 | 5747 |
* system-relative-pathname: Miscellaneous Functions.
|
5668 | 5748 |
(line 8)
|
5749 |
+* system-relative-pathname <1>: LOAD-PATHNAME has a weird value.
|
|
5750 |
+ (line 15)
|
|
5669 | 5751 |
* system-source-directory: Miscellaneous Functions.
|
5670 | 5752 |
(line 25)
|
5671 | 5753 |
* system-weakly-depends-on: Information about system dependencies.
|
... | ... | @@ -5674,7 +5756,7 @@ Function and Class Index |
5674 | 5756 |
(line 52)
|
5675 | 5757 |
* test-system: Convenience Functions.
|
5676 | 5758 |
(line 49)
|
5677 |
-* traverse: Operations. (line 73)
|
|
5759 |
+* traverse: Operations. (line 75)
|
|
5678 | 5760 |
* version-satisfies: Common attributes of components.
|
5679 | 5761 |
(line 23)
|
5680 | 5762 |
* version-satisfies <1>: Functions. (line 6)
|
... | ... | @@ -5694,10 +5776,14 @@ Variable Index |
5694 | 5776 |
* *features*: Introduction. (line 6)
|
5695 | 5777 |
* *image-dump-hook*: Resetting the ASDF configuration.
|
5696 | 5778 |
(line 14)
|
5779 |
+* *LOAD-PATHNAME*: LOAD-PATHNAME has a weird value.
|
|
5780 |
+ (line 6)
|
|
5697 | 5781 |
* *load-system-operation*: Convenience Functions.
|
5698 | 5782 |
(line 29)
|
5783 |
+* *LOAD-TRUENAME*: LOAD-PATHNAME has a weird value.
|
|
5784 |
+ (line 6)
|
|
5699 | 5785 |
* *nil-pathname*: Some Utility Functions.
|
5700 |
- (line 43)
|
|
5786 |
+ (line 44)
|
|
5701 | 5787 |
* *oldest-forward-compatible-asdf-version*: Pitfalls of the upgrade to ASDF 3.
|
5702 | 5788 |
(line 83)
|
5703 | 5789 |
* *source-registry-parameter*: *source-registry-parameter* variable.
|
... | ... | @@ -5714,137 +5800,139 @@ Variable Index |
5714 | 5800 |
|
5715 | 5801 |
Tag Table:
|
5716 | 5802 |
Node: Top1684
|
5717 |
-Node: Introduction7673
|
|
5718 |
-Node: Quick start summary9976
|
|
5719 |
-Node: Loading ASDF11683
|
|
5720 |
-Node: Loading a pre-installed ASDF11985
|
|
5721 |
-Ref: Loading a pre-installed ASDF-Footnote-113798
|
|
5722 |
-Node: Checking whether ASDF is loaded13980
|
|
5723 |
-Node: Upgrading ASDF14894
|
|
5724 |
-Node: Replacing your implementation's ASDF15882
|
|
5725 |
-Node: Loading ASDF from source17305
|
|
5726 |
-Node: Configuring ASDF18406
|
|
5727 |
-Node: Configuring ASDF to find your systems19179
|
|
5728 |
-Ref: Configuring ASDF to find your systems-Footnote-122484
|
|
5729 |
-Ref: Configuring ASDF to find your systems-Footnote-222731
|
|
5730 |
-Ref: Configuring ASDF to find your systems-Footnote-323013
|
|
5731 |
-Node: Configuring ASDF to find your systems --- old style23474
|
|
5732 |
-Ref: Configuring ASDF to find your systems --- old style-Footnote-125901
|
|
5733 |
-Ref: Configuring ASDF to find your systems --- old style-Footnote-226133
|
|
5734 |
-Ref: Configuring ASDF to find your systems --- old style-Footnote-326900
|
|
5735 |
-Node: Configuring where ASDF stores object files27056
|
|
5736 |
-Node: Resetting the ASDF configuration28459
|
|
5737 |
-Node: Using ASDF29516
|
|
5738 |
-Node: Loading a system29727
|
|
5739 |
-Node: Convenience Functions30744
|
|
5740 |
-Ref: Convenience Functions-Footnote-136104
|
|
5741 |
-Node: Moving on36182
|
|
5742 |
-Node: Defining systems with defsystem36553
|
|
5743 |
-Node: The defsystem form36981
|
|
5744 |
-Node: A more involved example40387
|
|
5745 |
-Ref: A more involved example-Footnote-147369
|
|
5746 |
-Node: The defsystem grammar48051
|
|
5747 |
-Ref: if-feature-option64666
|
|
5748 |
-Node: Other code in .asd files66498
|
|
5749 |
-Node: The package-inferred-system extension67634
|
|
5750 |
-Node: The object model of ASDF71901
|
|
5751 |
-Ref: The object model of ASDF-Footnote-174231
|
|
5752 |
-Ref: The object model of ASDF-Footnote-274583
|
|
5753 |
-Node: Operations74910
|
|
5754 |
-Ref: operate76015
|
|
5755 |
-Node: Predefined operations of ASDF78498
|
|
5756 |
-Ref: test-op80612
|
|
5757 |
-Node: Creating new operations88501
|
|
5758 |
-Node: Components93714
|
|
5759 |
-Ref: System names97198
|
|
5760 |
-Ref: Components-Footnote-1101870
|
|
5761 |
-Ref: Components-Footnote-2102166
|
|
5762 |
-Node: Common attributes of components102488
|
|
5763 |
-Ref: required-features104050
|
|
5764 |
-Node: Pre-defined subclasses of component109897
|
|
5765 |
-Node: Creating new component types112331
|
|
5766 |
-Node: Dependencies113621
|
|
5767 |
-Node: Functions115492
|
|
5768 |
-Node: Controlling where ASDF searches for systems117326
|
|
5769 |
-Node: Configurations117948
|
|
5770 |
-Node: Truenames and other dangers121423
|
|
5771 |
-Node: XDG base directory122709
|
|
5772 |
-Node: Backward Compatibility124123
|
|
5773 |
-Node: Configuration DSL124839
|
|
5774 |
-Node: Configuration Directories130394
|
|
5775 |
-Node: The here directive132221
|
|
5776 |
-Node: Shell-friendly syntax for configuration134114
|
|
5777 |
-Node: Search Algorithm135131
|
|
5778 |
-Node: Caching Results136632
|
|
5779 |
-Node: Configuration API139876
|
|
5780 |
-Node: Introspection141915
|
|
5781 |
-Node: *source-registry-parameter* variable142179
|
|
5782 |
-Node: Information about system dependencies142748
|
|
5783 |
-Node: Status143664
|
|
5784 |
-Node: Rejected ideas144119
|
|
5785 |
-Node: TODO146500
|
|
5786 |
-Node: Credits for the source-registry146685
|
|
5787 |
-Node: Controlling where ASDF saves compiled files147220
|
|
5788 |
-Ref: Controlling where ASDF saves compiled files-Footnote-1148632
|
|
5789 |
-Node: Output Configurations148676
|
|
5790 |
-Ref: Output Configurations-Footnote-1151537
|
|
5791 |
-Node: Output Backward Compatibility151603
|
|
5792 |
-Node: Output Configuration DSL154329
|
|
5793 |
-Node: Output Configuration Directories159784
|
|
5794 |
-Node: Output Shell-friendly syntax for configuration161341
|
|
5795 |
-Node: Semantics of Output Translations162650
|
|
5796 |
-Node: Output Caching Results164219
|
|
5797 |
-Node: Output location API164699
|
|
5798 |
-Node: Credits for output translations167121
|
|
5799 |
-Node: Error handling167641
|
|
5800 |
-Node: Miscellaneous additional functionality168482
|
|
5801 |
-Node: Controlling file compilation168954
|
|
5802 |
-Node: Controlling source file character encoding172220
|
|
5803 |
-Node: Miscellaneous Functions179035
|
|
5804 |
-Ref: system-relative-pathname179332
|
|
5805 |
-Ref: Miscellaneous Functions-Footnote-1184956
|
|
5806 |
-Node: Some Utility Functions185067
|
|
5807 |
-Node: Getting the latest version195795
|
|
5808 |
-Node: FAQ196740
|
|
5809 |
-Node: Where do I report a bug?197135
|
|
5810 |
-Node: Mailing list197500
|
|
5811 |
-Node: What has changed between ASDF 1 ASDF 2 and ASDF 3?197835
|
|
5812 |
-Node: What are ASDF 1 2 3?200009
|
|
5813 |
-Node: How do I detect the ASDF version?201050
|
|
5814 |
-Node: ASDF can portably name files in subdirectories203357
|
|
5815 |
-Node: Output translations204907
|
|
5816 |
-Node: Source Registry Configuration205934
|
|
5817 |
-Node: Usual operations are made easier to the user207561
|
|
5818 |
-Node: Many bugs have been fixed208147
|
|
5819 |
-Node: ASDF itself is versioned209979
|
|
5820 |
-Node: ASDF can be upgraded210854
|
|
5821 |
-Node: Decoupled release cycle212006
|
|
5822 |
-Node: Pitfalls of the transition to ASDF 2212935
|
|
5823 |
-Node: Pitfalls of the upgrade to ASDF 3217205
|
|
5824 |
-Ref: Pitfalls of the upgrade to ASDF 3-Footnote-1221572
|
|
5825 |
-Node: What happened to the bundle operations221742
|
|
5826 |
-Node: Issues with installing the proper version of ASDF222844
|
|
5827 |
-Node: My Common Lisp implementation comes with an outdated version of ASDF. What to do?223315
|
|
5828 |
-Node: I'm a Common Lisp implementation vendor. When and how should I upgrade ASDF?224248
|
|
5829 |
-Node: Issues with configuring ASDF228131
|
|
5830 |
-Node: How can I customize where fasl files are stored?228506
|
|
5831 |
-Node: How can I wholly disable the compiler output cache?229599
|
|
5832 |
-Node: Issues with using and extending ASDF to define systems230978
|
|
5833 |
-Node: How can I cater for unit-testing in my system?231739
|
|
5834 |
-Node: How can I cater for documentation generation in my system?232627
|
|
5835 |
-Node: How can I maintain non-Lisp (e.g. C) source files?233148
|
|
5836 |
-Ref: report-bugs233580
|
|
5837 |
-Node: I want to put my module's files at the top level. How do I do this?233580
|
|
5838 |
-Node: How do I create a system definition where all the source files have a .cl extension?236730
|
|
5839 |
-Node: How do I mark a source file to be loaded only and not compiled?238703
|
|
5840 |
-Node: How do I work with readtables?239699
|
|
5841 |
-Node: How can I capture ASDF's output?243426
|
|
5842 |
-Node: ASDF development FAQs243857
|
|
5843 |
-Node: How do I run the tests interactively in a REPL?244096
|
|
5844 |
-Node: Ongoing Work245962
|
|
5845 |
-Node: Bibliography246241
|
|
5846 |
-Node: Concept Index249677
|
|
5847 |
-Node: Function and Class Index256539
|
|
5848 |
-Node: Variable Index268093
|
|
5803 |
+Node: Introduction7706
|
|
5804 |
+Node: Quick start summary10009
|
|
5805 |
+Node: Loading ASDF11716
|
|
5806 |
+Node: Loading a pre-installed ASDF12018
|
|
5807 |
+Ref: Loading a pre-installed ASDF-Footnote-113831
|
|
5808 |
+Node: Checking whether ASDF is loaded14013
|
|
5809 |
+Node: Upgrading ASDF14927
|
|
5810 |
+Node: Replacing your implementation's ASDF15915
|
|
5811 |
+Node: Loading ASDF from source17338
|
|
5812 |
+Node: Configuring ASDF18439
|
|
5813 |
+Node: Configuring ASDF to find your systems19212
|
|
5814 |
+Ref: Configuring ASDF to find your systems-Footnote-122517
|
|
5815 |
+Ref: Configuring ASDF to find your systems-Footnote-222764
|
|
5816 |
+Ref: Configuring ASDF to find your systems-Footnote-323046
|
|
5817 |
+Node: Configuring ASDF to find your systems --- old style23507
|
|
5818 |
+Ref: Configuring ASDF to find your systems --- old style-Footnote-125969
|
|
5819 |
+Ref: Configuring ASDF to find your systems --- old style-Footnote-226201
|
|
5820 |
+Ref: Configuring ASDF to find your systems --- old style-Footnote-326968
|
|
5821 |
+Node: Configuring where ASDF stores object files27124
|
|
5822 |
+Node: Resetting the ASDF configuration28527
|
|
5823 |
+Node: Using ASDF29584
|
|
5824 |
+Node: Loading a system29795
|
|
5825 |
+Node: Convenience Functions30812
|
|
5826 |
+Ref: Convenience Functions-Footnote-136172
|
|
5827 |
+Node: Moving on36250
|
|
5828 |
+Node: Defining systems with defsystem36621
|
|
5829 |
+Node: The defsystem form37049
|
|
5830 |
+Node: A more involved example40455
|
|
5831 |
+Ref: A more involved example-Footnote-147437
|
|
5832 |
+Node: The defsystem grammar48119
|
|
5833 |
+Ref: if-feature-option65617
|
|
5834 |
+Node: Other code in .asd files67160
|
|
5835 |
+Node: The package-inferred-system extension68296
|
|
5836 |
+Node: The object model of ASDF72563
|
|
5837 |
+Ref: The object model of ASDF-Footnote-174894
|
|
5838 |
+Ref: The object model of ASDF-Footnote-275246
|
|
5839 |
+Node: Operations75573
|
|
5840 |
+Ref: operate76678
|
|
5841 |
+Ref: make-operation79414
|
|
5842 |
+Node: Predefined operations of ASDF79835
|
|
5843 |
+Ref: test-op81949
|
|
5844 |
+Node: Creating new operations89838
|
|
5845 |
+Node: Components95051
|
|
5846 |
+Ref: System names98535
|
|
5847 |
+Ref: Components-Footnote-1103207
|
|
5848 |
+Ref: Components-Footnote-2103503
|
|
5849 |
+Node: Common attributes of components103825
|
|
5850 |
+Ref: required-features105387
|
|
5851 |
+Node: Pre-defined subclasses of component111234
|
|
5852 |
+Node: Creating new component types113668
|
|
5853 |
+Node: Dependencies114958
|
|
5854 |
+Node: Functions116829
|
|
5855 |
+Node: Controlling where ASDF searches for systems118663
|
|
5856 |
+Node: Configurations119285
|
|
5857 |
+Node: Truenames and other dangers122760
|
|
5858 |
+Node: XDG base directory124046
|
|
5859 |
+Node: Backward Compatibility125460
|
|
5860 |
+Node: Configuration DSL126176
|
|
5861 |
+Node: Configuration Directories131731
|
|
5862 |
+Node: The here directive133558
|
|
5863 |
+Node: Shell-friendly syntax for configuration135451
|
|
5864 |
+Node: Search Algorithm136468
|
|
5865 |
+Node: Caching Results137969
|
|
5866 |
+Node: Configuration API141213
|
|
5867 |
+Node: Introspection143252
|
|
5868 |
+Node: *source-registry-parameter* variable143516
|
|
5869 |
+Node: Information about system dependencies144085
|
|
5870 |
+Node: Status145001
|
|
5871 |
+Node: Rejected ideas145456
|
|
5872 |
+Node: TODO147837
|
|
5873 |
+Node: Credits for the source-registry148022
|
|
5874 |
+Node: Controlling where ASDF saves compiled files148557
|
|
5875 |
+Ref: Controlling where ASDF saves compiled files-Footnote-1149969
|
|
5876 |
+Node: Output Configurations150013
|
|
5877 |
+Ref: Output Configurations-Footnote-1152874
|
|
5878 |
+Node: Output Backward Compatibility152940
|
|
5879 |
+Node: Output Configuration DSL155666
|
|
5880 |
+Node: Output Configuration Directories161121
|
|
5881 |
+Node: Output Shell-friendly syntax for configuration162678
|
|
5882 |
+Node: Semantics of Output Translations164197
|
|
5883 |
+Node: Output Caching Results165766
|
|
5884 |
+Node: Output location API166246
|
|
5885 |
+Node: Credits for output translations168668
|
|
5886 |
+Node: Error handling169188
|
|
5887 |
+Node: Miscellaneous additional functionality170029
|
|
5888 |
+Node: Controlling file compilation170501
|
|
5889 |
+Node: Controlling source file character encoding173767
|
|
5890 |
+Node: Miscellaneous Functions180584
|
|
5891 |
+Ref: system-relative-pathname180881
|
|
5892 |
+Ref: Miscellaneous Functions-Footnote-1187328
|
|
5893 |
+Node: Some Utility Functions187439
|
|
5894 |
+Node: Getting the latest version198217
|
|
5895 |
+Node: FAQ199162
|
|
5896 |
+Node: Where do I report a bug?199557
|
|
5897 |
+Node: Mailing list199922
|
|
5898 |
+Node: What has changed between ASDF 1 ASDF 2 and ASDF 3?200257
|
|
5899 |
+Node: What are ASDF 1 2 3?202431
|
|
5900 |
+Node: How do I detect the ASDF version?203472
|
|
5901 |
+Node: ASDF can portably name files in subdirectories205779
|
|
5902 |
+Node: Output translations207329
|
|
5903 |
+Node: Source Registry Configuration208356
|
|
5904 |
+Node: Usual operations are made easier to the user209983
|
|
5905 |
+Node: Many bugs have been fixed210569
|
|
5906 |
+Node: ASDF itself is versioned212401
|
|
5907 |
+Node: ASDF can be upgraded213276
|
|
5908 |
+Node: Decoupled release cycle214428
|
|
5909 |
+Node: Pitfalls of the transition to ASDF 2215357
|
|
5910 |
+Node: Pitfalls of the upgrade to ASDF 3219627
|
|
5911 |
+Ref: Pitfalls of the upgrade to ASDF 3-Footnote-1223996
|
|
5912 |
+Node: What happened to the bundle operations224166
|
|
5913 |
+Node: Issues with installing the proper version of ASDF225331
|
|
5914 |
+Node: My Common Lisp implementation comes with an outdated version of ASDF. What to do?225802
|
|
5915 |
+Node: I'm a Common Lisp implementation vendor. When and how should I upgrade ASDF?226735
|
|
5916 |
+Node: Issues with configuring ASDF230618
|
|
5917 |
+Node: How can I customize where fasl files are stored?230993
|
|
5918 |
+Node: How can I wholly disable the compiler output cache?232086
|
|
5919 |
+Node: Issues with using and extending ASDF to define systems233465
|
|
5920 |
+Node: How can I cater for unit-testing in my system?234262
|
|
5921 |
+Node: How can I cater for documentation generation in my system?235150
|
|
5922 |
+Node: How can I maintain non-Lisp (e.g. C) source files?235671
|
|
5923 |
+Ref: report-bugs236103
|
|
5924 |
+Node: I want to put my module's files at the top level. How do I do this?236103
|
|
5925 |
+Node: How do I create a system definition where all the source files have a .cl extension?239253
|
|
5926 |
+Node: How do I mark a source file to be loaded only and not compiled?241226
|
|
5927 |
+Node: How do I work with readtables?242222
|
|
5928 |
+Node: How can I capture ASDF's output?245949
|
|
5929 |
+Node: LOAD-PATHNAME has a weird value246420
|
|
5930 |
+Node: ASDF development FAQs247906
|
|
5931 |
+Node: How do I run the tests interactively in a REPL?248145
|
|
5932 |
+Node: Ongoing Work250011
|
|
5933 |
+Node: Bibliography250290
|
|
5934 |
+Node: Concept Index253761
|
|
5935 |
+Node: Function and Class Index260620
|
|
5936 |
+Node: Variable Index272394
|
|
5849 | 5937 |
|
5850 | 5938 |
End Tag Table
|
No preview for this file type
... | ... | @@ -22,6 +22,7 @@ New in this release: |
22 | 22 |
* Feature enhancements
|
23 | 23 |
|
24 | 24 |
* Changes
|
25 |
+ * ASDF 3.2.0
|
|
25 | 26 |
|
26 | 27 |
* ANSI compliance fixes:
|
27 | 28 |
|