source: public_html/2023/abcl-1.9.1-release.html

Last change on this file was 15663, checked in by Mark Evenson, 14 months ago

abcl.org: final 1.9.1 release notes

File size: 14.6 KB
Line 
1<?xml version="1.0" encoding="utf-8"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5<head>
6<!-- 2023-02-23 Thu 13:02 -->
7<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8<meta name="viewport" content="width=device-width, initial-scale=1" />
9<title>ABCL 1.9.1 released</title>
10<meta name="author" content="Mark Evenson" />
11<meta name="generator" content="Org Mode" />
12<style>
13  #content { max-width: 60em; margin: auto; }
14  .title  { text-align: center;
15             margin-bottom: .2em; }
16  .subtitle { text-align: center;
17              font-size: medium;
18              font-weight: bold;
19              margin-top:0; }
20  .todo   { font-family: monospace; color: red; }
21  .done   { font-family: monospace; color: green; }
22  .priority { font-family: monospace; color: orange; }
23  .tag    { background-color: #eee; font-family: monospace;
24            padding: 2px; font-size: 80%; font-weight: normal; }
25  .timestamp { color: #bebebe; }
26  .timestamp-kwd { color: #5f9ea0; }
27  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
28  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
29  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
30  .underline { text-decoration: underline; }
31  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
32  p.verse { margin-left: 3%; }
33  pre {
34    border: 1px solid #e6e6e6;
35    border-radius: 3px;
36    background-color: #f2f2f2;
37    padding: 8pt;
38    font-family: monospace;
39    overflow: auto;
40    margin: 1.2em;
41  }
42  pre.src {
43    position: relative;
44    overflow: auto;
45  }
46  pre.src:before {
47    display: none;
48    position: absolute;
49    top: -8px;
50    right: 12px;
51    padding: 3px;
52    color: #555;
53    background-color: #f2f2f299;
54  }
55  pre.src:hover:before { display: inline; margin-top: 14px;}
56  /* Languages per Org manual */
57  pre.src-asymptote:before { content: 'Asymptote'; }
58  pre.src-awk:before { content: 'Awk'; }
59  pre.src-authinfo::before { content: 'Authinfo'; }
60  pre.src-C:before { content: 'C'; }
61  /* pre.src-C++ doesn't work in CSS */
62  pre.src-clojure:before { content: 'Clojure'; }
63  pre.src-css:before { content: 'CSS'; }
64  pre.src-D:before { content: 'D'; }
65  pre.src-ditaa:before { content: 'ditaa'; }
66  pre.src-dot:before { content: 'Graphviz'; }
67  pre.src-calc:before { content: 'Emacs Calc'; }
68  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
69  pre.src-fortran:before { content: 'Fortran'; }
70  pre.src-gnuplot:before { content: 'gnuplot'; }
71  pre.src-haskell:before { content: 'Haskell'; }
72  pre.src-hledger:before { content: 'hledger'; }
73  pre.src-java:before { content: 'Java'; }
74  pre.src-js:before { content: 'Javascript'; }
75  pre.src-latex:before { content: 'LaTeX'; }
76  pre.src-ledger:before { content: 'Ledger'; }
77  pre.src-lisp:before { content: 'Lisp'; }
78  pre.src-lilypond:before { content: 'Lilypond'; }
79  pre.src-lua:before { content: 'Lua'; }
80  pre.src-matlab:before { content: 'MATLAB'; }
81  pre.src-mscgen:before { content: 'Mscgen'; }
82  pre.src-ocaml:before { content: 'Objective Caml'; }
83  pre.src-octave:before { content: 'Octave'; }
84  pre.src-org:before { content: 'Org mode'; }
85  pre.src-oz:before { content: 'OZ'; }
86  pre.src-plantuml:before { content: 'Plantuml'; }
87  pre.src-processing:before { content: 'Processing.js'; }
88  pre.src-python:before { content: 'Python'; }
89  pre.src-R:before { content: 'R'; }
90  pre.src-ruby:before { content: 'Ruby'; }
91  pre.src-sass:before { content: 'Sass'; }
92  pre.src-scheme:before { content: 'Scheme'; }
93  pre.src-screen:before { content: 'Gnu Screen'; }
94  pre.src-sed:before { content: 'Sed'; }
95  pre.src-sh:before { content: 'shell'; }
96  pre.src-sql:before { content: 'SQL'; }
97  pre.src-sqlite:before { content: 'SQLite'; }
98  /* additional languages in org.el's org-babel-load-languages alist */
99  pre.src-forth:before { content: 'Forth'; }
100  pre.src-io:before { content: 'IO'; }
101  pre.src-J:before { content: 'J'; }
102  pre.src-makefile:before { content: 'Makefile'; }
103  pre.src-maxima:before { content: 'Maxima'; }
104  pre.src-perl:before { content: 'Perl'; }
105  pre.src-picolisp:before { content: 'Pico Lisp'; }
106  pre.src-scala:before { content: 'Scala'; }
107  pre.src-shell:before { content: 'Shell Script'; }
108  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
109  /* additional language identifiers per "defun org-babel-execute"
110       in ob-*.el */
111  pre.src-cpp:before  { content: 'C++'; }
112  pre.src-abc:before  { content: 'ABC'; }
113  pre.src-coq:before  { content: 'Coq'; }
114  pre.src-groovy:before  { content: 'Groovy'; }
115  /* additional language identifiers from org-babel-shell-names in
116     ob-shell.el: ob-shell is the only babel language using a lambda to put
117     the execution function name together. */
118  pre.src-bash:before  { content: 'bash'; }
119  pre.src-csh:before  { content: 'csh'; }
120  pre.src-ash:before  { content: 'ash'; }
121  pre.src-dash:before  { content: 'dash'; }
122  pre.src-ksh:before  { content: 'ksh'; }
123  pre.src-mksh:before  { content: 'mksh'; }
124  pre.src-posh:before  { content: 'posh'; }
125  /* Additional Emacs modes also supported by the LaTeX listings package */
126  pre.src-ada:before { content: 'Ada'; }
127  pre.src-asm:before { content: 'Assembler'; }
128  pre.src-caml:before { content: 'Caml'; }
129  pre.src-delphi:before { content: 'Delphi'; }
130  pre.src-html:before { content: 'HTML'; }
131  pre.src-idl:before { content: 'IDL'; }
132  pre.src-mercury:before { content: 'Mercury'; }
133  pre.src-metapost:before { content: 'MetaPost'; }
134  pre.src-modula-2:before { content: 'Modula-2'; }
135  pre.src-pascal:before { content: 'Pascal'; }
136  pre.src-ps:before { content: 'PostScript'; }
137  pre.src-prolog:before { content: 'Prolog'; }
138  pre.src-simula:before { content: 'Simula'; }
139  pre.src-tcl:before { content: 'tcl'; }
140  pre.src-tex:before { content: 'TeX'; }
141  pre.src-plain-tex:before { content: 'Plain TeX'; }
142  pre.src-verilog:before { content: 'Verilog'; }
143  pre.src-vhdl:before { content: 'VHDL'; }
144  pre.src-xml:before { content: 'XML'; }
145  pre.src-nxml:before { content: 'XML'; }
146  /* add a generic configuration mode; LaTeX export needs an additional
147     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
148  pre.src-conf:before { content: 'Configuration File'; }
149
150  table { border-collapse:collapse; }
151  caption.t-above { caption-side: top; }
152  caption.t-bottom { caption-side: bottom; }
153  td, th { vertical-align:top;  }
154  th.org-right  { text-align: center;  }
155  th.org-left   { text-align: center;   }
156  th.org-center { text-align: center; }
157  td.org-right  { text-align: right;  }
158  td.org-left   { text-align: left;   }
159  td.org-center { text-align: center; }
160  dt { font-weight: bold; }
161  .footpara { display: inline; }
162  .footdef  { margin-bottom: 1em; }
163  .figure { padding: 1em; }
164  .figure p { text-align: center; }
165  .equation-container {
166    display: table;
167    text-align: center;
168    width: 100%;
169  }
170  .equation {
171    vertical-align: middle;
172  }
173  .equation-label {
174    display: table-cell;
175    text-align: right;
176    vertical-align: middle;
177  }
178  .inlinetask {
179    padding: 10px;
180    border: 2px solid gray;
181    margin: 10px;
182    background: #ffffcc;
183  }
184  #org-div-home-and-up
185   { text-align: right; font-size: 70%; white-space: nowrap; }
186  textarea { overflow-x: auto; }
187  .linenr { font-size: smaller }
188  .code-highlighted { background-color: #ffff00; }
189  .org-info-js_info-navigation { border-style: none; }
190  #org-info-js_console-label
191    { font-size: 10px; font-weight: bold; white-space: nowrap; }
192  .org-info-js_search-highlight
193    { background-color: #ffff00; color: #000000; font-weight: bold; }
194  .org-svg { width: 90%; }
195</style>
196</head>
197<body>
198<div id="content" class="content">
199<h1 class="title">ABCL 1.9.1 released</h1>
200<div id="table-of-contents" role="doc-toc">
201<h2>Table of Contents</h2>
202<div id="text-table-of-contents" role="doc-toc">
203<ul>
204<li><a href="#orgbac8898">1. abcl-1.9.1</a>
205<ul>
206<li><a href="#org029859d">1.1. News</a>
207<ul>
208<li><a href="#orgcee16f6">1.1.1. CFFI compatibility</a></li>
209<li><a href="#org4d914c9">1.1.2. (Alan Ruttenberg) Ability to discriminate generic function execution on sub-types of MOP:SPECIALIZER</a></li>
210<li><a href="#orgaf2f8e4">1.1.3. Overhauled relationship to later openjdk threading models</a></li>
211<li><a href="#org4d69728">1.1.4. (Uthar) Implement array types for JAVA:JNEW-RUNTIME-CLASS</a></li>
212<li><a href="#orgc89f1db">1.1.5. (Alejandrozf) Compiler uses of signals to fallback to interpreted form</a></li>
213<li><a href="#org0b69b6e">1.1.6. (Alejandrozf) Further fixes to COMPILE-FILE-PATHNAME</a></li>
214<li><a href="#orgd182ebe">1.1.7. (Tarn W. Burton) Avoid NIL in simple LOOP from CL:FORMAT directives</a></li>
215<li><a href="#org03166f8">1.1.8. Broad testing and tweaks across Java Long Term Support (LTS) binaries</a></li>
216</ul>
217</li>
218</ul>
219</li>
220<li><a href="#orgdfdd304">2. Fuller details</a></li>
221</ul>
222</div>
223</div>
224<div id="outline-container-orgbac8898" class="outline-2">
225<h2 id="orgbac8898"><span class="section-number-2">1.</span> abcl-1.9.1</h2>
226<div class="outline-text-2" id="text-1">
227<p>
228If one has been hesitating about using the latest ABCL because one
229"never uses a dot oh release", we have now sloughed off abcl-1.9.1 for
230your appraisal from the depths of a Bear's long winter nap.  Now one
231can use the somewhat less buggy version of the Tenth Edition of Armed
232Bear Common Lisp, available, as usual, at
233<a href="https://abcl.org/releases/1.9.1/">https://abcl.org/releases/1.9.1/</a> or via Maven
234<a href="https://search.maven.org/artifact/org.abcl/abcl/1.9.1/jar">https://search.maven.org/artifact/org.abcl/abcl/1.9.1/jar</a>.
235</p>
236</div>
237
238<div id="outline-container-org029859d" class="outline-3">
239<h3 id="org029859d"><span class="section-number-3">1.1.</span> News</h3>
240<div class="outline-text-3" id="text-1-1">
241<p>
242N.b. that when running on openjdk17 and later runtimes, there is quite
243a bit of necessary fiddling with command line arguments to "open"
244various modules to the Bear's introspective gaze.  For example, see
245<a href="https://abcl.org/svn/tags/1.9.1/ci/create-abcl-properties.bash">https://abcl.org/svn/tags/1.9.1/ci/create-abcl-properties.bash</a> for
246the switches necessary to use CFFI to successfully run the CL+SSL test
247suite.
248</p>
249
250<p>
251As a reward for your patience, we mention the following notable
252improvements:
253</p>
254</div>
255
256<div id="outline-container-orgcee16f6" class="outline-4">
257<h4 id="orgcee16f6"><span class="section-number-4">1.1.1.</span> CFFI compatibility</h4>
258<div class="outline-text-4" id="text-1-1-1">
259<p>
260We improved the compiler to use wide indices for stack frame locals
261for the ALOAD, ASTORE, ILOAD, ISTORE, LLOAD, and LSTORE opcodes, which
262among other goodness, allows CFFI-TESTS to compile again.  In
263addition, we have updated the jar artifact used by CFFI to jna-5.12.1
264which includes support for native linkage on the Apple Silicon
265and other exotic architectures.
266</p>
267</div>
268</div>
269
270<div id="outline-container-org4d914c9" class="outline-4">
271<h4 id="org4d914c9"><span class="section-number-4">1.1.2.</span> (Alan Ruttenberg) Ability to discriminate generic function execution on sub-types of MOP:SPECIALIZER</h4>
272<div class="outline-text-4" id="text-1-1-2">
273<p>
274Following SBCL, CCL, and ECL, the Bear now accepts subtypes of
275MOP:SPECIALIZER as a generic function discriminator.
276</p>
277</div>
278</div>
279
280<div id="outline-container-orgaf2f8e4" class="outline-4">
281<h4 id="orgaf2f8e4"><span class="section-number-4">1.1.3.</span> Overhauled relationship to later openjdk threading models</h4>
282<div class="outline-text-4" id="text-1-1-3">
283<p>
284Going back to the future of the original green thread models, recent
285openjdk releases have started offering lightweight threading
286implementations.  For the Bear, the ability to spawn virtual threads
287is indicated by the presence of :VIRTUAL-THREADS in CL:*FEATURES*.
288Setting the special THREADS:*THREADING-MODEL* to :VIRTUAL results in
289THREADS:MAKE-THREADS spawning virtual threads.  On some openjdks one
290may have to pass a command-line switch the JVM to enable virtual
291threading.
292</p>
293</div>
294</div>
295
296<div id="outline-container-org4d69728" class="outline-4">
297<h4 id="org4d69728"><span class="section-number-4">1.1.4.</span> (Uthar) Implement array types for JAVA:JNEW-RUNTIME-CLASS</h4>
298<div class="outline-text-4" id="text-1-1-4">
299<p>
300Support for creating synthetic Java classes at runtime via
301JAVA:JNEW-RUNTIME-CLASS has been improved by introducing machinery for
302dealing with array types.
303</p>
304</div>
305</div>
306
307<div id="outline-container-orgc89f1db" class="outline-4">
308<h4 id="orgc89f1db"><span class="section-number-4">1.1.5.</span> (Alejandrozf) Compiler uses of signals to fallback to interpreted form</h4>
309<div class="outline-text-4" id="text-1-1-5">
310<p>
311We fall back to use an interpreted form for compilation results larger
312than 65535 bytes, which fixes the loading of the FirCAS computer
313algebra system.
314</p>
315</div>
316</div>
317
318<div id="outline-container-org0b69b6e" class="outline-4">
319<h4 id="org0b69b6e"><span class="section-number-4">1.1.6.</span> (Alejandrozf) Further fixes to COMPILE-FILE-PATHNAME</h4>
320<div class="outline-text-4" id="text-1-1-6">
321<p>
322We have restored the ability to compile Maxima by hopefully untangling
323the lask kinks in the reworking of our COMPILE-FILE-PATHNAME logic.
324</p>
325</div>
326</div>
327
328<div id="outline-container-orgd182ebe" class="outline-4">
329<h4 id="orgd182ebe"><span class="section-number-4">1.1.7.</span> (Tarn W. Burton) Avoid NIL in simple LOOP from CL:FORMAT directives</h4>
330<div class="outline-text-4" id="text-1-1-7">
331<p>
332Simplify simple CL:LOOP requires only compound forms, in the place
333where returning NIL is neither permitted nor desired. 
334</p>
335</div>
336</div>
337
338<div id="outline-container-org03166f8" class="outline-4">
339<h4 id="org03166f8"><span class="section-number-4">1.1.8.</span> Broad testing and tweaks across Java Long Term Support (LTS) binaries</h4>
340<div class="outline-text-4" id="text-1-1-8">
341<p>
342We have extensively tested against recent openjdk8, openjdk11,
343openjdk17, and openjdk19 binaries.  Unfortunately, for openjdk17+
344runtimes one needs to pass additional runtime command line switches to
345the hosting JVM which "open" Java modules to reflective actions. 
346</p>
347</div>
348</div>
349</div>
350</div>
351
352<div id="outline-container-orgdfdd304" class="outline-2">
353<h2 id="orgdfdd304"><span class="section-number-2">2.</span> Fuller details</h2>
354<div class="outline-text-2" id="text-2">
355<p>
356More details can be found in <a href="https://abcl.org/svn/tags/1.9.1/CHANGES">https://abcl.org/svn/tags/1.9.1/CHANGES</a>.
357</p>
358
359<p>
360Enjoy, and please CONS responsibly

361</p>
362</div>
363</div>
364</div>
365<div id="postamble" class="status">
366<p class="author">Author: Mark Evenson</p>
367<p class="date">Created: 2023-02-23 Thu 13:02</p>
368<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
369</div>
370</body>
371</html>
Note: See TracBrowser for help on using the repository browser.