cmucl tagshttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags2023-09-01T14:18:13Zhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2023-08snapshot-2023-08Snapshot 2023-08<h1 data-sourcepos="1:1-1:18" dir="auto">
<a id="user-content-snapshot-2023-08" class="anchor" href="#snapshot-2023-08" aria-hidden="true"></a>Snapshot 2023-08</h1>
<p data-sourcepos="3:1-5:34" dir="auto">The CMUCL project is pleased to announce the release of CMUCL 21f.
This is a major release which contains numerous enhancements and bug
fixes from the release.</p>
<p data-sourcepos="7:1-16:14" dir="auto">CMUCL is a free, high performance implementation of the Common Lisp
programming language which runs on most major Unix platforms. It
mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
sophisticated native code compiler; a powerful foreign function
interface; an implementation of CLOS, the Common Lisp Object System,
which includes multi-methods and a meta-object protocol; a
source-level debugger and code profiler; and an Emacs-like editor
implemented in Common Lisp. CMUCL is maintained by a team of
volunteers collaborating over the Internet, and is mostly in the
public domain.</p>
<h2 data-sourcepos="18:1-18:23" dir="auto">
<a id="user-content-new-in-this-release" class="anchor" href="#new-in-this-release" aria-hidden="true"></a>New in this release:</h2>
<ul data-sourcepos="19:3-40:0" dir="auto">
<li data-sourcepos="19:3-19:17">Known issues:</li>
<li data-sourcepos="20:3-20:25">Feature enhancements:</li>
<li data-sourcepos="21:3-21:12">Changes:</li>
<li data-sourcepos="22:3-22:26">ANSI compliance fixes:</li>
<li data-sourcepos="23:3-23:14">Bug fixes:</li>
<li data-sourcepos="24:3-36:56">Gitlab tickets:
<ul data-sourcepos="25:5-36:56">
<li data-sourcepos="25:5-25:57">
<del data-sourcepos="25:7-25:14"><a href="/cmucl/cmucl/-/issues/154" data-reference-type="issue" data-original="#154" data-link="false" data-link-reference="false" data-project="202" data-issue="1041" data-project-path="cmucl/cmucl" data-iid="154" data-issue-type="issue" data-container="body" data-placement="top" title="Piglatin translaton doesn't work anymore" class="gfm gfm-issue">#154</a></del> piglatin translation does not work anymore</li>
<li data-sourcepos="26:2-26:61">
<del data-sourcepos="26:4-26:11"><a href="/cmucl/cmucl/-/issues/171" data-reference-type="issue" data-original="#171" data-link="false" data-link-reference="false" data-project="202" data-issue="1073" data-project-path="cmucl/cmucl" data-iid="171" data-issue-type="issue" data-container="body" data-placement="top" title="(make-pathname :name :unspecific) isn't printed readably." class="gfm gfm-issue">#171</a></del> Readably print <code data-sourcepos="26:29-26:60">(make-pathname :name :unspecfic)</code>
</li>
<li data-sourcepos="27:5-27:70">
<del data-sourcepos="27:7-27:14"><a href="/cmucl/cmucl/-/issues/196" data-reference-type="issue" data-original="#196" data-link="false" data-link-reference="false" data-project="202" data-issue="1117" data-project-path="cmucl/cmucl" data-iid="196" data-issue-type="issue" data-container="body" data-placement="top" title="MAPCAN/MAPCON Edge cases" class="gfm gfm-issue">#196</a></del> Fix issues with mapping and nconc accumulation (mapcan)</li>
<li data-sourcepos="28:5-28:63">
<del data-sourcepos="28:7-28:14"><a href="/cmucl/cmucl/-/issues/216" data-reference-type="issue" data-original="#216" data-link="false" data-link-reference="false" data-project="202" data-issue="1137" data-project-path="cmucl/cmucl" data-iid="216" data-issue-type="issue" data-container="body" data-placement="top" title="Trac 88: enough-namestring" class="gfm gfm-issue">#216</a></del> <code data-sourcepos="28:17-28:33">enough-namestring</code> with relative pathname fails</li>
<li data-sourcepos="29:5-29:50">
<del data-sourcepos="29:7-29:14"><a href="/cmucl/cmucl/-/issues/234" data-reference-type="issue" data-original="#234" data-link="false" data-link-reference="false" data-project="202" data-issue="1167" data-project-path="cmucl/cmucl" data-iid="234" data-issue-type="issue" data-container="body" data-placement="top" title="Make ASCII external format builtin?" class="gfm gfm-issue">#234</a></del> Make :ASCII external format builtin</li>
<li data-sourcepos="30:5-30:38">
<del data-sourcepos="30:7-30:14"><a href="/cmucl/cmucl/-/issues/240" data-reference-type="issue" data-original="#240" data-link="false" data-link-reference="false" data-project="202" data-issue="1173" data-project-path="cmucl/cmucl" data-iid="240" data-issue-type="issue" data-container="body" data-placement="top" title="set-difference and friends are somewhat slow" class="gfm gfm-issue">#240</a></del> Speed up set operations</li>
<li data-sourcepos="31:5-31:75">
<del data-sourcepos="31:7-31:14"><a href="/cmucl/cmucl/-/issues/242" data-reference-type="issue" data-original="#242" data-link="false" data-link-reference="false" data-project="202" data-issue="1176" data-project-path="cmucl/cmucl" data-iid="242" data-issue-type="issue" data-container="body" data-placement="top" title="Bug in alien-funcall with c-call:char as a result type" class="gfm gfm-issue">#242</a></del> Fix bug in <code data-sourcepos="31:28-31:40">alien-funcall</code> with <code data-sourcepos="31:49-31:59">c-call:char</code> as result type</li>
<li data-sourcepos="32:5-32:39">
<del data-sourcepos="32:7-32:14"><a href="/cmucl/cmucl/-/issues/244" data-reference-type="issue" data-original="#244" data-link="false" data-link-reference="false" data-project="202" data-issue="1181" data-project-path="cmucl/cmucl" data-iid="244" data-issue-type="issue" data-container="body" data-placement="top" title="Add c-call:signed-char" class="gfm gfm-issue">#244</a></del> Add <code data-sourcepos="32:21-32:38">c-call:signed-char</code>
</li>
<li data-sourcepos="33:5-33:55">
<del data-sourcepos="33:7-33:14"><a href="/cmucl/cmucl/-/issues/248" data-reference-type="issue" data-original="#248" data-link="false" data-link-reference="false" data-project="202" data-issue="1193" data-project-path="cmucl/cmucl" data-iid="248" data-issue-type="issue" data-container="body" data-placement="top" title="Funny disassembly with capital D" class="gfm gfm-issue">#248</a></del> Print MOVS instruction with correct case</li>
<li data-sourcepos="34:5-34:99">
<del data-sourcepos="34:7-34:14"><a href="/cmucl/cmucl/-/issues/249" data-reference-type="issue" data-original="#249" data-link="false" data-link-reference="false" data-project="202" data-issue="1194" data-project-path="cmucl/cmucl" data-iid="249" data-issue-type="issue" data-container="body" data-placement="top" title="Replace (some) uses of LEA instruction with appopriate MOV/SHL" class="gfm gfm-issue">#249</a></del> Replace LEA instruction with simpler shorter instructions in arithmetic vops for x86</li>
<li data-sourcepos="35:5-35:58">
<del data-sourcepos="35:7-35:14"><a href="/cmucl/cmucl/-/issues/253" data-reference-type="issue" data-original="#253" data-link="false" data-link-reference="false" data-project="202" data-issue="1295" data-project-path="cmucl/cmucl" data-iid="253" data-issue-type="issue" data-container="body" data-placement="top" title="Consider using block compilation (start-block) for list-to-hashtable and callers" class="gfm gfm-issue">#253</a></del> Block-compile list-to-hashtable and callers</li>
<li data-sourcepos="36:5-36:56">
<del data-sourcepos="36:7-36:14"><a href="/cmucl/cmucl/-/issues/258" data-reference-type="issue" data-original="#258" data-link="false" data-link-reference="false" data-project="202" data-issue="1305" data-project-path="cmucl/cmucl" data-iid="258" data-issue-type="issue" data-container="body" data-placement="top" title="linux-os.lisp calls unix:unix-getpagesize" class="gfm gfm-issue">#258</a></del> Remove <code data-sourcepos="36:24-36:36">get-page-size</code> from linux-os.lisp</li>
</ul>
</li>
<li data-sourcepos="37:3-37:18">Other changes:</li>
<li data-sourcepos="38:3-38:51">Improvements to the PCL implementation of CLOS:</li>
<li data-sourcepos="39:3-40:0">Changes to building procedure:</li>
</ul>
<p data-sourcepos="41:1-42:43" dir="auto">This release is not binary compatible with code compiled using CMUCL
21e; you will need to recompile FASL files.</p>
<p data-sourcepos="44:1-48:53" dir="auto">See <a href="http://www.cmucl.org" rel="nofollow noreferrer noopener" target="_blank">http://www.cmucl.org</a> or
<a href="https://gitlab.common-lisp.net/cmucl/cmucl">https://gitlab.common-lisp.net/cmucl/cmucl</a> for more information,
See
<a href="https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl">https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl</a>
for obtaining CMUCL, including sources and binaries..</p>
<p data-sourcepos="51:1-51:46" dir="auto">We hope you enjoy using this release of CMUCL!</p>2023-09-01T14:18:13ZRaymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/21e21eRelease 21e<h1 data-sourcepos="1:1-1:11" dir="auto">
<a id="user-content-cmucl-21e" class="anchor" href="#cmucl-21e" aria-hidden="true"></a>CMUCL 21e</h1>
<p data-sourcepos="3:1-5:27" dir="auto">The CMUCL project is pleased to announce the release of CMUCL 21e.
This is a major release which contains numerous enhancements and bug
fixes from the 21d release.</p>
<p data-sourcepos="7:1-16:14" dir="auto">CMUCL is a free, high performance implementation of the Common Lisp
programming language which runs on most major Unix platforms. It
mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
sophisticated native code compiler; a powerful foreign function
interface; an implementation of CLOS, the Common Lisp Object System,
which includes multi-methods and a meta-object protocol; a
source-level debugger and code profiler; and an Emacs-like editor
implemented in Common Lisp. CMUCL is maintained by a team of
volunteers collaborating over the Internet, and is mostly in the
public domain.</p>
<h2 data-sourcepos="18:1-18:23" dir="auto">
<a id="user-content-new-in-this-release" class="anchor" href="#new-in-this-release" aria-hidden="true"></a>New in this release:</h2>
<ul data-sourcepos="19:3-91:0" dir="auto">
<li data-sourcepos="19:3-19:17">
<p data-sourcepos="19:5-19:17">Known issues:</p>
</li>
<li data-sourcepos="20:3-20:24">
<p data-sourcepos="20:5-20:24">Feature enhancements</p>
</li>
<li data-sourcepos="21:3-23:70">
<p data-sourcepos="21:5-21:11">Changes</p>
<ul data-sourcepos="22:5-23:70">
<li data-sourcepos="22:5-22:26">Update to ASDF 3.3.6</li>
<li data-sourcepos="23:5-23:70">The default external format is <code data-sourcepos="23:39-23:44">:utf-8</code> instead of <code data-sourcepos="23:59-23:68">:iso8859-1</code>.</li>
</ul>
</li>
<li data-sourcepos="24:3-24:26">
<p data-sourcepos="24:5-24:26">ANSI compliance fixes:</p>
</li>
<li data-sourcepos="25:3-27:0">
<p data-sourcepos="25:5-25:14">Bug fixes:</p>
<ul data-sourcepos="26:5-27:0">
<li data-sourcepos="26:5-27:0">
<del data-sourcepos="26:7-26:13"><a href="/cmucl/cmucl/-/issues/97" data-reference-type="issue" data-original="#97" data-link="false" data-link-reference="false" data-project="202" data-issue="701" data-project-path="cmucl/cmucl" data-iid="97" data-issue-type="issue" data-container="body" data-placement="top" title="Define and use ud2 instruction instead of int3" class="gfm gfm-issue">#97</a></del> Fixes stepping through the source forms in the debugger. This has been broken for quite some time, but it works now.</li>
</ul>
</li>
<li data-sourcepos="28:3-87:97">
<p data-sourcepos="28:5-28:19">Gitlab tickets:</p>
<ul data-sourcepos="29:5-87:97">
<li data-sourcepos="29:5-29:82">
<del data-sourcepos="29:7-29:13"><a href="/cmucl/cmucl/-/issues/68" data-reference-type="issue" data-original="#68" data-link="false" data-link-reference="false" data-project="202" data-issue="405" data-project-path="cmucl/cmucl" data-iid="68" data-issue-type="issue" data-container="body" data-placement="top" title="Can't build with Fedora 28 and gcc 8.1.1" class="gfm gfm-issue">#68</a></del> gcc8.1.1 can't build lisp. Change optimization from <code data-sourcepos="29:69-29:71">-O2</code> to <code data-sourcepos="29:78-29:80">-O1</code>.</li>
<li data-sourcepos="30:5-30:53">
<del data-sourcepos="30:7-30:13"><a href="/cmucl/cmucl/-/issues/72" data-reference-type="issue" data-original="#72" data-link="false" data-link-reference="false" data-project="202" data-issue="454" data-project-path="cmucl/cmucl" data-iid="72" data-issue-type="issue" data-container="body" data-placement="top" title="Can't generate pdf for cmu-user manual" class="gfm gfm-issue">#72</a></del> CMU user manual now part of cmucl-site.</li>
<li data-sourcepos="31:5-31:43">
<del data-sourcepos="31:7-31:13"><a href="/cmucl/cmucl/-/issues/73" data-reference-type="issue" data-original="#73" data-link="false" data-link-reference="false" data-project="202" data-issue="455" data-project-path="cmucl/cmucl" data-iid="73" data-issue-type="issue" data-container="body" data-placement="top" title="Update clx to upstream sharplispers/clx" class="gfm gfm-issue">#73</a></del> Update clx from upstream clx.</li>
<li data-sourcepos="32:5-32:58">
<del data-sourcepos="32:7-32:13"><a href="/cmucl/cmucl/-/issues/77" data-reference-type="issue" data-original="#77" data-link="false" data-link-reference="false" data-project="202" data-issue="548" data-project-path="cmucl/cmucl" data-iid="77" data-issue-type="issue" data-container="body" data-placement="top" title="sqrt incorrect for exceptional values?" class="gfm gfm-issue">#77</a></del> Added tests for sqrt for exceptional values.</li>
<li data-sourcepos="33:5-33:122">
<del data-sourcepos="33:7-33:13"><a href="/cmucl/cmucl/-/issues/79" data-reference-type="issue" data-original="#79" data-link="false" data-link-reference="false" data-project="202" data-issue="562" data-project-path="cmucl/cmucl" data-iid="79" data-issue-type="issue" data-container="body" data-placement="top" title="Autoload asdf with require" class="gfm gfm-issue">#79</a></del> Autoload ASDF when calling <code data-sourcepos="33:43-33:49">REQUIRE</code> the first time. User's no longer have to explicitly load ASDF anymore.</li>
<li data-sourcepos="34:5-34:225">
<del data-sourcepos="34:7-34:13"><a href="/cmucl/cmucl/-/issues/80" data-reference-type="issue" data-original="#80" data-link="false" data-link-reference="false" data-project="202" data-issue="563" data-project-path="cmucl/cmucl" data-iid="80" data-issue-type="issue" data-container="body" data-placement="top" title="Simplify loading of contribs" class="gfm gfm-issue">#80</a></del> Use ASDF to load contribs. cmu-contribs still exists but does nothing. The contrib names are the same, except it's best to use a keyword instead of a string. So, <code data-sourcepos="34:181-34:194">:contrib-demos</code> instead of <code data-sourcepos="34:209-34:223">"contrib-demos"</code>.</li>
<li data-sourcepos="35:5-35:47">
<del data-sourcepos="35:7-35:13"><a href="/cmucl/cmucl/-/issues/81" data-reference-type="issue" data-original="#81" data-link="false" data-link-reference="false" data-project="202" data-issue="570" data-project-path="cmucl/cmucl" data-iid="81" data-issue-type="issue" data-container="body" data-placement="top" title="Add contribs from Eric Marsden" class="gfm gfm-issue">#81</a></del> Added contribs from Eric Marsden.</li>
<li data-sourcepos="36:5-36:50">
<del data-sourcepos="36:7-36:13"><a href="/cmucl/cmucl/-/issues/82" data-reference-type="issue" data-original="#82" data-link="false" data-link-reference="false" data-project="202" data-issue="575" data-project-path="cmucl/cmucl" data-iid="82" data-issue-type="issue" data-container="body" data-placement="top" title="Replace bc" class="gfm gfm-issue">#82</a></del> Replace bc with expr in GNUMakefile.</li>
<li data-sourcepos="37:5-37:78">
<del data-sourcepos="37:7-37:13"><a href="/cmucl/cmucl/-/issues/86" data-reference-type="issue" data-original="#86" data-link="false" data-link-reference="false" data-project="202" data-issue="624" data-project-path="cmucl/cmucl" data-iid="86" data-issue-type="issue" data-container="body" data-placement="top" title="Fix building with gcc 8 and later" class="gfm gfm-issue">#86</a></del> Building with gcc 8 and later works when using -O2 optimization.</li>
<li data-sourcepos="38:5-38:122">
<del data-sourcepos="38:7-38:13"><a href="/cmucl/cmucl/-/issues/90" data-reference-type="issue" data-original="#90" data-link="false" data-link-reference="false" data-project="202" data-issue="691" data-project-path="cmucl/cmucl" data-iid="90" data-issue-type="issue" data-container="body" data-placement="top" title="Cleanup unused static symbols" class="gfm gfm-issue">#90</a></del> Some static symbols have been removed. This probably makes the fasl files incompatible with older versions.</li>
<li data-sourcepos="39:5-39:72">
<del data-sourcepos="39:7-39:13"><a href="/cmucl/cmucl/-/issues/91" data-reference-type="issue" data-original="#91" data-link="false" data-link-reference="false" data-project="202" data-issue="693" data-project-path="cmucl/cmucl" data-iid="91" data-issue-type="issue" data-container="body" data-placement="top" title="LOOP destructuring incorrectly signals error" class="gfm gfm-issue">#91</a></del> Loop destructuring no longer incorrectly signals an error.</li>
<li data-sourcepos="40:5-40:67">
<del data-sourcepos="40:7-40:13"><a href="/cmucl/cmucl/-/issues/95" data-reference-type="issue" data-original="#95" data-link="false" data-link-reference="false" data-project="202" data-issue="699" data-project-path="cmucl/cmucl" data-iid="95" data-issue-type="issue" data-container="body" data-placement="top" title="Disassembler syntax wrong for je and movzx" class="gfm gfm-issue">#95</a></del> Disassembler syntax of x86 je and movzx is incorrect.</li>
<li data-sourcepos="41:5-41:85">
<del data-sourcepos="41:7-41:13"><a href="/cmucl/cmucl/-/issues/97" data-reference-type="issue" data-original="#97" data-link="false" data-link-reference="false" data-project="202" data-issue="701" data-project-path="cmucl/cmucl" data-iid="97" data-issue-type="issue" data-container="body" data-placement="top" title="Define and use ud2 instruction instead of int3" class="gfm gfm-issue">#97</a></del> Define and use ud2 instruction instead of int3. Fixes single-stepping.</li>
<li data-sourcepos="42:5-42:88">
<del data-sourcepos="42:7-42:13"><a href="/cmucl/cmucl/-/issues/98" data-reference-type="issue" data-original="#98" data-link="false" data-link-reference="false" data-project="202" data-issue="702" data-project-path="cmucl/cmucl" data-iid="98" data-issue-type="issue" data-container="body" data-placement="top" title="fstpd is not an actual intel instruction" class="gfm gfm-issue">#98</a></del> fstpd is not an Intel instruction; disassemble as <code data-sourcepos="42:66-42:86">fstp dword ptr [addr]</code>.</li>
<li data-sourcepos="43:5-43:90">
<del data-sourcepos="43:7-43:14"><a href="/cmucl/cmucl/-/issues/100" data-reference-type="issue" data-original="#100" data-link="false" data-link-reference="false" data-project="202" data-issue="707" data-project-path="cmucl/cmucl" data-iid="100" data-issue-type="issue" data-container="body" data-placement="top" title="ldb doesn't print out base-chars correctly." class="gfm gfm-issue">#100</a></del> ldb prints out Unicode base-chars correctly instead of just the low 8 bits.</li>
<li data-sourcepos="44:5-44:67">
<del data-sourcepos="44:7-44:14"><a href="/cmucl/cmucl/-/issues/103" data-reference-type="issue" data-original="#103" data-link="false" data-link-reference="false" data-project="202" data-issue="712" data-project-path="cmucl/cmucl" data-iid="103" data-issue-type="issue" data-container="body" data-placement="top" title="RANDOM-MT19937-UPDATE assembly routine still exists" class="gfm gfm-issue">#103</a></del> RANDOM-MT19937-UPDATE assembly routine still exists.</li>
<li data-sourcepos="45:5-45:54">
<del data-sourcepos="45:7-45:14"><a href="/cmucl/cmucl/-/issues/104" data-reference-type="issue" data-original="#104" data-link="false" data-link-reference="false" data-project="202" data-issue="734" data-project-path="cmucl/cmucl" data-iid="104" data-issue-type="issue" data-container="body" data-placement="top" title="Single stepping broken" class="gfm gfm-issue">#104</a></del> Single-stepping broken (fixed via <a href="/cmucl/cmucl/-/issues/97" data-reference-type="issue" data-original="#97" data-link="false" data-link-reference="false" data-project="202" data-issue="701" data-project-path="cmucl/cmucl" data-iid="97" data-issue-type="issue" data-container="body" data-placement="top" title="Define and use ud2 instruction instead of int3" class="gfm gfm-issue">#97</a>).</li>
<li data-sourcepos="46:5-46:45">
<del data-sourcepos="46:7-46:14"><a href="/cmucl/cmucl/-/issues/107" data-reference-type="issue" data-original="#107" data-link="false" data-link-reference="false" data-project="202" data-issue="747" data-project-path="cmucl/cmucl" data-iid="107" data-issue-type="issue" data-container="body" data-placement="top" title="Replace u_int8_t with uint8_t" class="gfm gfm-issue">#107</a></del> Replace u_int8_t with uint8_t.</li>
<li data-sourcepos="47:5-47:27">
<del data-sourcepos="47:7-47:14"><a href="/cmucl/cmucl/-/issues/108" data-reference-type="issue" data-original="#108" data-link="false" data-link-reference="false" data-project="202" data-issue="766" data-project-path="cmucl/cmucl" data-iid="108" data-issue-type="issue" data-container="body" data-placement="top" title="Update asdf" class="gfm gfm-issue">#108</a></del> Update ASDF.</li>
<li data-sourcepos="48:5-48:62">
<del data-sourcepos="48:7-48:14"><a href="/cmucl/cmucl/-/issues/112" data-reference-type="issue" data-original="#112" data-link="false" data-link-reference="false" data-project="202" data-issue="784" data-project-path="cmucl/cmucl" data-iid="112" data-issue-type="issue" data-container="body" data-placement="top" title="CLX can't connect to an X server via inet sockets since about 2018-02" class="gfm gfm-issue">#112</a></del> CLX can't connect to X server via inet sockets.</li>
<li data-sourcepos="49:5-49:73">
<del data-sourcepos="49:7-49:14"><a href="/cmucl/cmucl/-/issues/113" data-reference-type="issue" data-original="#113" data-link="false" data-link-reference="false" data-project="202" data-issue="785" data-project-path="cmucl/cmucl" data-iid="113" data-issue-type="issue" data-container="body" data-placement="top" title="REQUIRE on contribs can pull in the wrong things via ASDF" class="gfm gfm-issue">#113</a></del> REQUIRE on contribs can pull in the wrong things via ASDF.</li>
<li data-sourcepos="50:5-50:54">
<del data-sourcepos="50:7-50:14"><a href="/cmucl/cmucl/-/issues/120" data-reference-type="issue" data-original="#120" data-link="false" data-link-reference="false" data-project="202" data-issue="837" data-project-path="cmucl/cmucl" data-iid="120" data-issue-type="issue" data-container="body" data-placement="top" title="software-version derived from uname -r" class="gfm gfm-issue">#120</a></del> <code data-sourcepos="50:17-50:32">SOFTWARE-VERSION</code> is implemented in C.</li>
<li data-sourcepos="51:5-51:63">
<del data-sourcepos="51:7-51:14"><a href="/cmucl/cmucl/-/issues/121" data-reference-type="issue" data-original="#121" data-link="false" data-link-reference="false" data-project="202" data-issue="844" data-project-path="cmucl/cmucl" data-iid="121" data-issue-type="issue" data-container="body" data-placement="top" title="wrong column index in FILL-POINTER-OUTPUT-STREAM" class="gfm gfm-issue">#121</a></del> Wrong column index in FILL-POINTER-OUTPUT-STREAM</li>
<li data-sourcepos="52:5-52:39">
<del data-sourcepos="52:7-52:14"><a href="/cmucl/cmucl/-/issues/122" data-reference-type="issue" data-original="#122" data-link="false" data-link-reference="false" data-project="202" data-issue="895" data-project-path="cmucl/cmucl" data-iid="122" data-issue-type="issue" data-container="body" data-placement="top" title="gcc 11 can't build cmucl." class="gfm gfm-issue">#122</a></del> gcc 11 can't build cmucl</li>
<li data-sourcepos="53:5-53:79">
<del data-sourcepos="53:7-53:14"><a href="/cmucl/cmucl/-/issues/124" data-reference-type="issue" data-original="#124" data-link="false" data-link-reference="false" data-project="202" data-issue="956" data-project-path="cmucl/cmucl" data-iid="124" data-issue-type="issue" data-container="body" data-placement="top" title="directory with :wild-inferiors doesn't descend subdirectories" class="gfm gfm-issue">#124</a></del> directory with <code data-sourcepos="53:32-53:46">:wild-inferiors</code> doesn't descend subdirectories</li>
<li data-sourcepos="54:5-54:59">
<del data-sourcepos="54:7-54:14"><a href="/cmucl/cmucl/-/issues/125" data-reference-type="issue" data-original="#125" data-link="false" data-link-reference="false" data-project="202" data-issue="957" data-project-path="cmucl/cmucl" data-iid="125" data-issue-type="issue" data-container="body" data-placement="top" title="unix:unix-stat returns incorrect values" class="gfm gfm-issue">#125</a></del> Linux <code data-sourcepos="54:23-54:31">unix-stat</code> returning incorrect values</li>
<li data-sourcepos="55:5-55:73">
<del data-sourcepos="55:7-55:14"><a href="/cmucl/cmucl/-/issues/127" data-reference-type="issue" data-original="#127" data-link="false" data-link-reference="false" data-project="202" data-issue="960" data-project-path="cmucl/cmucl" data-iid="127" data-issue-type="issue" data-container="body" data-placement="top" title="unix:unix-getpwuid with unknown uid produces segment violation" class="gfm gfm-issue">#127</a></del> Linux unix-getpwuid segfaults when given non-existent uid.</li>
<li data-sourcepos="56:5-56:43">
<del data-sourcepos="56:7-56:14"><a href="/cmucl/cmucl/-/issues/128" data-reference-type="issue" data-original="#128" data-link="false" data-link-reference="false" data-project="202" data-issue="961" data-project-path="cmucl/cmucl" data-iid="128" data-issue-type="issue" data-container="body" data-placement="top" title="quit should support an exit code" class="gfm gfm-issue">#128</a></del> <code data-sourcepos="56:17-56:20">QUIT</code> accepts an exit code.</li>
<li data-sourcepos="57:5-57:37">
<del data-sourcepos="57:7-57:14"><a href="/cmucl/cmucl/-/issues/130" data-reference-type="issue" data-original="#130" data-link="false" data-link-reference="false" data-project="202" data-issue="1000" data-project-path="cmucl/cmucl" data-iid="130" data-issue-type="issue" data-container="body" data-placement="top" title="Move file-author to C" class="gfm gfm-issue">#130</a></del> Move file-author to C.</li>
<li data-sourcepos="58:5-58:57">
<del data-sourcepos="58:7-58:14"><a href="/cmucl/cmucl/-/issues/132" data-reference-type="issue" data-original="#132" data-link="false" data-link-reference="false" data-project="202" data-issue="1002" data-project-path="cmucl/cmucl" data-iid="132" data-issue-type="issue" data-container="body" data-placement="top" title="Ansi Test RENAME-FILE.1 fails" class="gfm gfm-issue">#132</a></del> Ansi test <code data-sourcepos="58:27-58:39">RENAME-FILE.1</code> no longer fails.</li>
<li data-sourcepos="59:5-59:68">
<del data-sourcepos="59:7-59:14"><a href="/cmucl/cmucl/-/issues/134" data-reference-type="issue" data-original="#134" data-link="false" data-link-reference="false" data-project="202" data-issue="1005" data-project-path="cmucl/cmucl" data-iid="134" data-issue-type="issue" data-container="body" data-placement="top" title="(expt 1 #c(2 2)) signals an error incorrectly" class="gfm gfm-issue">#134</a></del> Handle the case of <code data-sourcepos="59:36-59:66">(expt complex complex-rational)</code>.</li>
<li data-sourcepos="60:5-60:75">
<del data-sourcepos="60:7-60:14"><a href="/cmucl/cmucl/-/issues/136" data-reference-type="issue" data-original="#136" data-link="false" data-link-reference="false" data-project="202" data-issue="1007" data-project-path="cmucl/cmucl" data-iid="136" data-issue-type="issue" data-container="body" data-placement="top" title="Ansi test ensure-directories-exist.8 fails" class="gfm gfm-issue">#136</a></del> <code data-sourcepos="60:17-60:40">ensure-directories-exist</code> should return the given pathspec.</li>
<li data-sourcepos="61:5-61:101">
<a href="/cmucl/cmucl/-/issues/139" data-reference-type="issue" data-original="#139" data-link="false" data-link-reference="false" data-project="202" data-issue="1011" data-project-path="cmucl/cmucl" data-iid="139" data-issue-type="issue" data-container="body" data-placement="top" title="Change default to utf8 for external formats and file encodings" class="gfm gfm-issue">#139</a> <code data-sourcepos="61:13-61:37">*default-external-format*</code> defaults to <code data-sourcepos="61:53-61:58">:utf-8</code>; add alias for <code data-sourcepos="61:77-61:83">:locale</code> external format.</li>
<li data-sourcepos="62:5-62:72">
<del data-sourcepos="62:7-62:14"><a href="/cmucl/cmucl/-/issues/140" data-reference-type="issue" data-original="#140" data-link="false" data-link-reference="false" data-project="202" data-issue="1012" data-project-path="cmucl/cmucl" data-iid="140" data-issue-type="issue" data-container="body" data-placement="top" title="stream-external-format of two-way-stream is :default" class="gfm gfm-issue">#140</a></del> External format for streams that are not <code data-sourcepos="62:58-62:68">file-stream</code>'s.</li>
<li data-sourcepos="63:5-63:71">
<del data-sourcepos="63:7-63:14"><a href="/cmucl/cmucl/-/issues/141" data-reference-type="issue" data-original="#141" data-link="false" data-link-reference="false" data-project="202" data-issue="1016" data-project-path="cmucl/cmucl" data-iid="141" data-issue-type="issue" data-container="body" data-placement="top" title="LANG=/foo confuses intl::dgettext" class="gfm gfm-issue">#141</a></del> Disallow locales that are pathnames to a localedef file.</li>
<li data-sourcepos="64:5-64:52">
<del data-sourcepos="64:7-64:14"><a href="/cmucl/cmucl/-/issues/142" data-reference-type="issue" data-original="#142" data-link="false" data-link-reference="false" data-project="202" data-issue="1017" data-project-path="cmucl/cmucl" data-iid="142" data-issue-type="issue" data-container="body" data-placement="top" title="(random 0) doesn't signal a type error" class="gfm gfm-issue">#142</a></del> <code data-sourcepos="64:17-64:26">(random 0)</code> signals incorrect error.</li>
<li data-sourcepos="65:5-65:73">
<del data-sourcepos="65:7-65:14"><a href="/cmucl/cmucl/-/issues/143" data-reference-type="issue" data-original="#143" data-link="false" data-link-reference="false" data-project="202" data-issue="1018" data-project-path="cmucl/cmucl" data-iid="143" data-issue-type="issue" data-container="body" data-placement="top" title="LISTEN doesn't signal error when given more than one arg" class="gfm gfm-issue">#143</a></del> <code data-sourcepos="65:17-65:22">LISTEN</code> doesn't signal error when given more than one arg</li>
<li data-sourcepos="66:5-66:93">
<del data-sourcepos="66:7-66:14"><a href="/cmucl/cmucl/-/issues/147" data-reference-type="issue" data-original="#147" data-link="false" data-link-reference="false" data-project="202" data-issue="1026" data-project-path="cmucl/cmucl" data-iid="147" data-issue-type="issue" data-container="body" data-placement="top" title="stream-line-column method missing for fundamental-character-output-stream" class="gfm gfm-issue">#147</a></del> <code data-sourcepos="66:17-66:34">stream-line-column</code> method missing for <code data-sourcepos="66:57-66:91">fundamental-character-output-stream</code>.</li>
<li data-sourcepos="67:5-67:45">
<del data-sourcepos="67:7-67:14"><a href="/cmucl/cmucl/-/issues/149" data-reference-type="issue" data-original="#149" data-link="false" data-link-reference="false" data-project="202" data-issue="1035" data-project-path="cmucl/cmucl" data-iid="149" data-issue-type="issue" data-container="body" data-placement="top" title="Call setlocale(3C) on startup" class="gfm gfm-issue">#149</a></del> Call setlocale(3C) on startup.</li>
<li data-sourcepos="68:5-68:63">
<del data-sourcepos="68:7-68:14"><a href="/cmucl/cmucl/-/issues/150" data-reference-type="issue" data-original="#150" data-link="false" data-link-reference="false" data-project="202" data-issue="1036" data-project-path="cmucl/cmucl" data-iid="150" data-issue-type="issue" data-container="body" data-placement="top" title="Add aliases for the external formats cp949 and euckr" class="gfm gfm-issue">#150</a></del> Add aliases for external format cp949 and euckr.</li>
<li data-sourcepos="69:5-69:62">
<del data-sourcepos="69:7-69:14"><a href="/cmucl/cmucl/-/issues/151" data-reference-type="issue" data-original="#151" data-link="false" data-link-reference="false" data-project="202" data-issue="1037" data-project-path="cmucl/cmucl" data-iid="151" data-issue-type="task" data-container="body" data-placement="top" title="Change *default-external-format* to :utf-8" class="gfm gfm-issue">#151</a></del> Change <code data-sourcepos="69:24-69:48">*default-external-format*</code> to <code data-sourcepos="69:55-69:60">:utf-8</code>.</li>
<li data-sourcepos="70:5-70:99">
<del data-sourcepos="70:7-70:14"><a href="/cmucl/cmucl/-/issues/152" data-reference-type="issue" data-original="#152" data-link="false" data-link-reference="false" data-project="202" data-issue="1038" data-project-path="cmucl/cmucl" data-iid="152" data-issue-type="task" data-container="body" data-placement="top" title="Add a new format :locale that is an alias to the codeset from LANG and friends." class="gfm gfm-issue">#152</a></del> Add new external format, <code data-sourcepos="70:42-70:48">:locale</code> as an alias to the codeset from LANG and friends.</li>
<li data-sourcepos="71:5-71:61">
<del data-sourcepos="71:7-71:14">#<a href="/cmucl/cmucl/-/merge_requests/53" data-reference-type="merge_request" data-original="!53" data-link="false" data-link-reference="false" data-project="202" data-merge-request="489" data-project-path="cmucl/cmucl" data-iid="53" data-container="body" data-placement="top" title="Fix #86: save fpu state on entry to alloc" class="gfm gfm-merge_request">!53</a></del> Terminals default to an encoding of <code data-sourcepos="71:53-71:59">:locale</code>.</li>
<li data-sourcepos="72:5-72:40">
<del data-sourcepos="72:7-72:14"><a href="/cmucl/cmucl/-/issues/155" data-reference-type="issue" data-original="#155" data-link="false" data-link-reference="false" data-project="202" data-issue="1043" data-project-path="cmucl/cmucl" data-iid="155" data-issue-type="issue" data-container="body" data-placement="top" title="Wrap help strings neatly" class="gfm gfm-issue">#155</a></del> Wrap help strings neatly.</li>
<li data-sourcepos="73:5-73:68">
<del data-sourcepos="73:7-73:14"><a href="/cmucl/cmucl/-/issues/157" data-reference-type="issue" data-original="#157" data-link="false" data-link-reference="false" data-project="202" data-issue="1045" data-project-path="cmucl/cmucl" data-iid="157" data-issue-type="issue" data-container="body" data-placement="top" title='(directory "foo/**/" returns all files' class="gfm gfm-issue">#157</a></del> <code data-sourcepos="73:17-73:37">(directory "foo/**/")</code> only returns directories now.</li>
<li data-sourcepos="74:5-74:79">
<a href="/cmucl/cmucl/-/issues/158" data-reference-type="issue" data-original="#158" data-link="false" data-link-reference="false" data-project="202" data-issue="1051" data-project-path="cmucl/cmucl" data-iid="158" data-issue-type="issue" data-container="body" data-placement="top" title="Filename encodings on Darwin" class="gfm gfm-issue">#158</a> Darwin uses utf-8, but we don't support all the rules for pathnames.</li>
<li data-sourcepos="75:5-75:77">
<del data-sourcepos="75:7-75:14"><a href="/cmucl/cmucl/-/issues/162" data-reference-type="issue" data-original="#162" data-link="false" data-link-reference="false" data-project="202" data-issue="1062" data-project-path="cmucl/cmucl" data-iid="162" data-issue-type="issue" data-container="body" data-placement="top" title="Change *filename-encoding* to use :no-encoding" class="gfm gfm-issue">#162</a></del> <code data-sourcepos="75:17-75:35">*filename-encoding*</code> defaults to <code data-sourcepos="75:51-75:55">:null</code> to mean no encoding.</li>
<li data-sourcepos="76:5-76:86">
<del data-sourcepos="76:7-76:14"><a href="/cmucl/cmucl/-/issues/163" data-reference-type="issue" data-original="#163" data-link="false" data-link-reference="false" data-project="202" data-issue="1063" data-project-path="cmucl/cmucl" data-iid="163" data-issue-type="issue" data-container="body" data-placement="top" title="Getting the current cmucl version via command line option" class="gfm gfm-issue">#163</a></del> Add command-line option <code data-sourcepos="76:41-76:48">-version</code> and <code data-sourcepos="76:56-76:64">--version</code> to get lisp version.</li>
<li data-sourcepos="77:5-77:68">
<del data-sourcepos="77:7-77:14"><a href="/cmucl/cmucl/-/issues/165" data-reference-type="issue" data-original="#165" data-link="false" data-link-reference="false" data-project="202" data-issue="1066" data-project-path="cmucl/cmucl" data-iid="165" data-issue-type="issue" data-container="body" data-placement="top" title="Avoid inserting NIL into simple LOOP from FORMAT" class="gfm gfm-issue">#165</a></del> Avoid inserting NIL into simple <code data-sourcepos="77:49-77:52">LOOP</code> from <code data-sourcepos="77:61-77:66">FORMAT</code>.</li>
<li data-sourcepos="78:5-78:87">
<del data-sourcepos="78:7-78:14"><a href="/cmucl/cmucl/-/issues/166" data-reference-type="issue" data-original="#166" data-link="false" data-link-reference="false" data-project="202" data-issue="1067" data-project-path="cmucl/cmucl" data-iid="166" data-issue-type="issue" data-container="body" data-placement="top" title="(nth-value 1 (integer-decode-float least-positive-double-float)) causes bad things to happen." class="gfm gfm-issue">#166</a></del> Fix incorrect type declaration for exponent from <code data-sourcepos="78:66-78:85">integer-decode-float</code>.</li>
<li data-sourcepos="79:5-79:73">
<del data-sourcepos="79:7-79:14"><a href="/cmucl/cmucl/-/issues/167" data-reference-type="issue" data-original="#167" data-link="false" data-link-reference="false" data-project="202" data-issue="1068" data-project-path="cmucl/cmucl" data-iid="167" data-issue-type="issue" data-container="body" data-placement="top" title="double-float-exponent type lower bound off by one?" class="gfm gfm-issue">#167</a></del> Low bound for <code data-sourcepos="79:31-79:51">decode-float-exponent</code> type was off by one.</li>
<li data-sourcepos="80:5-80:74">
<del data-sourcepos="80:7-80:14"><a href="/cmucl/cmucl/-/issues/168" data-reference-type="issue" data-original="#168" data-link="false" data-link-reference="false" data-project="202" data-issue="1069" data-project-path="cmucl/cmucl" data-iid="168" data-issue-type="issue" data-container="body" data-placement="top" title="Don't use negated forms for jmp instructions" class="gfm gfm-issue">#168</a></del> Don't use negated forms for jmp instructions when possible.</li>
<li data-sourcepos="81:5-81:59">
<del data-sourcepos="81:7-81:14"><a href="/cmucl/cmucl/-/issues/169" data-reference-type="issue" data-original="#169" data-link="false" data-link-reference="false" data-project="202" data-issue="1071" data-project-path="cmucl/cmucl" data-iid="169" data-issue-type="issue" data-container="body" data-placement="top" title="Pprinter doesn't format define-vop or sc-case nicely." class="gfm gfm-issue">#169</a></del> Add pprinter for <code data-sourcepos="81:34-81:43">define-vop</code> and <code data-sourcepos="81:51-81:57">sc-case</code>.</li>
<li data-sourcepos="82:5-82:75">
<del data-sourcepos="82:7-82:14"><a href="/cmucl/cmucl/-/issues/172" data-reference-type="issue" data-original="#172" data-link="false" data-link-reference="false" data-project="202" data-issue="1076" data-project-path="cmucl/cmucl" data-iid="172" data-issue-type="issue" data-container="body" data-placement="top" title="Incorrect declared return type for pathname-match-p" class="gfm gfm-issue">#172</a></del> Declare <code data-sourcepos="82:25-82:40">pathname-match-p</code> as returning <code data-sourcepos="82:57-82:59">nil</code> or <code data-sourcepos="82:66-82:73">pathname</code>.</li>
<li data-sourcepos="83:5-83:58">
<del data-sourcepos="83:7-83:14"><a href="/cmucl/cmucl/-/issues/173" data-reference-type="issue" data-original="#173" data-link="false" data-link-reference="false" data-project="202" data-issue="1077" data-project-path="cmucl/cmucl" data-iid="173" data-issue-type="issue" data-container="body" data-placement="top" title="Add pprinter for define-assembly-routine" class="gfm gfm-issue">#173</a></del> Add pprinter for <code data-sourcepos="83:34-83:56">define-assembly-routine</code>.</li>
<li data-sourcepos="84:5-84:67">
<del data-sourcepos="84:7-84:14"><a href="/cmucl/cmucl/-/issues/176" data-reference-type="issue" data-original="#176" data-link="false" data-link-reference="false" data-project="202" data-issue="1080" data-project-path="cmucl/cmucl" data-iid="176" data-issue-type="issue" data-container="body" data-placement="top" title="short-site-name and long-site-name should be NIL" class="gfm gfm-issue">#176</a></del> <code data-sourcepos="84:17-84:31">SHORT-SITE-NAME</code> and <code data-sourcepos="84:39-84:52">LONG-SITE-NAME</code> return <code data-sourcepos="84:63-84:65">NIL</code>.</li>
<li data-sourcepos="85:5-85:66">
<del data-sourcepos="85:7-85:14"><a href="/cmucl/cmucl/-/issues/177" data-reference-type="issue" data-original="#177" data-link="false" data-link-reference="false" data-project="202" data-issue="1081" data-project-path="cmucl/cmucl" data-iid="177" data-issue-type="issue" data-container="body" data-placement="top" title="pprint deftransform and defoptimizer neatly" class="gfm gfm-issue">#177</a></del> Add pprinter for <code data-sourcepos="85:34-85:45">deftransform</code> and <code data-sourcepos="85:53-85:64">defoptimizer</code>.</li>
<li data-sourcepos="86:5-86:95">
<del data-sourcepos="86:7-86:14"><a href="/cmucl/cmucl/-/issues/192" data-reference-type="issue" data-original="#192" data-link="false" data-link-reference="false" data-project="202" data-issue="1103" data-project-path="cmucl/cmucl" data-iid="192" data-issue-type="issue" data-container="body" data-placement="top" title="Print radix marker by default in disassemblies and adjust note-column for x86" class="gfm gfm-issue">#192</a></del> Print radix marker in disassemblies and adjust note column to be larger for x86.</li>
<li data-sourcepos="87:5-87:97">
<del data-sourcepos="87:7-87:14"><a href="/cmucl/cmucl/-/issues/193" data-reference-type="issue" data-original="#193" data-link="false" data-link-reference="false" data-project="202" data-issue="1104" data-project-path="cmucl/cmucl" data-iid="193" data-issue-type="issue" data-container="body" data-placement="top" title="NIL and :UNSPECIFIC should be considered equivalent when comparing pathnames for equality" class="gfm gfm-issue">#193</a></del> Treat <code data-sourcepos="87:23-87:25">NIL</code> and <code data-sourcepos="87:33-87:43">:UNSPECIFIC</code> as equivalent when comparing pathnames with <code data-sourcepos="87:91-87:95">equal</code>.</li>
</ul>
</li>
<li data-sourcepos="88:3-88:18">
<p data-sourcepos="88:5-88:18">Other changes:</p>
</li>
<li data-sourcepos="89:3-89:51">
<p data-sourcepos="89:5-89:51">Improvements to the PCL implementation of CLOS:</p>
</li>
<li data-sourcepos="90:3-91:0">
<p data-sourcepos="90:5-90:34">Changes to building procedure:</p>
</li>
</ul>
<p data-sourcepos="92:1-93:43" dir="auto">This release is not binary compatible with code compiled using CMUCL
21d; you will need to recompile FASL files.</p>
<p data-sourcepos="95:1-99:53" dir="auto">See <a href="http://www.cmucl.org" rel="nofollow noreferrer noopener" target="_blank">http://www.cmucl.org</a> or
<a href="https://gitlab.common-lisp.net/cmucl/cmucl">https://gitlab.common-lisp.net/cmucl/cmucl</a> for more information,
See
<a href="https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl">https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl</a>
for obtaining CMUCL, including sources and binaries..</p>
<p data-sourcepos="102:1-102:46" dir="auto">We hope you enjoy using this release of CMUCL!</p>
<h2 data-sourcepos="104:1-104:11" dir="auto">
<a id="user-content-addendum" class="anchor" href="#addendum" aria-hidden="true"></a>Addendum</h2>
<p data-sourcepos="105:1-109:22" dir="auto">Issue <a href="/cmucl/cmucl/-/issues/141" data-reference-type="issue" data-original="#141" data-link="false" data-link-reference="false" data-project="202" data-issue="1016" data-project-path="cmucl/cmucl" data-iid="141" data-issue-type="issue" data-container="body" data-placement="top" title="LANG=/foo confuses intl::dgettext" class="gfm gfm-issue">#141</a> and <a href="/cmucl/cmucl/-/issues/149" data-reference-type="issue" data-original="#149" data-link="false" data-link-reference="false" data-project="202" data-issue="1035" data-project-path="cmucl/cmucl" data-iid="149" data-issue-type="issue" data-container="body" data-placement="top" title="Call setlocale(3C) on startup" class="gfm gfm-issue">#149</a> uses <code data-sourcepos="105:27-105:39">setlocale(3C)</code> to set the encoding for the
terminal (console) streams like <code data-sourcepos="106:34-106:49">*standard-input*</code>,
<code data-sourcepos="107:2-107:18">*standard-output*</code>, and <code data-sourcepos="107:27-107:42">*standard-error*</code>. However, the locale
setting does not change <code data-sourcepos="108:26-108:50">*default-external-format*</code>, which remains as
<code data-sourcepos="109:2-109:7">:utf-8</code>, the default.</p>
<h3 data-sourcepos="111:1-111:15" dir="auto">
<a id="user-content-tag-message" class="anchor" href="#tag-message" aria-hidden="true"></a>Tag message</h3>
<p data-sourcepos="113:1-113:11" dir="auto">Release 21e</p>2023-05-22T23:07:13ZRaymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2023-04snapshot-2023-04Snapshot 2023-04<h1 data-sourcepos="1:1-1:11" dir="auto">
<a id="user-content-cmucl-21e" class="anchor" href="#cmucl-21e" aria-hidden="true"></a>CMUCL 21e</h1>
<h2 data-sourcepos="3:1-3:19" dir="auto">
<a id="user-content-work-in-progress" class="anchor" href="#work-in-progress" aria-hidden="true"></a>Work in progress</h2>
<p data-sourcepos="5:1-7:27" dir="auto">The CMUCL project is pleased to announce the release of CMUCL 21e.
This is a major release which contains numerous enhancements and bug
fixes from the 21d release.</p>
<p data-sourcepos="9:1-18:14" dir="auto">CMUCL is a free, high performance implementation of the Common Lisp
programming language which runs on most major Unix platforms. It
mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
sophisticated native code compiler; a powerful foreign function
interface; an implementation of CLOS, the Common Lisp Object System,
which includes multi-methods and a meta-object protocol; a
source-level debugger and code profiler; and an Emacs-like editor
implemented in Common Lisp. CMUCL is maintained by a team of
volunteers collaborating over the Internet, and is mostly in the
public domain.</p>
<h2 data-sourcepos="20:1-20:23" dir="auto">
<a id="user-content-new-in-this-release" class="anchor" href="#new-in-this-release" aria-hidden="true"></a>New in this release:</h2>
<ul data-sourcepos="21:3-92:0" dir="auto">
<li data-sourcepos="21:3-21:17">
<p data-sourcepos="21:5-21:17">Known issues:</p>
</li>
<li data-sourcepos="22:3-22:24">
<p data-sourcepos="22:5-22:24">Feature enhancements</p>
</li>
<li data-sourcepos="23:3-25:70">
<p data-sourcepos="23:5-23:11">Changes</p>
<ul data-sourcepos="24:5-25:70">
<li data-sourcepos="24:5-24:26">Update to ASDF 3.3.6</li>
<li data-sourcepos="25:5-25:70">The default external format is <code data-sourcepos="25:39-25:44">:utf-8</code> instead of <code data-sourcepos="25:59-25:68">:iso8859-1</code>.</li>
</ul>
</li>
<li data-sourcepos="26:3-26:26">
<p data-sourcepos="26:5-26:26">ANSI compliance fixes:</p>
</li>
<li data-sourcepos="27:3-29:0">
<p data-sourcepos="27:5-27:14">Bug fixes:</p>
<ul data-sourcepos="28:5-29:0">
<li data-sourcepos="28:5-29:0">
<del data-sourcepos="28:7-28:13"><a href="/cmucl/cmucl/-/issues/97" data-reference-type="issue" data-original="#97" data-link="false" data-link-reference="false" data-project="202" data-issue="701" data-project-path="cmucl/cmucl" data-iid="97" data-issue-type="issue" data-container="body" data-placement="top" title="Define and use ud2 instruction instead of int3" class="gfm gfm-issue">#97</a></del> Fixes stepping through the source forms in the debugger. This has been broken for quite some time, but it works now.</li>
</ul>
</li>
<li data-sourcepos="30:3-88:97">
<p data-sourcepos="30:5-30:19">Gitlab tickets:</p>
<ul data-sourcepos="31:5-88:97">
<li data-sourcepos="31:5-31:82">
<del data-sourcepos="31:7-31:13"><a href="/cmucl/cmucl/-/issues/68" data-reference-type="issue" data-original="#68" data-link="false" data-link-reference="false" data-project="202" data-issue="405" data-project-path="cmucl/cmucl" data-iid="68" data-issue-type="issue" data-container="body" data-placement="top" title="Can't build with Fedora 28 and gcc 8.1.1" class="gfm gfm-issue">#68</a></del> gcc8.1.1 can't build lisp. Change optimization from <code data-sourcepos="31:69-31:71">-O2</code> to <code data-sourcepos="31:78-31:80">-O1</code>.</li>
<li data-sourcepos="32:5-32:53">
<del data-sourcepos="32:7-32:13"><a href="/cmucl/cmucl/-/issues/72" data-reference-type="issue" data-original="#72" data-link="false" data-link-reference="false" data-project="202" data-issue="454" data-project-path="cmucl/cmucl" data-iid="72" data-issue-type="issue" data-container="body" data-placement="top" title="Can't generate pdf for cmu-user manual" class="gfm gfm-issue">#72</a></del> CMU user manual now part of cmucl-site.</li>
<li data-sourcepos="33:5-33:43">
<del data-sourcepos="33:7-33:13"><a href="/cmucl/cmucl/-/issues/73" data-reference-type="issue" data-original="#73" data-link="false" data-link-reference="false" data-project="202" data-issue="455" data-project-path="cmucl/cmucl" data-iid="73" data-issue-type="issue" data-container="body" data-placement="top" title="Update clx to upstream sharplispers/clx" class="gfm gfm-issue">#73</a></del> Update clx from upstream clx.</li>
<li data-sourcepos="34:5-34:58">
<del data-sourcepos="34:7-34:13"><a href="/cmucl/cmucl/-/issues/77" data-reference-type="issue" data-original="#77" data-link="false" data-link-reference="false" data-project="202" data-issue="548" data-project-path="cmucl/cmucl" data-iid="77" data-issue-type="issue" data-container="body" data-placement="top" title="sqrt incorrect for exceptional values?" class="gfm gfm-issue">#77</a></del> Added tests for sqrt for exceptional values.</li>
<li data-sourcepos="35:5-35:122">
<del data-sourcepos="35:7-35:13"><a href="/cmucl/cmucl/-/issues/79" data-reference-type="issue" data-original="#79" data-link="false" data-link-reference="false" data-project="202" data-issue="562" data-project-path="cmucl/cmucl" data-iid="79" data-issue-type="issue" data-container="body" data-placement="top" title="Autoload asdf with require" class="gfm gfm-issue">#79</a></del> Autoload ASDF when calling <code data-sourcepos="35:43-35:49">REQUIRE</code> the first time. User's no longer have to explicitly load ASDF anymore.</li>
<li data-sourcepos="36:5-36:225">
<del data-sourcepos="36:7-36:13"><a href="/cmucl/cmucl/-/issues/80" data-reference-type="issue" data-original="#80" data-link="false" data-link-reference="false" data-project="202" data-issue="563" data-project-path="cmucl/cmucl" data-iid="80" data-issue-type="issue" data-container="body" data-placement="top" title="Simplify loading of contribs" class="gfm gfm-issue">#80</a></del> Use ASDF to load contribs. cmu-contribs still exists but does nothing. The contrib names are the same, except it's best to use a keyword instead of a string. So, <code data-sourcepos="36:181-36:194">:contrib-demos</code> instead of <code data-sourcepos="36:209-36:223">"contrib-demos"</code>.</li>
<li data-sourcepos="37:5-37:47">
<del data-sourcepos="37:7-37:13"><a href="/cmucl/cmucl/-/issues/81" data-reference-type="issue" data-original="#81" data-link="false" data-link-reference="false" data-project="202" data-issue="570" data-project-path="cmucl/cmucl" data-iid="81" data-issue-type="issue" data-container="body" data-placement="top" title="Add contribs from Eric Marsden" class="gfm gfm-issue">#81</a></del> Added contribs from Eric Marsden.</li>
<li data-sourcepos="38:5-38:50">
<del data-sourcepos="38:7-38:13"><a href="/cmucl/cmucl/-/issues/82" data-reference-type="issue" data-original="#82" data-link="false" data-link-reference="false" data-project="202" data-issue="575" data-project-path="cmucl/cmucl" data-iid="82" data-issue-type="issue" data-container="body" data-placement="top" title="Replace bc" class="gfm gfm-issue">#82</a></del> Replace bc with expr in GNUMakefile.</li>
<li data-sourcepos="39:5-39:78">
<del data-sourcepos="39:7-39:13"><a href="/cmucl/cmucl/-/issues/86" data-reference-type="issue" data-original="#86" data-link="false" data-link-reference="false" data-project="202" data-issue="624" data-project-path="cmucl/cmucl" data-iid="86" data-issue-type="issue" data-container="body" data-placement="top" title="Fix building with gcc 8 and later" class="gfm gfm-issue">#86</a></del> Building with gcc 8 and later works when using -O2 optimization.</li>
<li data-sourcepos="40:5-40:122">
<del data-sourcepos="40:7-40:13"><a href="/cmucl/cmucl/-/issues/90" data-reference-type="issue" data-original="#90" data-link="false" data-link-reference="false" data-project="202" data-issue="691" data-project-path="cmucl/cmucl" data-iid="90" data-issue-type="issue" data-container="body" data-placement="top" title="Cleanup unused static symbols" class="gfm gfm-issue">#90</a></del> Some static symbols have been removed. This probably makes the fasl files incompatible with older versions.</li>
<li data-sourcepos="41:5-41:72">
<del data-sourcepos="41:7-41:13"><a href="/cmucl/cmucl/-/issues/91" data-reference-type="issue" data-original="#91" data-link="false" data-link-reference="false" data-project="202" data-issue="693" data-project-path="cmucl/cmucl" data-iid="91" data-issue-type="issue" data-container="body" data-placement="top" title="LOOP destructuring incorrectly signals error" class="gfm gfm-issue">#91</a></del> Loop destructuring no longer incorrectly signals an error.</li>
<li data-sourcepos="42:5-42:67">
<del data-sourcepos="42:7-42:13"><a href="/cmucl/cmucl/-/issues/95" data-reference-type="issue" data-original="#95" data-link="false" data-link-reference="false" data-project="202" data-issue="699" data-project-path="cmucl/cmucl" data-iid="95" data-issue-type="issue" data-container="body" data-placement="top" title="Disassembler syntax wrong for je and movzx" class="gfm gfm-issue">#95</a></del> Disassembler syntax of x86 je and movzx is incorrect.</li>
<li data-sourcepos="43:5-43:85">
<del data-sourcepos="43:7-43:13"><a href="/cmucl/cmucl/-/issues/97" data-reference-type="issue" data-original="#97" data-link="false" data-link-reference="false" data-project="202" data-issue="701" data-project-path="cmucl/cmucl" data-iid="97" data-issue-type="issue" data-container="body" data-placement="top" title="Define and use ud2 instruction instead of int3" class="gfm gfm-issue">#97</a></del> Define and use ud2 instruction instead of int3. Fixes single-stepping.</li>
<li data-sourcepos="44:5-44:88">
<del data-sourcepos="44:7-44:13"><a href="/cmucl/cmucl/-/issues/98" data-reference-type="issue" data-original="#98" data-link="false" data-link-reference="false" data-project="202" data-issue="702" data-project-path="cmucl/cmucl" data-iid="98" data-issue-type="issue" data-container="body" data-placement="top" title="fstpd is not an actual intel instruction" class="gfm gfm-issue">#98</a></del> fstpd is not an Intel instruction; disassemble as <code data-sourcepos="44:66-44:86">fstp dword ptr [addr]</code>.</li>
<li data-sourcepos="45:5-45:90">
<del data-sourcepos="45:7-45:14"><a href="/cmucl/cmucl/-/issues/100" data-reference-type="issue" data-original="#100" data-link="false" data-link-reference="false" data-project="202" data-issue="707" data-project-path="cmucl/cmucl" data-iid="100" data-issue-type="issue" data-container="body" data-placement="top" title="ldb doesn't print out base-chars correctly." class="gfm gfm-issue">#100</a></del> ldb prints out Unicode base-chars correctly instead of just the low 8 bits.</li>
<li data-sourcepos="46:5-46:67">
<del data-sourcepos="46:7-46:14"><a href="/cmucl/cmucl/-/issues/103" data-reference-type="issue" data-original="#103" data-link="false" data-link-reference="false" data-project="202" data-issue="712" data-project-path="cmucl/cmucl" data-iid="103" data-issue-type="issue" data-container="body" data-placement="top" title="RANDOM-MT19937-UPDATE assembly routine still exists" class="gfm gfm-issue">#103</a></del> RANDOM-MT19937-UPDATE assembly routine still exists.</li>
<li data-sourcepos="47:5-47:54">
<del data-sourcepos="47:7-47:14"><a href="/cmucl/cmucl/-/issues/104" data-reference-type="issue" data-original="#104" data-link="false" data-link-reference="false" data-project="202" data-issue="734" data-project-path="cmucl/cmucl" data-iid="104" data-issue-type="issue" data-container="body" data-placement="top" title="Single stepping broken" class="gfm gfm-issue">#104</a></del> Single-stepping broken (fixed via <a href="/cmucl/cmucl/-/issues/97" data-reference-type="issue" data-original="#97" data-link="false" data-link-reference="false" data-project="202" data-issue="701" data-project-path="cmucl/cmucl" data-iid="97" data-issue-type="issue" data-container="body" data-placement="top" title="Define and use ud2 instruction instead of int3" class="gfm gfm-issue">#97</a>).</li>
<li data-sourcepos="48:5-48:45">
<del data-sourcepos="48:7-48:14"><a href="/cmucl/cmucl/-/issues/107" data-reference-type="issue" data-original="#107" data-link="false" data-link-reference="false" data-project="202" data-issue="747" data-project-path="cmucl/cmucl" data-iid="107" data-issue-type="issue" data-container="body" data-placement="top" title="Replace u_int8_t with uint8_t" class="gfm gfm-issue">#107</a></del> Replace u_int8_t with uint8_t.</li>
<li data-sourcepos="49:5-49:27">
<del data-sourcepos="49:7-49:14"><a href="/cmucl/cmucl/-/issues/108" data-reference-type="issue" data-original="#108" data-link="false" data-link-reference="false" data-project="202" data-issue="766" data-project-path="cmucl/cmucl" data-iid="108" data-issue-type="issue" data-container="body" data-placement="top" title="Update asdf" class="gfm gfm-issue">#108</a></del> Update ASDF.</li>
<li data-sourcepos="50:5-50:62">
<del data-sourcepos="50:7-50:14"><a href="/cmucl/cmucl/-/issues/112" data-reference-type="issue" data-original="#112" data-link="false" data-link-reference="false" data-project="202" data-issue="784" data-project-path="cmucl/cmucl" data-iid="112" data-issue-type="issue" data-container="body" data-placement="top" title="CLX can't connect to an X server via inet sockets since about 2018-02" class="gfm gfm-issue">#112</a></del> CLX can't connect to X server via inet sockets.</li>
<li data-sourcepos="51:5-51:73">
<del data-sourcepos="51:7-51:14"><a href="/cmucl/cmucl/-/issues/113" data-reference-type="issue" data-original="#113" data-link="false" data-link-reference="false" data-project="202" data-issue="785" data-project-path="cmucl/cmucl" data-iid="113" data-issue-type="issue" data-container="body" data-placement="top" title="REQUIRE on contribs can pull in the wrong things via ASDF" class="gfm gfm-issue">#113</a></del> REQUIRE on contribs can pull in the wrong things via ASDF.</li>
<li data-sourcepos="52:5-52:54">
<del data-sourcepos="52:7-52:14"><a href="/cmucl/cmucl/-/issues/120" data-reference-type="issue" data-original="#120" data-link="false" data-link-reference="false" data-project="202" data-issue="837" data-project-path="cmucl/cmucl" data-iid="120" data-issue-type="issue" data-container="body" data-placement="top" title="software-version derived from uname -r" class="gfm gfm-issue">#120</a></del> <code data-sourcepos="52:17-52:32">SOFTWARE-VERSION</code> is implemented in C.</li>
<li data-sourcepos="53:5-53:63">
<del data-sourcepos="53:7-53:14"><a href="/cmucl/cmucl/-/issues/121" data-reference-type="issue" data-original="#121" data-link="false" data-link-reference="false" data-project="202" data-issue="844" data-project-path="cmucl/cmucl" data-iid="121" data-issue-type="issue" data-container="body" data-placement="top" title="wrong column index in FILL-POINTER-OUTPUT-STREAM" class="gfm gfm-issue">#121</a></del> Wrong column index in FILL-POINTER-OUTPUT-STREAM</li>
<li data-sourcepos="54:5-54:39">
<del data-sourcepos="54:7-54:14"><a href="/cmucl/cmucl/-/issues/122" data-reference-type="issue" data-original="#122" data-link="false" data-link-reference="false" data-project="202" data-issue="895" data-project-path="cmucl/cmucl" data-iid="122" data-issue-type="issue" data-container="body" data-placement="top" title="gcc 11 can't build cmucl." class="gfm gfm-issue">#122</a></del> gcc 11 can't build cmucl</li>
<li data-sourcepos="55:5-55:79">
<del data-sourcepos="55:7-55:14"><a href="/cmucl/cmucl/-/issues/124" data-reference-type="issue" data-original="#124" data-link="false" data-link-reference="false" data-project="202" data-issue="956" data-project-path="cmucl/cmucl" data-iid="124" data-issue-type="issue" data-container="body" data-placement="top" title="directory with :wild-inferiors doesn't descend subdirectories" class="gfm gfm-issue">#124</a></del> directory with <code data-sourcepos="55:32-55:46">:wild-inferiors</code> doesn't descend subdirectories</li>
<li data-sourcepos="56:5-56:59">
<del data-sourcepos="56:7-56:14"><a href="/cmucl/cmucl/-/issues/125" data-reference-type="issue" data-original="#125" data-link="false" data-link-reference="false" data-project="202" data-issue="957" data-project-path="cmucl/cmucl" data-iid="125" data-issue-type="issue" data-container="body" data-placement="top" title="unix:unix-stat returns incorrect values" class="gfm gfm-issue">#125</a></del> Linux <code data-sourcepos="56:23-56:31">unix-stat</code> returning incorrect values</li>
<li data-sourcepos="57:5-57:73">
<del data-sourcepos="57:7-57:14"><a href="/cmucl/cmucl/-/issues/127" data-reference-type="issue" data-original="#127" data-link="false" data-link-reference="false" data-project="202" data-issue="960" data-project-path="cmucl/cmucl" data-iid="127" data-issue-type="issue" data-container="body" data-placement="top" title="unix:unix-getpwuid with unknown uid produces segment violation" class="gfm gfm-issue">#127</a></del> Linux unix-getpwuid segfaults when given non-existent uid.</li>
<li data-sourcepos="58:5-58:43">
<del data-sourcepos="58:7-58:14"><a href="/cmucl/cmucl/-/issues/128" data-reference-type="issue" data-original="#128" data-link="false" data-link-reference="false" data-project="202" data-issue="961" data-project-path="cmucl/cmucl" data-iid="128" data-issue-type="issue" data-container="body" data-placement="top" title="quit should support an exit code" class="gfm gfm-issue">#128</a></del> <code data-sourcepos="58:17-58:20">QUIT</code> accepts an exit code.</li>
<li data-sourcepos="59:5-59:37">
<del data-sourcepos="59:7-59:14"><a href="/cmucl/cmucl/-/issues/130" data-reference-type="issue" data-original="#130" data-link="false" data-link-reference="false" data-project="202" data-issue="1000" data-project-path="cmucl/cmucl" data-iid="130" data-issue-type="issue" data-container="body" data-placement="top" title="Move file-author to C" class="gfm gfm-issue">#130</a></del> Move file-author to C.</li>
<li data-sourcepos="60:5-60:57">
<del data-sourcepos="60:7-60:14"><a href="/cmucl/cmucl/-/issues/132" data-reference-type="issue" data-original="#132" data-link="false" data-link-reference="false" data-project="202" data-issue="1002" data-project-path="cmucl/cmucl" data-iid="132" data-issue-type="issue" data-container="body" data-placement="top" title="Ansi Test RENAME-FILE.1 fails" class="gfm gfm-issue">#132</a></del> Ansi test <code data-sourcepos="60:27-60:39">RENAME-FILE.1</code> no longer fails.</li>
<li data-sourcepos="61:5-61:68">
<del data-sourcepos="61:7-61:14"><a href="/cmucl/cmucl/-/issues/134" data-reference-type="issue" data-original="#134" data-link="false" data-link-reference="false" data-project="202" data-issue="1005" data-project-path="cmucl/cmucl" data-iid="134" data-issue-type="issue" data-container="body" data-placement="top" title="(expt 1 #c(2 2)) signals an error incorrectly" class="gfm gfm-issue">#134</a></del> Handle the case of <code data-sourcepos="61:36-61:66">(expt complex complex-rational)</code>.</li>
<li data-sourcepos="62:5-62:75">
<del data-sourcepos="62:7-62:14"><a href="/cmucl/cmucl/-/issues/136" data-reference-type="issue" data-original="#136" data-link="false" data-link-reference="false" data-project="202" data-issue="1007" data-project-path="cmucl/cmucl" data-iid="136" data-issue-type="issue" data-container="body" data-placement="top" title="Ansi test ensure-directories-exist.8 fails" class="gfm gfm-issue">#136</a></del> <code data-sourcepos="62:17-62:40">ensure-directories-exist</code> should return the given pathspec.</li>
<li data-sourcepos="63:5-63:101">
<a href="/cmucl/cmucl/-/issues/139" data-reference-type="issue" data-original="#139" data-link="false" data-link-reference="false" data-project="202" data-issue="1011" data-project-path="cmucl/cmucl" data-iid="139" data-issue-type="issue" data-container="body" data-placement="top" title="Change default to utf8 for external formats and file encodings" class="gfm gfm-issue">#139</a> <code data-sourcepos="63:13-63:37">*default-external-format*</code> defaults to <code data-sourcepos="63:53-63:58">:utf-8</code>; add alias for <code data-sourcepos="63:77-63:83">:locale</code> external format.</li>
<li data-sourcepos="64:5-64:72">
<del data-sourcepos="64:7-64:14"><a href="/cmucl/cmucl/-/issues/140" data-reference-type="issue" data-original="#140" data-link="false" data-link-reference="false" data-project="202" data-issue="1012" data-project-path="cmucl/cmucl" data-iid="140" data-issue-type="issue" data-container="body" data-placement="top" title="stream-external-format of two-way-stream is :default" class="gfm gfm-issue">#140</a></del> External format for streams that are not <code data-sourcepos="64:58-64:68">file-stream</code>'s.</li>
<li data-sourcepos="65:5-65:71">
<del data-sourcepos="65:7-65:14"><a href="/cmucl/cmucl/-/issues/141" data-reference-type="issue" data-original="#141" data-link="false" data-link-reference="false" data-project="202" data-issue="1016" data-project-path="cmucl/cmucl" data-iid="141" data-issue-type="issue" data-container="body" data-placement="top" title="LANG=/foo confuses intl::dgettext" class="gfm gfm-issue">#141</a></del> Disallow locales that are pathnames to a localedef file.</li>
<li data-sourcepos="66:5-66:52">
<del data-sourcepos="66:7-66:14"><a href="/cmucl/cmucl/-/issues/142" data-reference-type="issue" data-original="#142" data-link="false" data-link-reference="false" data-project="202" data-issue="1017" data-project-path="cmucl/cmucl" data-iid="142" data-issue-type="issue" data-container="body" data-placement="top" title="(random 0) doesn't signal a type error" class="gfm gfm-issue">#142</a></del> <code data-sourcepos="66:17-66:26">(random 0)</code> signals incorrect error.</li>
<li data-sourcepos="67:5-67:93">
<del data-sourcepos="67:7-67:14"><a href="/cmucl/cmucl/-/issues/147" data-reference-type="issue" data-original="#147" data-link="false" data-link-reference="false" data-project="202" data-issue="1026" data-project-path="cmucl/cmucl" data-iid="147" data-issue-type="issue" data-container="body" data-placement="top" title="stream-line-column method missing for fundamental-character-output-stream" class="gfm gfm-issue">#147</a></del> <code data-sourcepos="67:17-67:34">stream-line-column</code> method missing for <code data-sourcepos="67:57-67:91">fundamental-character-output-stream</code>.</li>
<li data-sourcepos="68:5-68:45">
<del data-sourcepos="68:7-68:14"><a href="/cmucl/cmucl/-/issues/149" data-reference-type="issue" data-original="#149" data-link="false" data-link-reference="false" data-project="202" data-issue="1035" data-project-path="cmucl/cmucl" data-iid="149" data-issue-type="issue" data-container="body" data-placement="top" title="Call setlocale(3C) on startup" class="gfm gfm-issue">#149</a></del> Call setlocale(3C) on startup.</li>
<li data-sourcepos="69:5-69:63">
<del data-sourcepos="69:7-69:14"><a href="/cmucl/cmucl/-/issues/150" data-reference-type="issue" data-original="#150" data-link="false" data-link-reference="false" data-project="202" data-issue="1036" data-project-path="cmucl/cmucl" data-iid="150" data-issue-type="issue" data-container="body" data-placement="top" title="Add aliases for the external formats cp949 and euckr" class="gfm gfm-issue">#150</a></del> Add aliases for external format cp949 and euckr.</li>
<li data-sourcepos="70:5-70:62">
<del data-sourcepos="70:7-70:14"><a href="/cmucl/cmucl/-/issues/151" data-reference-type="issue" data-original="#151" data-link="false" data-link-reference="false" data-project="202" data-issue="1037" data-project-path="cmucl/cmucl" data-iid="151" data-issue-type="task" data-container="body" data-placement="top" title="Change *default-external-format* to :utf-8" class="gfm gfm-issue">#151</a></del> Change <code data-sourcepos="70:24-70:48">*default-external-format*</code> to <code data-sourcepos="70:55-70:60">:utf-8</code>.</li>
<li data-sourcepos="71:5-71:99">
<del data-sourcepos="71:7-71:14"><a href="/cmucl/cmucl/-/issues/152" data-reference-type="issue" data-original="#152" data-link="false" data-link-reference="false" data-project="202" data-issue="1038" data-project-path="cmucl/cmucl" data-iid="152" data-issue-type="task" data-container="body" data-placement="top" title="Add a new format :locale that is an alias to the codeset from LANG and friends." class="gfm gfm-issue">#152</a></del> Add new external format, <code data-sourcepos="71:42-71:48">:locale</code> as an alias to the codeset from LANG and friends.</li>
<li data-sourcepos="72:5-72:61">
<del data-sourcepos="72:7-72:14">#<a href="/cmucl/cmucl/-/merge_requests/53" data-reference-type="merge_request" data-original="!53" data-link="false" data-link-reference="false" data-project="202" data-merge-request="489" data-project-path="cmucl/cmucl" data-iid="53" data-container="body" data-placement="top" title="Fix #86: save fpu state on entry to alloc" class="gfm gfm-merge_request">!53</a></del> Terminals default to an encoding of <code data-sourcepos="72:53-72:59">:locale</code>.</li>
<li data-sourcepos="73:5-73:40">
<del data-sourcepos="73:7-73:14"><a href="/cmucl/cmucl/-/issues/155" data-reference-type="issue" data-original="#155" data-link="false" data-link-reference="false" data-project="202" data-issue="1043" data-project-path="cmucl/cmucl" data-iid="155" data-issue-type="issue" data-container="body" data-placement="top" title="Wrap help strings neatly" class="gfm gfm-issue">#155</a></del> Wrap help strings neatly.</li>
<li data-sourcepos="74:5-74:68">
<del data-sourcepos="74:7-74:14"><a href="/cmucl/cmucl/-/issues/157" data-reference-type="issue" data-original="#157" data-link="false" data-link-reference="false" data-project="202" data-issue="1045" data-project-path="cmucl/cmucl" data-iid="157" data-issue-type="issue" data-container="body" data-placement="top" title='(directory "foo/**/" returns all files' class="gfm gfm-issue">#157</a></del> <code data-sourcepos="74:17-74:37">(directory "foo/**/")</code> only returns directories now.</li>
<li data-sourcepos="75:5-75:79">
<a href="/cmucl/cmucl/-/issues/158" data-reference-type="issue" data-original="#158" data-link="false" data-link-reference="false" data-project="202" data-issue="1051" data-project-path="cmucl/cmucl" data-iid="158" data-issue-type="issue" data-container="body" data-placement="top" title="Filename encodings on Darwin" class="gfm gfm-issue">#158</a> Darwin uses utf-8, but we don't support all the rules for pathnames.</li>
<li data-sourcepos="76:5-76:77">
<del data-sourcepos="76:7-76:14"><a href="/cmucl/cmucl/-/issues/162" data-reference-type="issue" data-original="#162" data-link="false" data-link-reference="false" data-project="202" data-issue="1062" data-project-path="cmucl/cmucl" data-iid="162" data-issue-type="issue" data-container="body" data-placement="top" title="Change *filename-encoding* to use :no-encoding" class="gfm gfm-issue">#162</a></del> <code data-sourcepos="76:17-76:35">*filename-encoding*</code> defaults to <code data-sourcepos="76:51-76:55">:null</code> to mean no encoding.</li>
<li data-sourcepos="77:5-77:86">
<del data-sourcepos="77:7-77:14"><a href="/cmucl/cmucl/-/issues/163" data-reference-type="issue" data-original="#163" data-link="false" data-link-reference="false" data-project="202" data-issue="1063" data-project-path="cmucl/cmucl" data-iid="163" data-issue-type="issue" data-container="body" data-placement="top" title="Getting the current cmucl version via command line option" class="gfm gfm-issue">#163</a></del> Add command-line option <code data-sourcepos="77:41-77:48">-version</code> and <code data-sourcepos="77:56-77:64">--version</code> to get lisp version.</li>
<li data-sourcepos="78:5-78:68">
<del data-sourcepos="78:7-78:14"><a href="/cmucl/cmucl/-/issues/165" data-reference-type="issue" data-original="#165" data-link="false" data-link-reference="false" data-project="202" data-issue="1066" data-project-path="cmucl/cmucl" data-iid="165" data-issue-type="issue" data-container="body" data-placement="top" title="Avoid inserting NIL into simple LOOP from FORMAT" class="gfm gfm-issue">#165</a></del> Avoid inserting NIL into simple <code data-sourcepos="78:49-78:52">LOOP</code> from <code data-sourcepos="78:61-78:66">FORMAT</code>.</li>
<li data-sourcepos="79:5-79:87">
<del data-sourcepos="79:7-79:14"><a href="/cmucl/cmucl/-/issues/166" data-reference-type="issue" data-original="#166" data-link="false" data-link-reference="false" data-project="202" data-issue="1067" data-project-path="cmucl/cmucl" data-iid="166" data-issue-type="issue" data-container="body" data-placement="top" title="(nth-value 1 (integer-decode-float least-positive-double-float)) causes bad things to happen." class="gfm gfm-issue">#166</a></del> Fix incorrect type declaration for exponent from <code data-sourcepos="79:66-79:85">integer-decode-float</code>.</li>
<li data-sourcepos="80:5-80:73">
<del data-sourcepos="80:7-80:14"><a href="/cmucl/cmucl/-/issues/167" data-reference-type="issue" data-original="#167" data-link="false" data-link-reference="false" data-project="202" data-issue="1068" data-project-path="cmucl/cmucl" data-iid="167" data-issue-type="issue" data-container="body" data-placement="top" title="double-float-exponent type lower bound off by one?" class="gfm gfm-issue">#167</a></del> Low bound for <code data-sourcepos="80:31-80:51">decode-float-exponent</code> type was off by one.</li>
<li data-sourcepos="81:5-81:74">
<del data-sourcepos="81:7-81:14"><a href="/cmucl/cmucl/-/issues/168" data-reference-type="issue" data-original="#168" data-link="false" data-link-reference="false" data-project="202" data-issue="1069" data-project-path="cmucl/cmucl" data-iid="168" data-issue-type="issue" data-container="body" data-placement="top" title="Don't use negated forms for jmp instructions" class="gfm gfm-issue">#168</a></del> Don't use negated forms for jmp instructions when possible.</li>
<li data-sourcepos="82:5-82:59">
<del data-sourcepos="82:7-82:14"><a href="/cmucl/cmucl/-/issues/169" data-reference-type="issue" data-original="#169" data-link="false" data-link-reference="false" data-project="202" data-issue="1071" data-project-path="cmucl/cmucl" data-iid="169" data-issue-type="issue" data-container="body" data-placement="top" title="Pprinter doesn't format define-vop or sc-case nicely." class="gfm gfm-issue">#169</a></del> Add pprinter for <code data-sourcepos="82:34-82:43">define-vop</code> and <code data-sourcepos="82:51-82:57">sc-case</code>.</li>
<li data-sourcepos="83:5-83:75">
<del data-sourcepos="83:7-83:14"><a href="/cmucl/cmucl/-/issues/172" data-reference-type="issue" data-original="#172" data-link="false" data-link-reference="false" data-project="202" data-issue="1076" data-project-path="cmucl/cmucl" data-iid="172" data-issue-type="issue" data-container="body" data-placement="top" title="Incorrect declared return type for pathname-match-p" class="gfm gfm-issue">#172</a></del> Declare <code data-sourcepos="83:25-83:40">pathname-match-p</code> as returning <code data-sourcepos="83:57-83:59">nil</code> or <code data-sourcepos="83:66-83:73">pathname</code>.</li>
<li data-sourcepos="84:5-84:58">
<del data-sourcepos="84:7-84:14"><a href="/cmucl/cmucl/-/issues/173" data-reference-type="issue" data-original="#173" data-link="false" data-link-reference="false" data-project="202" data-issue="1077" data-project-path="cmucl/cmucl" data-iid="173" data-issue-type="issue" data-container="body" data-placement="top" title="Add pprinter for define-assembly-routine" class="gfm gfm-issue">#173</a></del> Add pprinter for <code data-sourcepos="84:34-84:56">define-assembly-routine</code>.</li>
<li data-sourcepos="85:5-85:67">
<del data-sourcepos="85:7-85:14"><a href="/cmucl/cmucl/-/issues/176" data-reference-type="issue" data-original="#176" data-link="false" data-link-reference="false" data-project="202" data-issue="1080" data-project-path="cmucl/cmucl" data-iid="176" data-issue-type="issue" data-container="body" data-placement="top" title="short-site-name and long-site-name should be NIL" class="gfm gfm-issue">#176</a></del> <code data-sourcepos="85:17-85:31">SHORT-SITE-NAME</code> and <code data-sourcepos="85:39-85:52">LONG-SITE-NAME</code> return <code data-sourcepos="85:63-85:65">NIL</code>.</li>
<li data-sourcepos="86:5-86:66">
<del data-sourcepos="86:7-86:14"><a href="/cmucl/cmucl/-/issues/177" data-reference-type="issue" data-original="#177" data-link="false" data-link-reference="false" data-project="202" data-issue="1081" data-project-path="cmucl/cmucl" data-iid="177" data-issue-type="issue" data-container="body" data-placement="top" title="pprint deftransform and defoptimizer neatly" class="gfm gfm-issue">#177</a></del> Add pprinter for <code data-sourcepos="86:34-86:45">deftransform</code> and <code data-sourcepos="86:53-86:64">defoptimizer</code>.</li>
<li data-sourcepos="87:5-87:95">
<del data-sourcepos="87:7-87:14"><a href="/cmucl/cmucl/-/issues/192" data-reference-type="issue" data-original="#192" data-link="false" data-link-reference="false" data-project="202" data-issue="1103" data-project-path="cmucl/cmucl" data-iid="192" data-issue-type="issue" data-container="body" data-placement="top" title="Print radix marker by default in disassemblies and adjust note-column for x86" class="gfm gfm-issue">#192</a></del> Print radix marker in disassemblies and adjust note column to be larger for x86.</li>
<li data-sourcepos="88:5-88:97">
<del data-sourcepos="88:7-88:14"><a href="/cmucl/cmucl/-/issues/193" data-reference-type="issue" data-original="#193" data-link="false" data-link-reference="false" data-project="202" data-issue="1104" data-project-path="cmucl/cmucl" data-iid="193" data-issue-type="issue" data-container="body" data-placement="top" title="NIL and :UNSPECIFIC should be considered equivalent when comparing pathnames for equality" class="gfm gfm-issue">#193</a></del> Treat <code data-sourcepos="88:23-88:25">NIL</code> and <code data-sourcepos="88:33-88:43">:UNSPECIFIC</code> as equivalent when comparing pathnames with <code data-sourcepos="88:91-88:95">equal</code>.</li>
</ul>
</li>
<li data-sourcepos="89:3-89:18">
<p data-sourcepos="89:5-89:18">Other changes:</p>
</li>
<li data-sourcepos="90:3-90:51">
<p data-sourcepos="90:5-90:51">Improvements to the PCL implementation of CLOS:</p>
</li>
<li data-sourcepos="91:3-92:0">
<p data-sourcepos="91:5-91:34">Changes to building procedure:</p>
</li>
</ul>
<p data-sourcepos="93:1-94:43" dir="auto">This release is not binary compatible with code compiled using CMUCL
21d; you will need to recompile FASL files.</p>
<p data-sourcepos="96:1-100:53" dir="auto">See <a href="http://www.cmucl.org" rel="nofollow noreferrer noopener" target="_blank">http://www.cmucl.org</a> or
<a href="https://gitlab.common-lisp.net/cmucl/cmucl">https://gitlab.common-lisp.net/cmucl/cmucl</a> for more information,
See
<a href="https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl">https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl</a>
for obtaining CMUCL, including sources and binaries..</p>
<p data-sourcepos="103:1-103:46" dir="auto">We hope you enjoy using this release of CMUCL!</p>
<h3 data-sourcepos="105:1-105:15" dir="auto">
<a id="user-content-tag-message" class="anchor" href="#tag-message" aria-hidden="true"></a>Tag message</h3>
<p data-sourcepos="107:1-107:16" dir="auto">Snapshot 2023-04</p>2023-05-04T15:19:32ZRaymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2021-07snapshot-2021-07Snapshot 2021-07
Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2021-01snapshot-2021-01Snapshot 2021-01
Requires cross-compile from 2020-04
Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2020-04snapshot-2020-04Snapshot 2020-04
Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2019-06snapshot-2019-06Snapshot 2019-06
Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/21d21dRelease 21d
<h1 data-sourcepos="1:1-1:11" dir="auto">
<a id="user-content-cmucl-21d" class="anchor" href="#cmucl-21d" aria-hidden="true"></a>CMUCL 21d</h1>
<p data-sourcepos="3:1-5:27" dir="auto">The CMUCL project is pleased to announce the release of CMUCL 21c.
This is a major release which contains numerous enhancements and bug
fixes from the 21a release.</p>
<p data-sourcepos="7:1-16:14" dir="auto">CMUCL is a free, high performance implementation of the Common Lisp
programming language which runs on most major Unix platforms. It
mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
sophisticated native code compiler; a powerful foreign function
interface; an implementation of CLOS, the Common Lisp Object System,
which includes multi-methods and a meta-object protocol; a
source-level debugger and code profiler; and an Emacs-like editor
implemented in Common Lisp. CMUCL is maintained by a team of
volunteers collaborating over the Internet, and is mostly in the
public domain.</p>
<h2 data-sourcepos="18:1-18:23" dir="auto">
<a id="user-content-new-in-this-release" class="anchor" href="#new-in-this-release" aria-hidden="true"></a>New in this release:</h2>
<ul data-sourcepos="19:3-48:0" dir="auto">
<li data-sourcepos="19:3-19:17">Known issues:</li>
<li data-sourcepos="20:3-21:26">Feature enhancements
<ul data-sourcepos="21:5-21:26">
<li data-sourcepos="21:5-21:26">Update to ASDF 3.3.2</li>
</ul>
</li>
<li data-sourcepos="22:3-29:155">Changes
<ul data-sourcepos="23:5-29:155">
<li data-sourcepos="23:5-26:145">x86 and sparc have replaced the MT19937 RNG with xoroshiro128+ RNG.
<ul data-sourcepos="24:7-26:145">
<li data-sourcepos="24:7-24:101">The required state for this generator is just 4 32-bit words instead of the 600+ for MT19937.</li>
<li data-sourcepos="25:7-25:101">The generator is also faster than MT19937 (approximately 28% faster on x86 and 18% on sparc).</li>
<li data-sourcepos="26:7-26:145">The new function <code data-sourcepos="26:27-26:50">KERNEL:RANDOM-STATE-JUMP</code> modifies the given state to jump 2^64 samples ahead, allowing 2^64 non-overlapping sequences.</li>
</ul>
</li>
<li data-sourcepos="27:5-27:49">Updated CLX to telent clx version 06e39a0d.</li>
<li data-sourcepos="28:5-28:123">New functions <code data-sourcepos="28:22-28:38">SET-GC-ASSERTIONS</code> and <code data-sourcepos="28:46-28:62">GET-GC-ASSERTIONS</code>. See the docstrings for more information and also <del data-sourcepos="28:116-28:122"><a href="/cmucl/cmucl/-/issues/69" data-reference-type="issue" data-original="#69" data-link="false" data-link-reference="false" data-project="202" data-issue="406" data-project-path="cmucl/cmucl" data-iid="69" data-issue-type="issue" data-container="body" data-placement="top" title="Always build with gc assertion code" class="gfm gfm-issue">#69</a></del>.</li>
<li data-sourcepos="29:5-29:155">
<code data-sourcepos="29:8-29:19">MACHINE-TYPE</code> and <code data-sourcepos="29:27-29:41">MACHINE-VERSION</code> return more information about thep rocessor cmucl is running on, using information from the <code data-sourcepos="29:137-29:141">cpuid</code> instruction.</li>
</ul>
</li>
<li data-sourcepos="30:3-30:26">ANSI compliance fixes:</li>
<li data-sourcepos="31:3-31:14">Bug fixes:</li>
<li data-sourcepos="32:3-44:72">Gitlab tickets:
<ul data-sourcepos="33:5-44:72">
<li data-sourcepos="33:5-33:54">
<del data-sourcepos="33:7-33:13"><a href="/cmucl/cmucl/-/issues/48" data-reference-type="issue" data-original="#48" data-link="false" data-link-reference="false" data-project="202" data-issue="371" data-project-path="cmucl/cmucl" data-iid="48" data-issue-type="issue" data-container="body" data-placement="top" title="Update RNG from MT19937 to xoroshiro128+" class="gfm gfm-issue">#48</a></del> Update RNG from MT19937 to xoroshiro128+</li>
<li data-sourcepos="34:5-34:61">
<del data-sourcepos="34:7-34:13"><a href="/cmucl/cmucl/-/issues/45" data-reference-type="issue" data-original="#45" data-link="false" data-link-reference="false" data-project="202" data-issue="351" data-project-path="cmucl/cmucl" data-iid="45" data-issue-type="issue" data-container="body" data-placement="top" title="Handling of relative paths in `ext:run-program`" class="gfm gfm-issue">#45</a></del> Handling of relative paths in <code data-sourcepos="34:46-34:60">EXT:RUN-PROGRAM</code>
</li>
<li data-sourcepos="35:5-35:41">
<del data-sourcepos="35:7-35:13"><a href="/cmucl/cmucl/-/issues/50" data-reference-type="issue" data-original="#50" data-link="false" data-link-reference="false" data-project="202" data-issue="373" data-project-path="cmucl/cmucl" data-iid="50" data-issue-type="issue" data-container="body" data-placement="top" title="CLX (Hemlock) fails to run" class="gfm gfm-issue">#50</a></del> CLX (Hemlock) fails to run.</li>
<li data-sourcepos="36:5-36:25">
<del data-sourcepos="36:7-36:13"><a href="/cmucl/cmucl/-/issues/49" data-reference-type="issue" data-original="#49" data-link="false" data-link-reference="false" data-project="202" data-issue="372" data-project-path="cmucl/cmucl" data-iid="49" data-issue-type="issue" data-container="body" data-placement="top" title="CLM crashes" class="gfm gfm-issue">#49</a></del> CLM crashes</li>
<li data-sourcepos="37:5-37:44">
<del data-sourcepos="37:7-37:13"><a href="/cmucl/cmucl/-/issues/47" data-reference-type="issue" data-original="#47" data-link="false" data-link-reference="false" data-project="202" data-issue="366" data-project-path="cmucl/cmucl" data-iid="47" data-issue-type="issue" data-container="body" data-placement="top" title="Backquote and multiple splices" class="gfm gfm-issue">#47</a></del> Backquate and multiple splices</li>
<li data-sourcepos="38:5-38:58">
<del data-sourcepos="38:7-38:13"><a href="/cmucl/cmucl/-/issues/59" data-reference-type="issue" data-original="#59" data-link="false" data-link-reference="false" data-project="202" data-issue="386" data-project-path="cmucl/cmucl" data-iid="59" data-issue-type="issue" data-container="body" data-placement="top" title="Incorrect report of invalid number of arguments in function using a bounded DOUBLE-FLOAT type" class="gfm gfm-issue">#59</a></del> Incorrect type-derivation for <code data-sourcepos="38:46-38:57">decode-float</code>
</li>
<li data-sourcepos="39:5-39:58">
<del data-sourcepos="39:7-39:13"><a href="/cmucl/cmucl/-/issues/60" data-reference-type="issue" data-original="#60" data-link="false" data-link-reference="false" data-project="202" data-issue="387" data-project-path="cmucl/cmucl" data-iid="60" data-issue-type="issue" data-container="body" data-placement="top" title="The function C::%UNARY-FROUND is undefined" class="gfm gfm-issue">#60</a></del> The function <code data-sourcepos="39:29-39:44">C::%UNARY-FROUND</code> is undefined</li>
<li data-sourcepos="40:5-40:78">
<del data-sourcepos="40:7-40:13"><a href="/cmucl/cmucl/-/issues/58" data-reference-type="issue" data-original="#58" data-link="false" data-link-reference="false" data-project="202" data-issue="381" data-project-path="cmucl/cmucl" data-iid="58" data-issue-type="issue" data-container="body" data-placement="top" title="Bogus type error in comparison of complex number with THE form" class="gfm gfm-issue">#58</a></del> Bogus type error in comparison of complex number with <code data-sourcepos="40:70-40:72">THE</code> form</li>
<li data-sourcepos="41:5-41:95">
<del data-sourcepos="41:7-41:13"><a href="/cmucl/cmucl/-/issues/61" data-reference-type="issue" data-original="#61" data-link="false" data-link-reference="false" data-project="202" data-issue="388" data-project-path="cmucl/cmucl" data-iid="61" data-issue-type="issue" data-container="body" data-placement="top" title="Seg fault when compiling call to ARRAY-HAS-FILL-POINTER-P on bit vector constant" class="gfm gfm-issue">#61</a></del> Segfault when compiling call to <code data-sourcepos="41:48-41:71">ARRAY-HAS-FILL-POINTER-P</code> on bit vector constant</li>
<li data-sourcepos="42:5-42:79">
<del data-sourcepos="42:7-42:13"><a href="/cmucl/cmucl/-/issues/62" data-reference-type="issue" data-original="#62" data-link="false" data-link-reference="false" data-project="202" data-issue="389" data-project-path="cmucl/cmucl" data-iid="62" data-issue-type="issue" data-container="body" data-placement="top" title="Seg fault when compiling ARRAY-DISPLACEMENT on a string constant" class="gfm gfm-issue">#62</a></del> Segfault when compiling <code data-sourcepos="42:40-42:57">ARRAY-DISPLACEMENT</code> on a string constant</li>
<li data-sourcepos="43:5-43:70">
<del data-sourcepos="43:7-43:13"><a href="/cmucl/cmucl/-/issues/69" data-reference-type="issue" data-original="#69" data-link="false" data-link-reference="false" data-project="202" data-issue="406" data-project-path="cmucl/cmucl" data-iid="69" data-issue-type="issue" data-container="body" data-placement="top" title="Always build with gc assertion code" class="gfm gfm-issue">#69</a></del> GC assertions compiled in and allow user to enable them.</li>
<li data-sourcepos="44:5-44:72">
<del data-sourcepos="44:7-44:13"><a href="/cmucl/cmucl/-/issues/71" data-reference-type="issue" data-original="#71" data-link="false" data-link-reference="false" data-project="202" data-issue="452" data-project-path="cmucl/cmucl" data-iid="71" data-issue-type="issue" data-container="body" data-placement="top" title="Get more info for MACHINE-TYPE and MACHINE-VERSION" class="gfm gfm-issue">#71</a></del> More info for <code data-sourcepos="44:30-44:41">MACHINE-TYPE</code> and <code data-sourcepos="44:49-44:63">MACHINE-VERSION</code> for x86</li>
</ul>
</li>
<li data-sourcepos="45:3-45:18">Other changes:</li>
<li data-sourcepos="46:3-46:51">Improvements to the PCL implementation of CLOS:</li>
<li data-sourcepos="47:3-48:0">Changes to building procedure:</li>
</ul>
<p data-sourcepos="49:1-50:43" dir="auto">This release is not binary compatible with code compiled using CMUCL
21c; you will need to recompile FASL files.</p>
<p data-sourcepos="52:1-56:53" dir="auto">See <a href="http://www.cmucl.org" rel="nofollow noreferrer noopener" target="_blank">http://www.cmucl.org</a> or
<a href="https://gitlab.common-lisp.net/cmucl/cmucl">https://gitlab.common-lisp.net/cmucl/cmucl</a> for more information,
See
<a href="https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl">https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl</a>
for obtaining CMUCL, including sources and binaries..</p>
<p data-sourcepos="59:1-59:46" dir="auto">We hope you enjoy using this release of CMUCL!</p>2018-12-10T14:40:08ZRaymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2018-10snapshot-2018-10Snapshot 2018-10
Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2018-03snapshot-2018-03Snapshot 2018-03
2018-03-02
Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2018-02snapshot-2018-02Snapshot 2018-02
Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2018-01snapshot-2018-01Snapshot 2018-01
Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/21c21cRelease 21c
<h1 data-sourcepos="2:1-2:11" dir="auto">
<a id="user-content-cmucl-21c" class="anchor" href="#cmucl-21c" aria-hidden="true"></a>CMUCL 21c</h1>
<p data-sourcepos="4:1-6:27" dir="auto">The CMUCL project is pleased to announce the release of CMUCL 21c.
This is a major release which contains numerous enhancements and bug
fixes from the 21a release.</p>
<p data-sourcepos="8:1-17:14" dir="auto">CMUCL is a free, high performance implementation of the Common Lisp
programming language which runs on most major Unix platforms. It
mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
sophisticated native code compiler; a powerful foreign function
interface; an implementation of CLOS, the Common Lisp Object System,
which includes multi-methods and a meta-object protocol; a
source-level debugger and code profiler; and an Emacs-like editor
implemented in Common Lisp. CMUCL is maintained by a team of
volunteers collaborating over the Internet, and is mostly in the
public domain.</p>
<h2 data-sourcepos="19:1-19:23" dir="auto">
<a id="user-content-new-in-this-release" class="anchor" href="#new-in-this-release" aria-hidden="true"></a>New in this release:</h2>
<ul data-sourcepos="21:3-46:0" dir="auto">
<li data-sourcepos="21:3-21:17">Known issues:</li>
<li data-sourcepos="22:3-22:24">Feature enhancements</li>
<li data-sourcepos="23:3-24:16">Changes
<ul data-sourcepos="24:5-24:16">
<li data-sourcepos="24:5-24:16">ASDF 3.3.0</li>
</ul>
</li>
<li data-sourcepos="25:3-25:26">ANSI compliance fixes:</li>
<li data-sourcepos="26:3-32:16">Bug fixes:
<ul data-sourcepos="27:5-32:16">
<li data-sourcepos="27:5-29:34">
<code data-sourcepos="27:8-27:28">ENCODE-UNIVERSAL-TIME</code> accepts dates from 1899 if the final date
after accounting for time zones results in a positive
value. (See ticket <del data-sourcepos="29:26-29:32"><a href="/cmucl/cmucl/-/issues/36" data-reference-type="issue" data-original="#36" data-link="false" data-link-reference="false" data-project="202" data-issue="243" data-project-path="cmucl/cmucl" data-iid="36" data-issue-type="issue" data-container="body" data-placement="top" title="encode-universal-time signals error" class="gfm gfm-issue">#36</a></del>.)</li>
<li data-sourcepos="30:5-30:65">
<code data-sourcepos="30:8-30:15">CL:SLEEP</code> no longer gets interrupted (See ticket <del data-sourcepos="30:57-30:63"><a href="/cmucl/cmucl/-/issues/26" data-reference-type="issue" data-original="#26" data-link="false" data-link-reference="false" data-project="202" data-issue="218" data-project-path="cmucl/cmucl" data-iid="26" data-issue-type="issue" data-container="body" data-placement="top" title="The cmucl that never sleeps" class="gfm gfm-issue">#26</a></del>.)</li>
<li data-sourcepos="31:5-32:16">Fix some compiler warnings and clean up funny indentation in
asin code.</li>
</ul>
</li>
<li data-sourcepos="33:3-33:17">Trac Tickets:</li>
<li data-sourcepos="34:3-39:58">Gitlab tickets:
<ul data-sourcepos="35:5-39:58">
<li data-sourcepos="35:5-35:57">Ticket <del data-sourcepos="35:14-35:20"><a href="/cmucl/cmucl/-/issues/36" data-reference-type="issue" data-original="#36" data-link="false" data-link-reference="false" data-project="202" data-issue="243" data-project-path="cmucl/cmucl" data-iid="36" data-issue-type="issue" data-container="body" data-placement="top" title="encode-universal-time signals error" class="gfm gfm-issue">#36</a></del>: encode-universal-time signals error</li>
<li data-sourcepos="36:5-36:49">Ticket <del data-sourcepos="36:14-36:20"><a href="/cmucl/cmucl/-/issues/26" data-reference-type="issue" data-original="#26" data-link="false" data-link-reference="false" data-project="202" data-issue="218" data-project-path="cmucl/cmucl" data-iid="26" data-issue-type="issue" data-container="body" data-placement="top" title="The cmucl that never sleeps" class="gfm gfm-issue">#26</a></del>: The cmucl that never sleeps</li>
<li data-sourcepos="37:5-37:56">Ticket <del data-sourcepos="37:14-37:20"><a href="/cmucl/cmucl/-/issues/40" data-reference-type="issue" data-original="#40" data-link="false" data-link-reference="false" data-project="202" data-issue="342" data-project-path="cmucl/cmucl" data-iid="40" data-issue-type="issue" data-container="body" data-placement="top" title="Lisp executables segfault on start on some OSes" class="gfm gfm-issue">#40</a></del>: Move heap space location for linux</li>
<li data-sourcepos="38:5-38:50">Ticket <del data-sourcepos="38:14-38:20"><a href="/cmucl/cmucl/-/issues/41" data-reference-type="issue" data-original="#41" data-link="false" data-link-reference="false" data-project="202" data-issue="344" data-project-path="cmucl/cmucl" data-iid="41" data-issue-type="issue" data-container="body" data-placement="top" title="Report proper process status" class="gfm gfm-issue">#41</a></del>: Report proper process status</li>
<li data-sourcepos="39:5-39:58">Ticket <del data-sourcepos="39:14-39:20"><a href="/cmucl/cmucl/-/issues/44" data-reference-type="issue" data-original="#44" data-link="false" data-link-reference="false" data-project="202" data-issue="349" data-project-path="cmucl/cmucl" data-iid="44" data-issue-type="issue" data-container="body" data-placement="top" title="Add doc strings for accessors for the process structure" class="gfm gfm-issue">#44</a></del>: Add docstrings for process accessors</li>
</ul>
</li>
<li data-sourcepos="40:3-42:53">Other changes:
<ul data-sourcepos="41:5-42:53">
<li data-sourcepos="41:5-42:53">Continuous integration added to build and test cmucl on every
check-in. This does a build on a Linux system.</li>
</ul>
</li>
<li data-sourcepos="43:3-43:51">Improvements to the PCL implementation of CLOS:</li>
<li data-sourcepos="44:3-46:0">Changes to building procedure:</li>
</ul>
<p data-sourcepos="47:1-48:43" dir="auto">This release is not binary compatible with code compiled using CMUCL
21b; you will need to recompile FASL files.</p>
<p data-sourcepos="50:1-54:52" dir="auto">See <a href="http://www.cmucl.org" rel="nofollow noreferrer noopener" target="_blank">http://www.cmucl.org</a> or
<a href="https://gitlab.common-lisp.net/cmucl/cmucl">https://gitlab.common-lisp.net/cmucl/cmucl</a> for more information,
See
<a href="https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl">https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl</a>
for obtaining CMUCL, including sources and binaries.</p>
<p data-sourcepos="57:1-57:46" dir="auto">We hope you enjoy using this release of CMUCL!</p>2017-10-29T03:25:16ZRaymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2017-10snapshot-2017-10Snapshot 2017-10
<ul data-sourcepos="1:1-13:112" dir="auto">
<li data-sourcepos="1:1-1:10">
<p data-sourcepos="1:3-1:10">Changes:</p>
</li>
<li data-sourcepos="2:2-3:0">
<p data-sourcepos="2:4-2:13">ASDF 3.3.0</p>
</li>
<li data-sourcepos="4:1-4:11">
<p data-sourcepos="4:3-4:11">Bugfixes:</p>
</li>
<li data-sourcepos="5:2-6:0">
<p data-sourcepos="5:4-5:74">Fix some compiler warnings and clean up funny indentation in asin code.</p>
</li>
<li data-sourcepos="7:1-7:17">
<p data-sourcepos="7:3-7:17">Gitlab tickets:</p>
</li>
<li data-sourcepos="8:2-8:53">
<p data-sourcepos="8:4-8:53">Ticket <del data-sourcepos="8:11-8:17"><a href="/cmucl/cmucl/-/issues/40" data-reference-type="issue" data-original="#40" data-link="false" data-link-reference="false" data-project="202" data-issue="342" data-project-path="cmucl/cmucl" data-iid="40" data-issue-type="issue" data-container="body" data-placement="top" title="Lisp executables segfault on start on some OSes" class="gfm gfm-issue">#40</a></del>: Move heap space location for linux</p>
</li>
<li data-sourcepos="9:2-9:47">
<p data-sourcepos="9:4-9:47">Ticket <del data-sourcepos="9:11-9:17"><a href="/cmucl/cmucl/-/issues/41" data-reference-type="issue" data-original="#41" data-link="false" data-link-reference="false" data-project="202" data-issue="344" data-project-path="cmucl/cmucl" data-iid="41" data-issue-type="issue" data-container="body" data-placement="top" title="Report proper process status" class="gfm gfm-issue">#41</a></del>: Report proper process status</p>
</li>
<li data-sourcepos="10:2-11:1">
<p data-sourcepos="10:4-10:55">Ticket <del data-sourcepos="10:11-10:17"><a href="/cmucl/cmucl/-/issues/44" data-reference-type="issue" data-original="#44" data-link="false" data-link-reference="false" data-project="202" data-issue="349" data-project-path="cmucl/cmucl" data-iid="44" data-issue-type="issue" data-container="body" data-placement="top" title="Add doc strings for accessors for the process structure" class="gfm gfm-issue">#44</a></del>: Add docstrings for process accessors</p>
</li>
<li data-sourcepos="12:1-12:16">
<p data-sourcepos="12:3-12:16">Other changes:</p>
</li>
<li data-sourcepos="13:2-13:112">
<p data-sourcepos="13:4-13:112">Continuous integration added to build and test cmucl on every check-in. This does a build on a Linux system.</p>
</li>
</ul>2017-10-10T04:18:42ZRaymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2017-04snapshot-2017-04Snapshot 2017-04
Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2017-03snapshot-2017-03Snapshot 2017-03
Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/sparc64-dev-checkpoint-6sparc64-dev-checkpoint-6Much more works now. xep-allocate-frame appears to be working and
we actually reach GLOBALDB-INIT.
Haven't verified all the vops yet, but things look promising. In addition,
we can successfully compile files with :trace-file t which makes it much
easier to examine what code is being generated for each function.Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/sparc64-dev-checkpoint-5sparc64-dev-checkpoint-5Static symbol objects appear to be correct. The addresses
seem right, and the contents of the object appear to contain
the correct items, as determined by usring C print() to
print the objects.Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/snapshot-2017-01snapshot-2017-01Snapshot 2017-01
Raymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/tags/sparc64-dev-checkpoint-4sparc64-dev-checkpoint-4Support for 64-bit cores.
Cross compile works and sparc can at least load the core file
and get to call_into_lisp to try running the initial function.
Currently fails because we don't have the v9 stack bias
implemented.Raymond Toy