diff --git a/CHANGES b/CHANGES index 1881ac3fb..273f0da1b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,43 +1,99 @@ -Version 1.9.3 -============= +Version 1.10.0 +============== -Unreleased +14-FEB-2026 - + -* [r15775] Update to jna-5.14.0 seemingly fixing problems with CFFI for at least arm64-openjdk-21 +* [3450:3734edef398a] (Alejandro) Fix compiler bug reported by Samuel Ward . + +* [3449:046198495b7f] (Alejandro) Fix EQ hash table bug for CONS + +* [3447:7682875a6759] Container virtualization template + (Podman/Docker) uses openjdk25 + +* [r15780] Correctly signal error for incorrect MAKE-PATHNAME-TYPE + +* [r15775]ff. Update to jna-5.18.1. Support for CFFI is wonky under + darwin-arm64 with later JDKs: openjdk{11,17,25} succeed without segv + but with dubious results. + +* [r15779] (Tarn W. Burton) Add support for implementing + CL:FILE-LENGTH in for Gray streams. This is done via the + GRAY-STREAMS:STREAM-FILE-LENGTH generic function. + +* [r15776] (Tarn W. Burton) Implement SETfable Gray streams format + support with GRAY-STREAMS:STREAM-EXTERNAL-FORMAT. * [r15774] Update to asdf-3.3.7 -* [r15760] (Tarn W. Burton) Add SETF for STREAM-ELEMENT-TYPE in +* [r15776] (Tarn W. Burton) Add type checks to Gray streams default + methods to prevent recursion. + +* [r15769] Add Tarn W. Burton's NONTRIVIAL-GRAY-STREAMS to the Github + CI workflow. + +* [r15766] (Tarn W. Burton) Add SETF forn STREAM-ELEMENT-TYPE in gray-streams module. -* [r15759] (Tarn W. Burton) Add generic CL:PATHNAME and CL:TRUENAME in +* [r15765] (Tarn W. Burton) Add generic CL:PATHNAME and CL:TRUENAME in gray-streams module. -* [r15753] (Tarn W. Burton) Always return second value indicating EOF +* [r15762] Attempt to be more computationally efficient when the + stepper instrumentation is not active. + +* [r15759] (Tarn W. Burton) Always return second value indicating EOF in Gray stream version of CL:READ-LINE as per the ANSI specification. -* [r15743] (Tarn W. Burton) Add support for implementing +* [r15749] (Tarn W. Burton) Add support for implementing CL:INTERACTIVE-STREAM-P in for Gray streams. This is done via by making CL:INTERACTIVE-STREAM-P a generic function when the Gray streams module is required. -* [r15742] (Tarn W. Burton) Add support for stream specific line - lengths. This is done via the GRAY-STREAMS:STREAM-LINE-LENGTH +* [r15748][r15745] (Tarn W. Burton) Add support for stream specific + line lengths. This is done via the GRAY-STREAMS:STREAM-LINE-LENGTH generic function which is only used when CL:*PRINT-RIGHT-MARGIN* is NIL. The pretty printer and format have been updated to respect these line lengths. -* [r15741] (Tarn W. Burton) Add some missing default methods in the +* [r15747] (Tarn W. Burton) Add some missing default methods in the Gray streams module. -* [r15739] (Tarn W. Burton) Add support for implementing - CL:FILE-LENGTH in for Gray streams. This is done via the - GRAY-STREAMS:STREAM-FILE-LENGTH generic function. +* [r15743] (Alejandro) Fix CLOS change propagation for all subclasses. + +* [r15741] (Alejandro) Fix CLOS usage for + UPDATE-INSTANCE-FOR-REDEFINED-CLASS generic function. + +* [r15740] (Alejandro) Fix for issue with CLOS incorrectly + propagating initargs. + +* [r15735-6] (Alejandro) Fix compilation of literal quoted parts which + share parts. + +* [r15734] Implement a more efficient vector-to-vector REPLACE. + +* [r15732] Implement UPGRADED-ARRAY-ELEMENT-TYPE for non-specialized + byte types. + +* [r15731] Signal error for malformed #b/#o/#x/#r reader macros. + +* [r15730] (Alan Ruttenberg) Fix MAPC/MAPCAR for circular lists. + +* [r15729] Implement MOP compound type specializer. + +* [r15728] (Alejandrozf) Fix Procyon decompiler implementation for + CL:DISASSEMBLE. + +* [r15727] Teach CL:SUBTYPEP that a list can either be null or a cons, + and that null is both a symbol and a list. + +* [3448:766c6862cd9a] The ANSI-TEST suite always succeeds when run via + Github actions. This CI description is no longer pinned to a + specific revision of the ANSI-TEST suite, and as such, will vary by + invocation per the state of the suite available over the network. Version 1.9.2 diff --git a/README b/README index 5625caa9e..c4dd12b3a 100644 --- a/README +++ b/README @@ -56,11 +56,15 @@ to get something like Max. Heap Size (Estimated): 3.89G Using VM: OpenJDK 64-Bit Server VM - Armed Bear Common Lisp 1.9.2 - Java 17.0.2 Oracle Corporation +VM settings: + Max. Heap Size (Estimated): 4.00G + Using VM: OpenJDK 64-Bit Server VM + + Armed Bear Common Lisp 1.10.0 + Java 11.0.24 Eclipse Adoptium OpenJDK 64-Bit Server VM - Low-level initialization completed in 0.432 seconds. - Startup completed in 2.246 seconds. + Low-level initialization completed in 0.201 seconds. + Startup completed in 1.013 seconds. Type ":help" for a list of available commands. CL-USER(1): @@ -86,9 +90,9 @@ Java executable (`java`) is in your shell's path. Java 8, 11, 17 are strongly supported by ABCL, but others may work with a little elbow grease. -[maven-abcl]: -[maven-abcl-contrib]: -[abcl.org-release]: +[maven-abcl]: +[maven-abcl-contrib]: +[abcl.org-release]: To start ABCL, simply issue the following command: @@ -96,11 +100,15 @@ To start ABCL, simply issue the following command: which should result in output like the following - Armed Bear Common Lisp 1.9.2 - Java 17.0.7 OpenJDK Porters Group +VM settings: + Max. Heap Size (Estimated): 4.00G + Using VM: OpenJDK 64-Bit Server VM + + Armed Bear Common Lisp 1.10.0 + Java 21.0.2 MacPorts OpenJDK 64-Bit Server VM - Low-level initialization completed in 0.107 seconds. - Startup completed in 0.493 seconds. + Low-level initialization completed in 0.085 seconds. + Startup completed in 0.436 seconds. CL-USER(1): Yer now at the interactive ABCL "Read Eval Print Loop" (REPL): hacks @@ -118,10 +126,10 @@ instructions expressed by the venerable Apache Ant tool. Alternately, one may use the Apache Maven tool as a facade to Ant. -To build, one must have a Java 8, 11, or 17 openjdk installed -locally. Just the Java Runtime Environment (JRE) isn't enough, as you -need the Java compiler ('javac') to compile the Java source of the -ABCL implementation. +To build, one must have a openjdk under Long Term Supported (LTS) +status installed locally. Just the Java Runtime Environment (JRE) +isn't enough, as you need the Java compiler ('javac') to compile the +Java source of the ABCL implementation. Download a binary distribution [Ant version 1.7.1 or greater][ant]. Unpack the files somewhere convenient, ensuring that the 'ant' (or @@ -158,9 +166,8 @@ or from the shell as bash ci/create-abcl-properties.bash openjdk17 -Currently supported platforms are 'openjdk8', 'openjdk11', -'openjdk13', 'openjdk14', 'openjdk15', 'openjd16', 'openjdk17', -'openjdk18', and 'openjdk19'. +Currently supported platforms are 'openjdk8', 'openjdk11', 'openjdk17', +'openjdk21', and 'openjdk25'. USING APACHE NETBEANS @@ -218,7 +225,7 @@ ABCL has a [User Manual][manual] stating its conformance to the ANSI standard, providing a compliant and practical Common Lisp implementation. -[manual]: +[manual]: TESTS @@ -226,13 +233,14 @@ TESTS | Version | Failures | Total | |---------+----------+-------| + | 1.10.0| | | | 1.9.2 | 63 | 21902 | | 1.9.1 | 60 | 21870 | | 1.9.0 | 61 | 21870 | | 1.8.0 | 49 | 21848 | | 1.5.0 | 48 | 21708 | -ABCL 1.9.2 currently fails ~63 out of 21902 the current ANSI test +ABCL 1.10.0 currently fails ~63 out of 21902 the current ANSI test suite derived from the tests originally written for GCL. [ansi-test]: diff --git a/abcl-prove.asd b/abcl-prove.asd index 48a5ebd4f..f26f171fd 100644 --- a/abcl-prove.asd +++ b/abcl-prove.asd @@ -1,6 +1,6 @@ ;;; -*- Mode: LISP; Syntax: COMMON-LISP -*- (defsystem :abcl-prove - :version "1.9.2" + :version "1.10.0" :defsystem-depends-on (prove-asdf) :depends-on (prove) :perform (test-op (o c) diff --git a/abcl.asd b/abcl.asd index fde04150f..f635dbf97 100644 --- a/abcl.asd +++ b/abcl.asd @@ -1,10 +1,10 @@ ;;; -*- Mode: LISP; Syntax: COMMON-LISP -*- (defsystem abcl - :version "1.9.2" + :version "1.10.0" :in-order-to ((test-op (test-op "abcl/test/lisp")))) (defsystem abcl/test/lisp - :version "1.9.2" + :version "1.10.0" :description "Test ABCL with the its own collection of unit tests." :perform (test-op (o s) (uiop:symbol-call :abcl.test.lisp '#:run)) @@ -80,8 +80,8 @@ the ANSI test suite, so that we may build on its 'API'. Requires that the contents of ~ -be in a directory named '../ansi-test/'." - :pathname "../ansi-test/" ;;; NB works when loaded from ASDF but not with a naked EVAL +be in a sibling directory readable as './../ansi-test/'." + :pathname "./../ansi-test/" ;;; NB works when loaded from ASDF but not with a naked EVAL :default-component-class cl-source-file.lsp :components ((:file "rt-package") (:file "rt" :depends-on (rt-package)))) diff --git a/abcl.rdf b/abcl.rdf index b7b69706b..383183530 100644 --- a/abcl.rdf +++ b/abcl.rdf @@ -1,38 +1,46 @@ # -*- Mode: n3 -*- -@prefix abcl: . -<> - abcl:is "W3C Turtle RDF serializations format" . - -@prefix doap: . @prefix rdf: . @prefix rdfs: . +@prefix doap: . +@prefix dc: . -<> a doap:Project . - -<> rdfs:seeAlso . -<> rdfs:seeAlso . +@prefix abcl: . +@prefix urn: . +<> + a doap:Project ; + abcl:is "W3C Turtle RDF serializations format" ; + dc:Standard "" ; + rdfs:seeAlso [ + a rdf:Bag ; + rdf:_1 "" ; + rdf:_2 "ANSI+INCITS+226-1994+(R2004).pdf" ; + ] ; + dc:abstract + """ +ANSI INCITS 226-1994 (R2004) American National Standard for Programming Language Common LISP (X3J13) +""" ; + rdfs:seeAlso "" ; + rdfs:seeAlso "" ; + rdfs:seeAlso "" ; + rdfs:seeAlso "" ; + rdfs:seeAlso "" ; +. -@prefix dc: . <> abcl:branch ; - dc:identifier ; # deprecated? - dc:identifier ; + dc:identifier "urn:abcl.org/1.10.0" ; + dc:identifier "urn:abcl.org/release/1.10.0#" ; doap:language "Common Lisp" ; dc:created "01-JAN-2004" ; - dc:modified "11-MAR-2024" ; - dc:version "abcl-1.9.3" ; - dc:release "dev" ; -# dc:release "rc-0" ; + dc:modified "26-JAN-2026" ; + dc:version "abcl-1.10.0" ; +# dc:release "dev" ; + dc:release "rc-0" ; abcl:git ; abcl:git ; - abcl:svn . - -<> - rdfs:seeAlso ; - rdfs:seeAlso ; - rdfs:seeAlso ; - rdfs:seeAlso . + abcl:svn ; +. @prefix dc: . @@ -47,16 +55,19 @@ doap:language "Common Lisp" . -<> [ + a rdf:Bag; rdf:_0 "Common Lisp"; rdf:_1 "Java"; rdf:_2 "Ant"; rdf:_3 "Bourne Shell Script"; - rdf:_4 "Windows Batch Script" -] . + rdf:_4 "Windows Batch Script" ; +. - + + rdfs:comment """ +Established nicknames for all source revisions to Armed Bear Common Lisp +""" ; dc:contributor [ a rdf:Bag; rdf:_1024 _:peter ; @@ -93,8 +104,10 @@ doap:language - "Common Lisp", "Java", "Ant", "Bourne Shell Script", "Windows Batch Script" . + "Common Lisp", "Java", + "Ant", "Bourne Shell Script", "Windows Batch Script" . +# ad-hoc nickname adjustments _:user dc:identifier ; rdf:label "V-ille" . @@ -105,12 +118,12 @@ _:user dc:identifier ; dc:license ; dc:license ; dc:licenseDocument - ; + ; ] . doap:Project rdfs:seeAlso [ a rdf:Bag; - rdf:_0 ; + rdf:_0 ; rdf:_1 ; rdf:_2 ; rdf:_4 ; @@ -136,23 +149,15 @@ doap:Project rdfs:seeAlso [ rdf:_23 ; rdf:_29 ; rdf:_31 ; - rdf:_37 ; + rdf:_37 ; + rdf:_41 ; ] ; ] . <> abcl:provides ; - rdfs:seeAlso . - -<> dc:Standard ; - rdfs:seeAlso [ - a rdf:Bag ; - rdf:_1 ; - rdf:_2 "ANSI+INCITS+226-1994+(R2004).pdf" - ] ; - dc:abstract - "ANSI INCITS 226-1994 (R2004) American National Standard for Programming Language Common LISP (X3J13)" . + rdfs:seeAlso "". -<> rdfs:seeAlso . +<> rdfs:seeAlso "" . doap:Project rdfs:seeAlso , @@ -176,23 +181,24 @@ doap:Project rdfs:seeAlso ] . abcl:jna - dc:version "5.13.0" . + dc:version "5.18.1" . abcl:asdf dc:version "3.3.7" . -abcl:abcl-introspect - rdfs:seeAlso . - abcl:abcl-contrib - rdfs:seeAlso . + rdfs:seeAlso "" . +abcl:abcl-introspect + rdfs:seeAlso "" . abcl:abcl-asdf - rdfs:seeAlso . + rdfs:seeAlso "" . abcl:asdf-jar - rdfs:seeAlso . + rdfs:seeAlso "" . abcl:jfli - rdfs:seeAlso . + rdfs:seeAlso "" . abcl:jss - rdfs:seeAlso . + rdfs:seeAlso "" . +abcl:named-readtables + rdfs:seeAlso "" . # FIXME: figure out the right way to specify these values ontologically @prefix java: . @@ -201,23 +207,15 @@ abcl:jss [abcl:run _:supported] a rdf:Bag ; - rdf:_6 openjdk:6 ; - rdf:_7 openjdk:7 ; rdf:_8 openjdk:8 ; rdf:_11 openjdk:11 ; - rdf:_13 openjdk:13 ; - rdf:_14 openjdk:14 ; - rdf:_15 openjdk:15 ; - rdf:_16 openjdk:16 ; rdf:_17 openjdk:17 ; - rdf:_18 openjdk:18 ; - rdf:_19 openjdk:19 ; - rdf:_20 openjdk:20 ; rdf:_21 openjdk:21 ; - rdf:_22 openjdk:22 ; - rdfs:comment "Compatible Java runtimes" . + rdf:_25 openjdk:25 ; + rdfs:comment "Tested compatible Java runtimes" . [abcl:run _:options] + rdfs:seeAlso ; not.org:base "-XShowSettings:vm -DFile.encoding=UTF-8" ; openjdk:6 "-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=1g -XX:+UseConcMarkSweepGC" ; openjdk:8 "-XX:+AggressiveOpts" ; @@ -231,6 +229,7 @@ abcl:jss openjdk:20 "-XX:CompileThreshold=10" ; rdfs:comment "Java platform runtime options" . +# untested, deprecrated [abcl:build _:options] not.org:target "1.8" ; # not.org:source "1.6" ; @@ -238,12 +237,8 @@ abcl:jss not.org:debug "true" ; rdfs:comment "Java build options" . - [abcl:build _:supported] +[abcl:build _:possibly-works-on] a rdf:Bag ; - rdf:_6 openjdk:6 ; - rdf:_6 not.org:deprecated ; - rdf:_7 openjdk:7 ; - rdf:_7 not.org:deprecated ; rdf:_8 openjdk:8 ; rdf:_8 not.org:deprecated ; rdf:_11 openjdk:11 ; @@ -256,7 +251,17 @@ abcl:jss rdf:_19 openjdk:19 ; rdf:_21 openjdk:21 ; rdf:_22 openjdk:22 ; + rdf:_23 openjdk:23 ; + rdf:_24 openjdk:24 ; + rdf:_25 openjdk:25 ; rdfs:comment "Supported build platforms" . +[abcl:build _:build-possible-via-interpreter] + rdf:_6 openjdk:6 ; + rdf:_6 not.org:deprecated ; + rdf:_7 openjdk:7 ; + rdf:_7 not.org:deprecated . + + diff --git a/contrib/abcl-asdf/abcl-asdf-tests.asd b/contrib/abcl-asdf/abcl-asdf-tests.asd index e01ea0ce3..ff248cbaf 100644 --- a/contrib/abcl-asdf/abcl-asdf-tests.asd +++ b/contrib/abcl-asdf/abcl-asdf-tests.asd @@ -2,7 +2,7 @@ (defsystem abcl-asdf-tests :author "Mark Evenson" - :long-description "" + :long-description "" :version "2.1.0" :defsystem-depends-on (prove-asdf) :depends-on (abcl-asdf diff --git a/contrib/abcl-asdf/abcl-asdf.asd b/contrib/abcl-asdf/abcl-asdf.asd index bde464679..50e64d525 100644 --- a/contrib/abcl-asdf/abcl-asdf.asd +++ b/contrib/abcl-asdf/abcl-asdf.asd @@ -2,7 +2,7 @@ (defsystem abcl-asdf :author "Mark Evenson" :description "Extensions to ASDF for handling Java binary artifacts." - :long-description "" + :long-description "" :version "2.1.0" :depends-on (jss abcl-build) :components diff --git a/contrib/abcl-introspect/abcl-introspect-test.asd b/contrib/abcl-introspect/abcl-introspect-test.asd index b5437de9f..c7d63451a 100644 --- a/contrib/abcl-introspect/abcl-introspect-test.asd +++ b/contrib/abcl-introspect/abcl-introspect-test.asd @@ -2,7 +2,7 @@ (defsystem abcl-introspect-test :author "Mark Evenson" - :long-description "" + :long-description "" :version "2.1.0" :defsystem-depends-on (prove-asdf) :depends-on (abcl-asdf ;; locate various testing dependencies via ABCL-ASDF diff --git a/contrib/abcl-introspect/abcl-introspect.asd b/contrib/abcl-introspect/abcl-introspect.asd index 8406e4457..d44e3f162 100644 --- a/contrib/abcl-introspect/abcl-introspect.asd +++ b/contrib/abcl-introspect/abcl-introspect.asd @@ -2,7 +2,7 @@ (defsystem abcl-introspect :author ("Alan Ruttenberg" "Mark Evenson") :description "Introspection on compiled function to aid source location and other debugging functions." - :long-description "" + :long-description "" :version "2.1.0" :depends-on (jss) :components ((:module package diff --git a/contrib/asdf-jar/asdf-jar.asd b/contrib/asdf-jar/asdf-jar.asd index 36b3331e1..a93f8bace 100644 --- a/contrib/asdf-jar/asdf-jar.asd +++ b/contrib/asdf-jar/asdf-jar.asd @@ -2,7 +2,7 @@ (defsystem asdf-jar :author "Mark Evenson" :description "Packaging ASDF systems into jar files" - :long-description "" + :long-description "" :version "0.4.0" :in-order-to ((test-op (test-op :asdf-jar-test))) :components ((:module package diff --git a/contrib/jfli/README b/contrib/jfli/README index 1e7ad12a9..a820642e8 100644 --- a/contrib/jfli/README +++ b/contrib/jfli/README @@ -36,4 +36,4 @@ and whatever else you can think of, to asimon@math.bme.hu. # Colophon - <> abcl:documents . + <> abcl:documents . diff --git a/contrib/jfli/jfli.asd b/contrib/jfli/jfli.asd index 5be79abb4..48cdedeef 100644 --- a/contrib/jfli/jfli.asd +++ b/contrib/jfli/jfli.asd @@ -1,6 +1,6 @@ ;;;; -*- Mode: LISP -*- (defsystem jfli - :long-description "" + :long-description "" :version "0.2.0" :components ((:file "jfli"))) diff --git a/contrib/jss/jss.asd b/contrib/jss/jss.asd index 4dff16d58..0f707ee4d 100644 --- a/contrib/jss/jss.asd +++ b/contrib/jss/jss.asd @@ -1,7 +1,7 @@ ;;;; -*- Mode: LISP -*- (defsystem jss :author "Alan Ruttenberg, Mark Evenson" - :long-description "" + :long-description "" :version "3.7.0" :components ((:module base :pathname "" :serial t diff --git a/contrib/mvn/jna.asd b/contrib/mvn/jna.asd index 1e05ba2d6..bd387fe2e 100644 --- a/contrib/mvn/jna.asd +++ b/contrib/mvn/jna.asd @@ -3,7 +3,7 @@ ;;;; Need to have jna.jar present for CFFI to work. (defsystem jna :version "5.18.1" - :long-description "" + :long-description "" :defsystem-depends-on (jss abcl-asdf) :components ((:mvn "net.java.dev.jna/jna/5.18.1" :alternate-uri "https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.18.1/jna-5.18.1.jar" diff --git a/contrib/pom.xml b/contrib/pom.xml index c265d83f2..8efd90d98 100644 --- a/contrib/pom.xml +++ b/contrib/pom.xml @@ -14,7 +14,7 @@ org.abcl abcl-contrib - 1.9.3-SNAPSHOT + 1.10.0 jar Armed Bear Common Lisp (ABCL) Contribs Extra contributions for ABCL code not necessarily @@ -26,7 +26,7 @@ Individual ASDF system licensing: examine and accept individual terms by explicit consent - https://abcl.org/svn/tags/1.9.2/contrib/README.markdown + https://abcl.org/svn/tags/1.10.0/contrib/README.markdown repo @@ -38,7 +38,7 @@ scm:git:https://gitlab.common-lisp.net/abcl/abcl - https://abcl.org/trac/browser/tags/1.9.2/contrib/ + https://abcl.org/trac/browser/tags/1.10.0/contrib/ diff --git a/contrib/quicklisp/quicklisp-abcl.asd b/contrib/quicklisp/quicklisp-abcl.asd index 1ec30a199..7b9ca5745 100644 --- a/contrib/quicklisp/quicklisp-abcl.asd +++ b/contrib/quicklisp/quicklisp-abcl.asd @@ -1,7 +1,7 @@ ;;;; -*- Mode: LISP -*- (defsystem quicklisp-abcl :description "Load Quicklisp, installing from network if necessary." - :long-name "" + :long-name "" :version "0.6.0" :components ((:file "quicklisp-abcl")) :perform (load-op :after (o c) diff --git a/doc/manual/abcl.tex b/doc/manual/abcl.tex index 3c522a31f..d75b3ac72 100644 --- a/doc/manual/abcl.tex +++ b/doc/manual/abcl.tex @@ -12,9 +12,9 @@ \begin{document} \title{Armed Bear Common Lisp User Manual} -\date{Version 1.9.3 DRAFT \\ +\date{Version 1.10.0 \\ \smallskip -Unreleased} +February 2026} \author{Mark Evenson \and Erik H\"{u}lsmann \and Rudolf Schlatte \and Alessio Stalla \and Ville Voutilainen} @@ -119,13 +119,33 @@ \subsection{Preface to the Ninth Edition} \subsection{Preface to the Tenth Edition} For the Tenth edition, we have explicitly tested the stable, Long Term -Support (``LTS'') versions of the \textsc{OpenJDK}, namely \textsc{openjdk8}, -\textsc{openjdk11}, and \textsc{openjdk17}. We intend to drop one or -more of these platforms for the next edition in order to more -completely overhaul the implementations use of compare and swap on -memory originally allocated outside the hosting \textsc{JVM}. As such, the -Tenth edition is built released with openjdk8 but should run best on -\textsc{openjdk17}. +Support (``LTS'') versions of the \textsc{OpenJDK}, namely +\textsc{openjdk8}, \textsc{openjdk11}, \textsc{openjdk17}, and +\textsc{openjdk21}. We intend to drop one or more of these platforms +for the next edition in order to more completely overhaul the +implementations use of compare and swap on memory originally allocated +outside the hosting \textsc{JVM}. + +%%Preface to the Tenth edition, abcl-1.9.2 +\subsubsection{Preface to the Tenth Edition, Second Revision} + +With this release, the binaries for Second Revision of the Tenth +Edition are built with \textsc{openjdk11}. Users wishing to run on +the venerable \textsc{openjdk8} platform may use the +\textsc{ABCL-BUILD} contrib to recompile the implementation locally +from source (see Section~\ref{section:abcl-build} +page~\pageref{section:abcl-build}). + +%%Preface to the Eleventh edition, abcl-1.10.0 +\subsection{Preface to the Eleventh Edition} + +The Eleventh Edition of the implementation, aka \code{abcl-1.10.0} incorporates +most of Tarn Burton's work on providing reasonable \textsc{CLOS} scaffolding +for various \textsc{GRAY-STREAMS} implementation defaults. + +We have tested across on the latests currently available openjdk Long +Term Service (LTS) versions at time of our release, which means ABCL. +This means ABCL will run on any of \code{openjdk\{8,11,17,21,25\}}. \chapter{Introduction} @@ -135,15 +155,17 @@ \chapter{Introduction} \textsc{Java} byte-code\footnote{The class files produced by the compiler have a byte-code version of ``49.0''.}, with an efficiency that varies upon the hosting JVM implementation. \textsc{ABCL} -supports building and running on the \textsc{openjdk8}, -\textsc{openjdk11}, and \textsc{openjdk17} \textsc{JVM} -implementations\footnote{The codebase runs and compiles on every -historical openjdk from \textsc{openjdk6} through \textsc{openjdk8}, -does *not* run on either\textsc{openjdk9} or either\textsc{openjdk10}, -but then runs on every openjdk released as of May 2022 with minor -adjustments}. As of May 2022, we are using the Adoptium community -\cite{adoptium} binary releases which provides perhaps the least -encumbered installation of unencumbered openjdk implementations. +supports building and running on the ``Long Term Support'' (LTS) releases, namely the \textsc{openjdk8}, +\textsc{openjdk11}, \textsc{openjdk17}, \textsc{openjdk21}, and +\textsc{openjdk25} \textsc{JVM} implementations\footnote{The codebase +runs and compiles on every historical openjdk from \textsc{openjdk6} +through \textsc{openjdk8}, does *not* run on either\textsc{openjdk9} +or either\textsc{openjdk10}, but then runs on every openjdk released +as of May 2022 with minor adjustments}. As of May 2022, we are using +the Adoptium community \cite{adoptium} binary releases which provides +perhaps the least encumbered installation of unencumbered openjdk +implementations\footnote{The releases we test with may be installed +via \url{https://abcl.org/svn/tags/1.10.0/ci/install-openjdk.bash}}. Armed Bear provides the following integration methods for interfacing with Java code and libraries: @@ -241,7 +263,7 @@ \section{License} \textsc{ABCL} is licensed under the terms of the \textsc{GPL} v2 of June 1991 with an added ``classpath-exception'' clause (see the file \texttt{COPYING} in the source distribution\footnote{See - \url{http://abcl.org/svn/trunk/tags/1.9.2/COPYING}} for the license, + \url{https://abcl.org/svn/tags/1.10.0/COPYING}} for the license, term 13 in the same file for the classpath exception). This license broadly means that you must distribute the sources to \textsc{ABCL}, including any changes you make, together with a program that includes @@ -282,7 +304,7 @@ \chapter{Running ABCL} \textsc{ABCL} is packaged as a single jar file usually named either -\texttt{abcl.jar} or possibly something like \texttt{abcl-1.9.2.jar} if +\texttt{abcl.jar} or possibly something like \texttt{abcl-1.10.0.jar} if using a versioned package on the local file-system from your system vendor. This jar file can be executed from the command line to obtain a \textsc{REPL}\footnote{Read-Eval Print Loop, a Lisp command-line}, viz: @@ -752,7 +774,7 @@ \section{Java Scripting API (JSR-223)} This section describes the design decisions behind the ABCL JSR-223 support. It is not a description of what JSR-223 is or a tutorial on how to use it. See -\url{http://abcl.org/trac/browser/trunk/abcl/examples/jsr-223} +\url{https://abcl.org/svn/trunk/abcl/examples/jsr-223/README} for example usage. \subsection{Conversions} @@ -1640,7 +1662,7 @@ \chapter{Contrib} The \textsc{ABCL} contrib is packaged as a separate jar archive usually named \code{abcl-contrib.jar} or possibly something like -\code{abcl-contrib-1.9.2.jar}. The contrib jar is not loaded by the +\code{abcl-contrib-1.10.0.jar}. The contrib jar is not loaded by the implementation by default, and must be first initialized by the \code{REQUIRE} mechanism before using any specific contrib: @@ -1735,7 +1757,7 @@ \subsection{Directly Instructing Maven to Download JVM Artifacts} locally from the network as well. More extensive documentations and examples can be found at -\url{http://abcl.org/svn/tags/1.9.2/contrib/abcl-asdf/README.markdown}. +\url{https://abcl.org/svn/tags/1.10.0/contrib/abcl-asdf/README.markdown}. \section{asdf-jar} \label{section:asdf-jar} @@ -1748,7 +1770,7 @@ \section{asdf-jar} fasls in a jar archive. The documentation for this contrib can be found at -\url{http://abcl.org/svn/tags/1.9.2/contrib/asdf-jar/README.markdown}. +\url{https://abcl.org/svn/tags/1.10.0/contrib/asdf-jar/README.markdown}. \section{jss} \label{section:jss} @@ -1786,7 +1808,7 @@ \subsection{JSS usage} \end{listing-lisp} %$ <-- un-confuse Emacs font-lock Some more information on jss can be found in its documentation at -\url{http://abcl.org/svn/tags/1.9.2/contrib/jss/README.markdown} +\url{https://abcl.org/svn/tags/1.10.0/contrib/jss/README.markdown} \section{jfli} \label{section:jfli} @@ -1795,7 +1817,7 @@ \section{jfli} a descendant of Rich Hickey's early experimentations with using Java from Common Lisp. -\url{http://abcl.org/svn/tags/1.9.2/contrib/jfli/README}. +\url{https://abcl.org/svn/tags/1.10.0/contrib/jfli/README}. \section{abcl-introspect} \label{section:abcl-introspect} @@ -1903,7 +1925,7 @@ \subsection{Implementations for CL:DISASSEMBLE} \end{listing-lisp} -\url{http://abcl.org/svn/tags/1.9.2/contrib/abcl-introspect/}. +\url{https://abcl.org/svn/tags/1.10.0/contrib/abcl-introspect/}. \section{abcl-build} \label{section:abcl-build} @@ -1934,7 +1956,7 @@ \subsection{ABCL-BUILD Utilities} archives from the network. \end{itemize} -\url{http://abcl.org/svn/tags/1.9.2/contrib/abcl-build/}. +\url{https://abcl.org/svn/tags/1.10.0/contrib/abcl-build/}. \section{named-readtables} \label{section:named-readtables} @@ -1946,7 +1968,7 @@ \section{named-readtables} This contrib was included from the source available from \url{https://github.com/melisgl/named-readtables/}. -See \url{http://abcl.org/svn/tags/1.9.2/contrib/named-readtables/} for +See \url{https://abcl.org/svn/tags/1.10.0/contrib/named-readtables/} for more information. \chapter{History} @@ -1983,7 +2005,7 @@ \chapter{History} a maintenance release. In October 2016 we blessed the current \textsc{svn} trunk -\url{http://abcl.org/svn/trunk/} as 1.4.0, which includes the +\url{https://abcl.org/svn/trunk/} as 1.4.0, which includes the community contributions from Vihbu, Olof, Pipping, and Cyrus. We gingerly stepped into current century by establishing \textsc{git} bridges to the source repositories available via the URIs @@ -2011,8 +2033,12 @@ \chapter{History} Halfway through the $\pi$ $\alpha$ $\nu$ $\delta$ $\eta$ $\mu$ o $\zeta$ \cite{pandemos}, we dyslexic worker bears untied abcl-1.9.0. We released abcl-1.9.1 as a maintenance release in February 2023. In -June 2023, among other fixes, we substantially improved our GRAY-STREAM -support in abcl-1.9.2. +June 2023, among other fixes, we substantially improved our +GRAY-STREAM support in abcl-1.9.2. + +We finally tidied up abcl-1.10.0, but in the excitement of seeing +contemporary Common Lisp alive and well, failed to make a public +release until February 2026. \appendix diff --git a/pom.xml b/pom.xml index de2a0fff8..b6d34a6bb 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.abcl abcl - 1.9.3-SNAPSHOT + 1.10.0 jar ABCL - Armed Bear Common Lisp Common Lisp implementation running on the JVM diff --git a/src/org/armedbear/lisp/Version.java b/src/org/armedbear/lisp/Version.java index 91fc7a0d9..c4c9c5c67 100644 --- a/src/org/armedbear/lisp/Version.java +++ b/src/org/armedbear/lisp/Version.java @@ -41,7 +41,7 @@ public final class Version { private Version() {} - static final String baseVersion = "1.9.3-dev"; + static final String baseVersion = "1.10.0"; static void init() { try { diff --git a/src/org/armedbear/lisp/abcl-contrib.lisp b/src/org/armedbear/lisp/abcl-contrib.lisp index b1a6a9c40..73d9af426 100644 --- a/src/org/armedbear/lisp/abcl-contrib.lisp +++ b/src/org/armedbear/lisp/abcl-contrib.lisp @@ -86,7 +86,7 @@ Used to determine relative pathname to find 'abcl-contrib.jar'." ;; Need to test locating the system boot jar over the network, and ;; it would minimally need to check version information. (ignore-errors - (pathname "jar:https://abcl.org/releases/1.9.2/abcl.jar!/")))) + (pathname "jar:https://abcl.org/releases/1.10.0/abcl.jar!/")))) (defun flatten (list) (labels ((rflatten (list accumluator) diff --git a/test/lisp/ansi/ansi-test-failures b/test/lisp/ansi/ansi-test-failures index 2b9b53fc9..3976a245d 100644 --- a/test/lisp/ansi/ansi-test-failures +++ b/test/lisp/ansi/ansi-test-failures @@ -1049,3 +1049,57 @@ Last Changed Date: 2016-09-04 12:54:18 +0000 (Sun, 04 Sep 2016) FORMATTER.F.47 FORMAT.E.1 FORMAT.E.2 FORMAT.E.3 FORMAT.E.26 SYNTAX.SHARP-COLON.ERROR.1 APROPOS.ERROR.2 APROPOS-LIST.ERROR.2 DISASSEMBLE.ERROR.3 TRACE.8)) + +(compileit abcl-1.10.0-github-issue-690 :id x86_64-macos-openjdk25 + (LABELS.37 LABELS.38 LABELS.39 LOOP.1.40 LOOP.1.41 + LOOP.1.42 LOOP.1.43 LOOP.8.10 MAKE-LOAD-FORM.ORDER.3 + MAKE-LOAD-FORM.ORDER.4 MAKE-LOAD-FORM.ORDER.5 + MAKE-LOAD-FORM.ORDER.6 MAKE-LOAD-FORM.ORDER.7 + MAKE-LOAD-FORM.ORDER.8 MAKE-LOAD-FORM.ORDER.9 + MAKE-LOAD-FORM.ORDER.10 MAKE-LOAD-FORM.ORDER.11 + MAKE-LOAD-FORM.ORDER.12 MAKE-LOAD-FORM.ORDER.13 + MAKE-LOAD-FORM.ORDER.14 DEFGENERIC.ERROR.1 + DEFGENERIC.ERROR.2 DEFGENERIC.ERROR.3 + CALL-NEXT-METHOD.ERROR.1 CALL-NEXT-METHOD.ERROR.2 + DEFINE-METHOD-COMBINATION-LONG.04.2 + DEFINE-METHOD-COMBINATION-LONG.11.2 + DEFINE-METHOD-COMBINATION-LONG.11.3 MAKE-CONDITION.3 + MAKE-CONDITION.4 DEFPACKAGE.2B EXPT.29 MAP.48 + DEFSTRUCT.ERROR.3 DEFSTRUCT.ERROR.4 TYPE-OF.1 TYPE-OF.4 + PATHNAMES-PRINT-AND-READ-PROPERLY LOGICAL-PATHNAME.3 + PRINT.PATHNAME.1 PPRINT-FILL.2 PPRINT-LINEAR.2 + PPRINT-TABULAR.2 PPRINT-LOGICAL-BLOCK.17 FORMAT.F.5 + FORMAT.F.8 FORMAT.F.45 FORMATTER.F.45 FORMAT.F.46 + FORMATTER.F.46 FORMAT.F.46B FORMATTER.F.46B FORMAT.F.47 + FORMATTER.F.47 FORMAT.E.1 FORMAT.E.2 FORMAT.E.3 FORMAT.E.26 + SYNTAX.SHARP-COLON.ERROR.1 APROPOS.ERROR.2 + APROPOS-LIST.ERROR.2 DISASSEMBLE.ERROR.3 TRACE.8)) + +(compileit abcl-1.10.0 :id x86_64-macos-openjdk25 + (ETYPECASE.15 LABELS.37 LABELS.38 LABELS.39 LOOP.1.40 + LOOP.1.41 LOOP.1.42 LOOP.1.43 LOOP.8.10 + MAKE-LOAD-FORM.ORDER.3 MAKE-LOAD-FORM.ORDER.4 + MAKE-LOAD-FORM.ORDER.5 MAKE-LOAD-FORM.ORDER.6 + MAKE-LOAD-FORM.ORDER.7 MAKE-LOAD-FORM.ORDER.8 + MAKE-LOAD-FORM.ORDER.9 MAKE-LOAD-FORM.ORDER.10 + MAKE-LOAD-FORM.ORDER.11 MAKE-LOAD-FORM.ORDER.12 + MAKE-LOAD-FORM.ORDER.13 MAKE-LOAD-FORM.ORDER.14 + DEFGENERIC.ERROR.1 DEFGENERIC.ERROR.2 DEFGENERIC.ERROR.3 + CALL-NEXT-METHOD.ERROR.1 CALL-NEXT-METHOD.ERROR.2 + DEFINE-METHOD-COMBINATION-LONG.04.2 + DEFINE-METHOD-COMBINATION-LONG.11.2 + DEFINE-METHOD-COMBINATION-LONG.11.3 MAKE-CONDITION.3 + MAKE-CONDITION.4 DEFPACKAGE.2B EXPT.29 MAP.48 + DEFSTRUCT.ERROR.3 DEFSTRUCT.ERROR.4 TYPE-OF.1 TYPE-OF.4 + PATHNAMES-PRINT-AND-READ-PROPERLY LOGICAL-PATHNAME.3 + PRINT.PATHNAME.1 PPRINT-FILL.2 PPRINT-LINEAR.2 + PPRINT-TABULAR.2 PPRINT-LOGICAL-BLOCK.17 FORMAT.F.5 + FORMAT.F.8 FORMAT.F.45 FORMATTER.F.45 FORMAT.F.46 + FORMATTER.F.46 FORMAT.F.46B FORMATTER.F.46B FORMAT.F.47 + FORMATTER.F.47 FORMAT.E.1 FORMAT.E.2 FORMAT.E.3 FORMAT.E.26 + SYNTAX.SHARP-COLON.ERROR.1 APROPOS.ERROR.2 + APROPOS-LIST.ERROR.2 DISASSEMBLE.ERROR.3 TRACE.8)) + + + +