Raymond Toy pushed to branch master at cmucl / cmucl

Commits:

5 changed files:

Changes:

  • src/contrib/asdf/asdf.lisp The diff for this file was not included because it is too large.
  • src/contrib/asdf/doc/asdf.html
    ... ... @@ -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&rsquo;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 &copy; 2001-2015 Daniel Barlow and contributors.
    
    288
    +<p>ASDF Copyright &copy; 2001-2016 Daniel Barlow and contributors.
    
    288 289
     </p>
    
    289
    -<p>This manual Copyright &copy; 2001-2015 Daniel Barlow and contributors.
    
    290
    +<p>This manual Copyright &copy; 2001-2016 Daniel Barlow and contributors.
    
    290 291
     </p>
    
    291
    -<p>This manual revised &copy; 2009-2015 Robert P. Goldman and Francois-Rene Rideau.
    
    292
    +<p>This manual revised &copy; 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&rsquo;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 &quot;asdf&quot;)
    
    ... ... @@ -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 &amp;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&rsquo;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&rsquo;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> &amp;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&quot;/current/path/to/foo.asd&quot;</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&rsquo;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&rsquo;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>&quot;/foo:/bar::/baz:&quot;</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>&quot;/foo:/bar::/baz:&quot;</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 &amp;rest keys</em></dt>
    
    4482
    +<dt><a name="index-register_002dpreloaded_002dsystem"></a>Function: <strong>register-preloaded-system</strong> <em>name &amp;rest keys &amp;key version &amp;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&rsquo;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 &amp;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&rsquo;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 &amp;key type defaults dot-dot ensure-directory &amp;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
       &ldquo;Evolving ASDF: More Cooperation, Less Coordination&rdquo;, 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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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
     &ldquo;system directory designators&rdquo;.
    
    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 &ldquo;directory&rdquo;, we mean
    
    6366 6451
     &ldquo;designator for a pathname with a non-empty DIRECTORY component&rdquo;.
    
    6367 6452
     </p>
    

  • src/contrib/asdf/doc/asdf.info
    ... ... @@ -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

  • src/contrib/asdf/doc/asdf.pdf
    No preview for this file type
  • src/general-info/release-21c.txt
    ... ... @@ -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