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

141 lines
6.5 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- This manual describes ASDF, a system definition facility
for Common Lisp programs and libraries.
You can find the latest version of this manual at
https://common-lisp.net/project/asdf/asdf.html.
ASDF Copyright (C) 2001-2019 Daniel Barlow and contributors.
This manual Copyright (C) 2001-2019 Daniel Barlow and contributors.
This manual revised (C) 2009-2019 Robert P. Goldman and Francois-Rene Rideau.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-->
<title>Rejected ideas (ASDF Manual)</title>
<meta name="description" content="Rejected ideas (ASDF Manual)">
<meta name="keywords" content="Rejected ideas (ASDF Manual)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link href="index.html" rel="start" title="Top">
<link href="Concept-Index.html" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Controlling-where-ASDF-searches-for-systems.html" rel="up" title="Controlling where ASDF searches for systems">
<link href="TODO.html" rel="next" title="TODO">
<link href="Status.html" rel="prev" title="Status">
<style type="text/css">
<!--
a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
span:hover a.copiable-anchor {visibility: visible}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<div class="section" id="Rejected-ideas">
<div class="header">
<p>
Next: <a href="TODO.html" accesskey="n" rel="next">TODO</a>, Previous: <a href="Status.html" accesskey="p" rel="prev">Status</a>, Up: <a href="Controlling-where-ASDF-searches-for-systems.html" accesskey="u" rel="up">Controlling where ASDF searches for systems</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<span id="Rejected-ideas-1"></span><h3 class="section">8.13 Rejected ideas</h3>
<p>Alternatives I (FRR) considered and rejected while developing ASDF 2 included:
</p>
<ol>
<li> Keep <code>asdf:*central-registry*</code> as the master with its current semantics,
and somehow the configuration parser expands the new configuration
language into a expanded series of directories of subdirectories to
lookup, pre-recursing through specified hierarchies. This is kludgy,
and leaves little space of future cleanups and extensions.
</li><li> Keep <code>asdf:*central-registry*</code> as the master but extend its semantics
in completely new ways, so that new kinds of entries may be implemented
as a recursive search, etc. This seems somewhat backwards.
</li><li> Completely remove <code>asdf:*central-registry*</code>
and break backwards compatibility.
Hopefully this will happen in a few years after everyone migrate to
a better ASDF and/or to XCVB, but it would be very bad to do it now.
</li><li> Replace <code>asdf:*central-registry*</code> by a symbol-macro with appropriate magic
when you dereference it or setf it. Only the new variable with new
semantics is handled by the new search procedure.
Complex and still introduces subtle semantic issues.
</li></ol>
<p>I&rsquo;ve been suggested the below features, but have rejected them,
for the sake of keeping ASDF no more complex than strictly necessary.
</p>
<ul>
<li> More syntactic sugar: synonyms for the configuration directives, such as
<code>(:add-directory X)</code> for <code>(:directory X)</code>, or <code>(:add-directory-hierarchy X)</code>
or <code>(:add-directory X :recurse t)</code> for <code>(:tree X)</code>.
</li><li> The possibility to register individual files instead of directories.
</li><li> Integrate Xach Beane&rsquo;s tilde expander into the parser,
or something similar that is shell-friendly or shell-compatible.
I&rsquo;d rather keep ASDF minimal. But maybe this precisely keeps it
minimal by removing the need for evaluated entries that ASDF has?
i.e. uses of <code>USER-HOMEDIR-PATHNAME</code> and <code>$SBCL_HOME</code>
Hopefully, these are already superseded by the <code>:default-registry</code>
</li><li> Using the shell-unfriendly syntax <code>/**</code> instead of TEXINPUTS-like <code>//</code> to specify recursion
down a filesystem tree in the environment variable.
It isn&rsquo;t that Lisp friendly either.
</li></ul>
</div>
<hr>
<div class="header">
<p>
Next: <a href="TODO.html">TODO</a>, Previous: <a href="Status.html">Status</a>, Up: <a href="Controlling-where-ASDF-searches-for-systems.html">Controlling where ASDF searches for systems</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>