emacs.d/clones/lisp/www.cliki.net/Issue STANDARDIZED-RESTART-NAMES.html

85 lines
5.8 KiB
HTML
Raw Normal View History

2022-10-07 15:47:14 +02:00
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>CLiki: Issue STANDARDIZED-RESTART-NAMES</title>
<link rel="alternate" type="application/atom+xml" title="ATOM feed of edits to current article"
href="https://www.cliki.net/site/feed/article.atom?title=Issue%20STANDARDIZED-RESTART-NAMES">
<link rel="stylesheet" href="static/css/style.css">
<link rel="stylesheet" href="static/css/colorize.css">
</head>
<body>
<span class="hidden">CLiki - Issue STANDARDIZED-RESTART-NAMES</span>
<div id="content"><div id="content-area"><div id="article-title">Issue STANDARDIZED-RESTART-NAMES</div><div id="article"><a href="Issue.html" class="category">Issue</a>: STANDARDIZED-RESTART-NAMES<p>Forum: Editorial<p>References: <a href="https://www.cliki.net/site/HyperSpec/Body/mac_restart-bind.html" class="hyperspec">RESTART-BIND</a>, <a href="https://www.cliki.net/site/HyperSpec/Body/mac_restart-case.html" class="hyperspec">RESTART-CASE</a>, <a href="https://www.cliki.net/site/HyperSpec/Body/mac_with-simple-restart.html" class="hyperspec">WITH-SIMPLE-RESTART</a><p>Category: CLARIFICATION/CHANGE<p>Edit history: 2004-06-16, Version 1 by Christophe Rhodes<p>Status: For CLiki consideration<p><dl>
<dt>Problem Description:
</dt>
<dd>
In the restrictions on conforming programs, <a href="http://www.cliki.net/site/HyperSpec/Body/sec_11-1-2-1-2.html">section 11.1.2.1.2</a>, point 18, it is specified that except where specifically allowed, the consequences are undefined if any symbols in the Common Lisp package are bound as a restart name. However, no such permission is given anywhere, even for the standardized restart names; strictly, this means that the user is unable to participate in the protocols defined by those restarts portably, by binding those names where it makes semantic sense.<p></dd>
<dt>Proposal (STANDARDIZED-RESTART-NAMES:ALLOW-BINDING):
</dt>
<dd>
Explicitly allow binding the standardized restart names (<a href="https://www.cliki.net/site/HyperSpec/Body/any_abort.html" class="hyperspec">abort</a>, <a href="https://www.cliki.net/site/HyperSpec/Body/any_continue.html" class="hyperspec">continue</a>, <a href="https://www.cliki.net/site/HyperSpec/Body/any_muffle-warning.html" class="hyperspec">muffle-warning</a>, <a href="https://www.cliki.net/site/HyperSpec/Body/any_store-value.html" class="hyperspec">store-value</a> and <a href="https://www.cliki.net/site/HyperSpec/Body/any_use-value.html" class="hyperspec">use-value</a>) as restarts names by conforming code.<p></dd>
<dt>Test case:
</dt>
<dd>
</dd>
</dl><pre>
(defun read-eval-print-loop (level)
(with-simple-restart (abort &quot;Exit command level ~D.&quot; level)
(loop
(with-simple-restart (abort &quot;Return to command level ~D.&quot; level)
(let ((form (prog2 (fresh-line) (read) (fresh-line))))
(prin1 (eval form)))))))
</pre><p><dt>Rationale:
</dt><dd>
<tt>read-eval-print-loop</tt>, above, is an example from the ANSI standard; it was clearly intended that this should work.<p></dd><dt>Current practice:
</dt><dd>
The author knows of no implementation which is incompatible with proposal STANDARDIZED-RESTART-NAMES:ALLOW-BINDING.<p></dd><dt>Cost to Implementors:
</dt><dd>
Minimal.<p></dd><dt>Cost to Users:
</dt><dd>
None.<p></dd><dt>Cost of Non-Adoption:
</dt><dd>
Continued inability to participate in the protocols defined by the ANSI standard.<p></dd><dt>Benefits:
</dt><dd>
Enhanced portability of code, and enhanced ability of disparate programs to cooperate in protocols.<p></dd><dt>Aesthetics:
</dt><dd><p></dd><dt>Discussion:
</dt><dd><p></dd></div></div>
<div id="footer" class="buttonbar"><ul><li><a href="Issue&#32;STANDARDIZED-RESTART-NAMES.html">Current version</a></li>
<li><a href="https://www.cliki.net/site/history?article=Issue%20STANDARDIZED-RESTART-NAMES">History</a></li>
<li><a href="https://www.cliki.net/site/backlinks?article=Issue%20STANDARDIZED-RESTART-NAMES">Backlinks</a></li><li><a href="https://www.cliki.net/site/edit-article?title=Issue%20STANDARDIZED-RESTART-NAMES&amp;from-revision=3722762056">Edit</a></li><li><a href="https://www.cliki.net/site/edit-article?create=t">Create</a></li></ul></div>
</div>
<div id="header-buttons" class="buttonbar">
<ul>
<li><a href="https://www.cliki.net/">Home</a></li>
<li><a href="https://www.cliki.net/site/recent-changes">Recent Changes</a></li>
<li><a href="CLiki.html">About</a></li>
<li><a href="Text&#32;Formatting.html">Text Formatting</a></li>
<li><a href="https://www.cliki.net/site/tools">Tools</a></li>
</ul>
<div id="search">
<form action="https://www.cliki.net/site/search">
<label for="search_query" class="hidden">Search CLiki</label>
<input type="text" name="query" id="search_query" value="" />
<input type="submit" value="search" />
</form>
</div>
</div>
<div id="pageheader">
<div id="header">
<span id="logo">CLiki</span>
<span id="slogan">the common lisp wiki</span>
<div id="login"><form method="post" action="https://www.cliki.net/site/login">
<label for="login_name" class="hidden">Account name</label>
<input type="text" name="name" id="login_name" class="login_input" />
<label for= "login_password" class="hidden">Password</label>
<input type="password" name="password" id="login_password" class="login_input" />
<input type="submit" name="login" value="login" id="login_submit" /><br />
<div id="register"><a href="https://www.cliki.net/site/register">register</a></div>
<input type="submit" name="reset-pw" value="reset password" id="reset_pw" />
</form>
</div>
</div>
</div>
</body></html>