From b41da10928df309447ff9b5ec90a5b87f2f4a174 Mon Sep 17 00:00:00 2001 From: Mark Evenson Date: Thu, 28 Apr 2022 16:25:58 +0200 Subject: [PATCH] abcl-1.9.0: rc-5 metadata "Complete" metadata for abcl-1.9.0 From 3883dccb28d42eabebcf3644242ce87467ade19d Mon Sep 17 00:00:00 2001 --- .hgignore | 1 + CHANGES | 126 ++++++++++++++- Dockerfile | 8 +- README | 143 ++++++++++-------- abcl-prove.asd | 2 +- abcl.asd | 4 +- abcl.rdf | 38 +++-- contrib/abcl-asdf/abcl-asdf-tests.asd | 2 +- contrib/abcl-asdf/abcl-asdf.asd | 2 +- contrib/abcl-asdf/asdf-mvn-module.asd | 2 +- .../abcl-introspect/abcl-introspect-test.asd | 2 +- contrib/abcl-introspect/abcl-introspect.asd | 2 +- contrib/asdf-jar/asdf-jar.asd | 2 +- contrib/jfli/README | 2 +- contrib/jfli/jfli.asd | 2 +- contrib/jss/jss.asd | 2 +- contrib/mvn/jna.asd | 2 +- contrib/pom.xml | 2 +- contrib/quicklisp/quicklisp-abcl.asd | 2 +- doc/manual/abcl.bib | 50 ++++++ doc/manual/abcl.tex | 86 +++++++---- doc/releng.org | 23 ++- pom.xml | 2 +- src/org/armedbear/lisp/Version.java | 2 +- src/org/armedbear/lisp/abcl-contrib.lisp | 2 +- 25 files changed, 385 insertions(+), 126 deletions(-) diff --git a/.hgignore b/.hgignore index dd675db5e..6ba54622a 100644 --- a/.hgignore +++ b/.hgignore @@ -10,3 +10,4 @@ ^doc/manual/abcl\.((bbl)|(blg)|(idx)|(ilg)|(ind)|(log)|(out)|(pdf)|(toc))$ ^doc/asdf/asdf\.((cp)|(cps)|(fn)|(fns)|(ky)|(log)|(pdf)|(pg)|(toc)|(tp)|(tps)|(vr)|(vrs))$ ^.idea/ +^\.java-version$ diff --git a/CHANGES b/CHANGES index 682562b0b..ea449fbd6 100644 --- a/CHANGES +++ b/CHANGES @@ -1,12 +1,132 @@ -Version 1.8.1 +Version 1.9.0 ============= -Unreleased +May 1, 2022 - + +* [r15572] (Jonathan Cunningham) Update reference to free version of + Rhode's Extensible Sequence paper + +* [r15571] (Alan Ruttenberg) JSS update to javaparser-3.24.2 Fix + tests, fix typo, lazily initialize via LOAD-JAVAPARSER on the first + use of the number argument version of the macro. + +* [r15570] (Uthar) Prevent JCLASS-SUPERCLASS from failing on names + (keywords) of classes generated by JNEW-RUNTIME-CLASS + +* [r15562] (Alan Ruttenberg) Add a restart for undefined functions + +* [r15561] Clarify call and lambda arguments limits somewhat + +* [r15560] (Alan Ruttenberg) Support for catch tags in SLIME + +* [r15559] (Alan Ruttenberg) Record source location for slot readers + +* [r15558] ABCL-INTROSPECT explictly home exported symbols in + ABCL-INTROSPECT/SYSTEM to identify machinery added to the SYSTEM + package after initial ANSI boot. + +* [r15549] (alejandrozf) Fix (coerce 'documentation 'function) + +* [r15548] (alejandrozf) Fill slots operation and operands with + DivisionByZero condition when it is raised + +* [r15545] (alejandrozf) Update fill pointer when arrays are shrunk if + necessary. + +* [r15544] [r15543] (phoe) Use PUSHNEW for CL:*FEATURES*; place + :EXTENSIBLE-SEQUENCES in CL:*FEATURES* where appropiate + +* [r15542] (alejandrozf) Accessible symbols are always printed with + package prefix + +* [r15541] (alejandrozf) Improve DRIBBLE to save almost everything, + lexically closing over new REPLs, now cleanly closing/restarting + +* [r15494] When reading ZIP archives from streams, use modified date + of byte source. + +* [r15493] The implmentation now uses :NEWEST for the version of + references to EXT:JAR-PATHNAME objects which have been cached. + +* [r15492] Address inconsistency between populating entries in + EXT:JAR-PATHNAME. A DIRECTORY should always be :ABSOLUTE in a + EXT:JAR-PATHNAME unless there is no name or type component. + +* [r15491] Fix ZipCache to use the file system modification date + +* [r15490] EXT:AS-JAR-PATHNAME-ARCHIVE returns reference to a + CL:PATHNAME as a EXT:JAR-PATHNAME + +* [r15489] DISABLE-ZIP-CACHE isn't currently working + +* [r15486] (Eric Timmons) Fix SYS:PROCESS-PID with SYS:RUN-PROGRAM + +* [r15483] Explictly scope all symbols in fasl loader + +* [r15481] Fix (or (unsigned-byte 8) (unsigned-byte 32)) vector reset + +* [r15480][r15484] (Robert Munyer) New algorithim for + COMPILE-FILE-PATHNAME + +* [r15479] ABCL-BUILD now tests with ant-1.10.9 + +* [r15478] ZS3 fix allocation for non-simple (unsigned-byte 8) vectors + +* [r15538] (contrapunctus) needled to correct outdated HTML links + +* [r15537] [r15536] [r15535] [r15534] [r15533] [r15532] ABCL-BUILD + Correct deprecated JAVA-COMPILE-FILE, add file unit for top-level + targets, implement COPY-DIRECTORIES-RECURSIVELY utility, docstring + for exported ENSURE-MAVEN, clean compile errors, updateant URIs to + available versions + +* [r15527] JNA update to jna-5.9.0 + +* [r15525] JSS fix introspecting abcl.jar under openjdk1[67] + +* [r15524] [r15520] Test released LTS Java editions for + openjdk{8,11,17} with Adoptium. + +* [r15523] (Scott Burson) Corrections to ENCODE-UNIVERSAL-TIME for + dates after 2037. + +* [r15521] Use java.lang.Integer.valueOf() rather than constructor + +* [r15519] (Samuel Hunter) Fix and standardize all error reader + functions. + +* [r15518] (Uthar) Remove confusing comment in example + +* [r15515] ASDF Fix JAR-PATHNAME loading systems + under Windows + +* [r15513] (alejandrozf) Fix generic lambda lists congruency with + keywords + +* [r15511] (Phil Eaton) Support variadic arguments with more required + parameters + +* [r15504] Allow JAVA:JCLASS to work with non-primtive arrays suffixed + with "[]" + +* [r15503] ABCL-AIO Fix finding ABCL-CONTRIB + +* [r15502] build: deprecate use of abcl.implementation.version + +* [r15501] (daewok) Uppercase arch before pushing it to *FEATURES* + +* [r15500] (Ferada) Fix printing of RANDOM-STATE + +* [r15496] Support use of Project Loom virtual threads. When the + underlying JVM supports virtual threads, :VIRTUAL-THREADS will be + present in CL:*FEATURES* + +* [r15495] This release targets openjdk8, openjdk11, and openjdk17 + Version 1.8.0 ============= diff --git a/Dockerfile b/Dockerfile index 7d2e17207..e15bcb1fe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,11 @@ -# TODO optimize me for space -FROM openjdk:11 +# TODO: optimize for space +FROM openjdk:17-bullseye -RUN export DEBIAN_FRONTEND='noninteractive' && \ +RUN (export DEBIAN_FRONTEND='noninteractive' && \ apt-get update && \ apt-get upgrade -y && \ apt-get install -y \ - libffi-dev ant maven + libffi-dev ant maven) USER root RUN useradd -ms /bin/bash abcl diff --git a/README b/README index bd3eea0b3..9a69ba47e 100644 --- a/README +++ b/README @@ -37,40 +37,44 @@ We have modified our GPLv2 license section 13 to read: software, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. +CONTAINERIZATION +---------------- -RUNNING FROM DOCKER -------------------- +We recommend using podman over docker for political reasons, but the +surface syntax is identical so if you must, just subsitute `docker` +for `podman` in the following examples. -With [Docker Engine][] installed one may execute: +With [podman][] installed, one may execute: - docker build -t YOURID/abcl . - docker run -it YOURID/abcl + podman build -t YOURID/abcl . + podman run -it YOURID/abcl to get something like - illin:~/work/abcl$ docker run -it YOURID/abcl - Armed Bear Common Lisp 1.8.0 - Java 11.0.8 AdoptOpenJDK + illin:~/work/abcl$ podman run -it YOURID/abcl + VM settings: + Max. Heap Size (Estimated): 498.00M + Using VM: OpenJDK 64-Bit Server VM + + Armed Bear Common Lisp 1.9.0 + Java 17.0.2 Oracle Corporation OpenJDK 64-Bit Server VM - Low-level initialization completed in 0.295 seconds. - Startup completed in 1.425 seconds. + Low-level initialization completed in 0.952 seconds. + Startup completed in 4.248 seconds. Type ":help" for a list of available commands. - CL-USER(1): (lisp-implementation-version) - "1.8.0" - "OpenJDK_64-Bit_Server_VM-AdoptOpenJDK-11.0.8+10" - "x86_64-Mac_OS_X-10.15.7" + CL-USER(1): To install Quicklisp for ABCL in the Docker container run: - docker run -t YOURID/abcl abcl \ + podman run -t YOURID/abcl abcl \ --batch --load /home/abcl/work/abcl/ci/install-quicklisp.lisp See for the build instructions. +[podman]: https://podman.io/releases/2022/02/22/podman-release-v4.0.0.html [Docker Engine]: https://www.docker.com/products/docker-engine - RUNNING FROM BINARY RELEASE --------------------------- @@ -78,12 +82,12 @@ After you have downloaded a binary release from either [the distributed Maven POM graph][maven-abcl] or from [abcl.org][abcl.org-release] archive unpack it into its own directory. To run ABCL directly from this directory, make sure the -Java executable (`java`) (Java 6, 7, 8, 11, 13, 14, and 15 are -supported by ABCL 1.7.0) is in your shell's path. +Java executable (`java`) (Java 6, 7, 8, 11, 13, 14, 15, 16, 17, and 18 +are supported by ABCL 1.9.0) is in your shell's path. -[maven-abcl]: -[maven-abcl-contrib]: -[abcl.org-release]: +[maven-abcl]: +[maven-abcl-contrib]: +[abcl.org-release]: To start ABCL, simply issue the following command: @@ -91,34 +95,21 @@ To start ABCL, simply issue the following command: which should result in output like the following - Armed Bear Common Lisp 1.8.0 - Java 11.0.8 AdoptOpenJDK + Armed Bear Common Lisp 1.9.0 + Java 17.0.2 OpenJDK Porters Group OpenJDK 64-Bit Server VM - Low-level initialization completed in 0.222 seconds. - Startup completed in 1.09 seconds. - Type ":help" for a list of available commands. + Low-level initialization completed in 0.107 seconds. + Startup completed in 0.493 seconds. CL-USER(1): Yer now at the interactive ABCL "Read Eval Print Loop" (REPL): hacks 'n glory await. - -SLIME ------ - -For usage of ABCL with the [Superior Lisp Interaction Mode for -Emacs][slime], one may easily start a Swank listener via: - - (require :asdf) - (require :abcl-contrib) - (asdf:load-system :quicklisp-abcl) - (ql:quickload :swank) - (swank:create-server :dont-close t) - -[slime]: https://common-lisp.net/project/slime/ +See the section headed "SLIME" for instructions to connect to this +repl from Emacs. -Building From Source Release +BUILDING FROM SOURCE RELEASE ---------------------------- ABCL may be built from its source code by executing the build @@ -147,24 +138,24 @@ Windows). Use this wrapper to start ABCL. The build may be customized by copying to , which will cause Ant to attempt to build incrementally as well as optimizing the runtime for a contemporary -64bit desktop/server machine running Java 8 or 11. The file contains -incomplete documentation on how it may be edited for subsequent -customization. As an alternative to copying the prototype, if one has -a version of bash locally, one may issue via Ant +64bit desktop/server machine running Java 8, 11, and/or 17. The file +contains incomplete documentation on how it may be edited for +subsequent customization. As an alternative to copying the prototype, +if one has a version of bash locally, one may issue via Ant - ant abcl.properties.autoconfigure.openjdk.11 + ant abcl.properties.autoconfigure.openjdk.17 or from the shell as - bash ci/create-abcl-properties.bash openjdk11 + bash ci/create-abcl-properties.bash openjdk17 Currently supported platforms are 'openjdk6', 'openjdk7', 'openjdk8', 'openjdk11', 'openjdk13', 'openjdk14', 'openjdk15', 'openjd16', and 'openjdk17'. -Using NetBeans --------------- +USING APACHE NETBEANS +--------------------- Alternatively, one may install the [Netbeans visual integrated development environment][netbeans], which contains both the Java @@ -182,7 +173,25 @@ to the NetBeans debug process. [netbeans]: http://netbeans.org/downloads/ -Bugs +SLIME +----- + +For usage of ABCL with the [Superior Lisp Interaction Mode for +Emacs][slime], one may easily start a Swank listener via: + + (require :asdf) + (require :abcl-contrib) + (asdf:load-system :quicklisp-abcl) + (or + (asdf:make :swank) + (ql:quickload :swank)) + (swank:create-server :dont-close t) + +[slime]: https://common-lisp.net/project/slime/ + + + +BUGS ---- Armed Bear Common Lisp strives to be a conforming ANSI X3J13 Common @@ -192,16 +201,20 @@ ABCL has a [User Manual][manual] stating its conformance to the ANSI standard, providing a compliant and practical Common Lisp implementation. -[manual]: https://abcl.org/releases/1.8.0/abcl-1.8.0.pdf +[manual]: https://abcl.org/releases/1.9.0/abcl-1.9.0.pdf -Tests +TESTS ----- -ABCL 1.8.0 currently fails ~49 out of 21848 total tests, whereas ABCL -1.5.0 failed 48 out of 21708 total tests in the [revised and expanded -ANSI CL test suite][ansi-test] (derived from the tests originally -written for GCL). + | Version | Failures | Total | + |---------+----------+-------| + | 1.9.0 | 61 | 21870 | + | 1.8.0 | 49 | 21848 | + | 1.5.0 | 48 | 21708 | + +ABCL 1.9.0 currently fails ~49(!!) out of 21848(!!) the current ANSI +test suite derived from the tests originally written for GCL. [ansi-test]: git+https://gitlab.common-lisp.net/ansi-test/ansi-test.git @@ -211,7 +224,7 @@ ABCL comes with a test suite. Consult the output of `ant help.test` for more information. -Support +SUPPORT ------- ABCL has many deficiencies, both known and unknown. Descriptions, @@ -226,7 +239,7 @@ or via opening an issue on either the [ABCL trac instance][trac] or [trac]: https://abcl.org/trac/ -Authors +AUTHORS ------- On behalf of all ABCL development team and contributors, @@ -245,9 +258,21 @@ On behalf of all ABCL development team and contributors, slyrus vibhu + Jonathan Cunningham + Uthar + alejandrozf + phoe + jackdaniel + Robert Munyer + Eric Timmons (daewok) + contrapunctus + Scott Burson + Samuel Hunter + Phil Eaton + András Simon Peter Graves Have fun! -October 2020 +May 2022 diff --git a/abcl-prove.asd b/abcl-prove.asd index ebf6d1309..195b71529 100644 --- a/abcl-prove.asd +++ b/abcl-prove.asd @@ -1,6 +1,6 @@ ;;; -*- Mode: LISP; Syntax: COMMON-LISP -*- (defsystem :abcl-prove - :version "1.8.0" + :version "1.9.0" :defsystem-depends-on (prove-asdf) :depends-on (prove) :perform (test-op (o c) diff --git a/abcl.asd b/abcl.asd index df4ef4c40..05d92457c 100644 --- a/abcl.asd +++ b/abcl.asd @@ -1,10 +1,10 @@ ;;; -*- Mode: LISP; Syntax: COMMON-LISP -*- (defsystem abcl - :version "1.8.0" + :version "1.9.0" :in-order-to ((test-op (test-op "abcl/test/lisp")))) (defsystem abcl/test/lisp - :version "1.8.0" + :version "1.9.0" :description "Test ABCL with the its own collection of unit tests." :perform (test-op (o s) (uiop:symbol-call :abcl.test.lisp '#:run)) diff --git a/abcl.rdf b/abcl.rdf index efd7633bb..6116a399f 100644 --- a/abcl.rdf +++ b/abcl.rdf @@ -16,13 +16,14 @@ @prefix dc: . <> abcl:branch ; - dc:identifier ; # deprecated? - dc:identifier ; + dc:identifier ; # deprecated? + dc:identifier ; doap:language "Common Lisp" ; dc:created "01-JAN-2004" ; - dc:modified "31-OCT-2020" ; - dc:version "abcl-1.8.1" ; - dc:release "dev" ; + dc:modified "01-MAY-2022" ; + dc:version "abcl-1.9.0" ; +# dc:release "dev" ; + dc:release "rc-1" ; abcl:git ; abcl:git ; abcl:svn . @@ -77,6 +78,17 @@ rdf:_12 _:vibhu ; rdf:_12 "Vibhu Mohindra" ; rdf:_13 "somewhat-functional-programmer" ; + rdf:_14 "Jonathan Cunningham"; + rdf:_15 "Uthar"; + rdf:_16 "alejandrozf"; + rdf:_17 "phoe"; + rdf:_18 "jackdaniel"; + rdf:_19 "Robert Munyer"; + rdf:_20 "contrapunctus"; + rdf:_21 "Scott Burson"; + rdf:_22 "Samuel Hunter"; + rdf:_23 "Eric Timmons (daewok)"; + rdf:_24 "Phil Eaton"; ] . @@ -93,12 +105,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 ; @@ -118,10 +130,11 @@ doap:Project rdfs:seeAlso [ rdf:_9 ; rdf:_10 ; rdf:_11 ; - rdf:_13 ; - rdf:_17 ; - rdf:_19 ; - rdf:_23 ; + rdf:_13 ; + rdf:_17 ; + rdf:_19 ; + rdf:_23 ; + rdf:_29 ; ] ; ] . @@ -161,7 +174,7 @@ doap:Project rdfs:seeAlso ] . abcl:jna - dc:version "5.6.0" . + dc:version "5.9.0" . abcl:asdf dc:version "3.3.5.7" . @@ -194,6 +207,7 @@ abcl:jss rdf:_14 openjdk:14 ; rdf:_15 openjdk:15 ; rdf:_16 openjdk:16 ; + rdf:_17 openjdk:17 ; rdfs:comment "Compatible Java runtimes" . [abcl:run _:options] diff --git a/contrib/abcl-asdf/abcl-asdf-tests.asd b/contrib/abcl-asdf/abcl-asdf-tests.asd index 28d2a3c21..db24517dd 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 6b6c7bc81..07c7b8121 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-asdf/asdf-mvn-module.asd b/contrib/abcl-asdf/asdf-mvn-module.asd index b246f8c98..901bad47f 100644 --- a/contrib/abcl-asdf/asdf-mvn-module.asd +++ b/contrib/abcl-asdf/asdf-mvn-module.asd @@ -4,7 +4,7 @@ :version "1.0.0" :depends-on (jss abcl-asdf) :description "Handles Maven artifact exclusions via the ADSF:MVN-MODULE component." - :long-description "" + :long-description "" :version "1.0.0" :in-order-to ((test-op (test-op asdf-mvn-module-tests))) :components ((:module source diff --git a/contrib/abcl-introspect/abcl-introspect-test.asd b/contrib/abcl-introspect/abcl-introspect-test.asd index 0e15238c4..400420af0 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 b15cacf50..8caf67382 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 dfe311185..7cb578bf0 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.3.2" :components ((:module base :pathname "" diff --git a/contrib/jfli/README b/contrib/jfli/README index 64724f5c4..0fb341ef3 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 a4cca281d..6ddd708f7 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 79f505d01..c3a95460a 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 98f677dae..a5ea79ad1 100644 --- a/contrib/mvn/jna.asd +++ b/contrib/mvn/jna.asd @@ -2,7 +2,7 @@ ;;;; Need to have jna.jar present for CFFI to work. (defsystem jna - :long-description "" + :long-description "" :version "5.9.0" :defsystem-depends-on (jss abcl-asdf) :components ((:mvn "net.java.dev.jna/jna/5.9.0" diff --git a/contrib/pom.xml b/contrib/pom.xml index d0acf59c4..9d936fd16 100644 --- a/contrib/pom.xml +++ b/contrib/pom.xml @@ -13,7 +13,7 @@ org.abcl abcl-contrib - 1.8.1-SNAPSHOT + 1.9.0 jar Armed Bear Common Lisp (ABCL) Contribs Extra packages--contribs--for ABCL diff --git a/contrib/quicklisp/quicklisp-abcl.asd b/contrib/quicklisp/quicklisp-abcl.asd index dbb798316..808b956ad 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.bib b/doc/manual/abcl.bib index c5df2d1a6..6f0d113ce 100644 --- a/doc/manual/abcl.bib +++ b/doc/manual/abcl.bib @@ -117,4 +117,54 @@ @Misc{lea-1998 howpublished = {\url{http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html}}, year = {1998}, note = {Last accessed Oct 2, 2016}, +} + +@Misc{adoptium, + key = {adoptium-2022}, + author ={The Adoptium Working Group}, + title = "Freely redistributable Adoptium OpenJDK releases", + howpublished = {\url{https://adoptium.net/}}, + year = {2022}, + note = {Last accessed April 29, 2022}, + } + +% title = "πάνδημος", +@Misc{pandemos, + key = {pandemos-2020}, + author ={Harry Halprin}, + title = "$\pi$$\alpha$$\nu$$\delta$$\eta$$\mu$o$\zeta$", + howpublished = {\url{https://agorist.xyz/files/Agorism_XXI_I_2022.pdf}}, + year = {2020}, + note = {Last accessed April 29, 2022}, + } + +@Misc{nio, + key = {java-8-nio}, + author ={Sun Microsystems}, + title = "NIO", + howpublished = {\url{https://docs.oracle.com/javase/8/docs/api/java/nio/package-summary.html}}, + year = {2005}, + note = {Last accessed April 30, 2022}, + } + +@Misc{future-history, + key = {future-history}, + author ={Mark Evenson}, + title = "Notes on the Future History of Arming Bears", + howpublished = {\url{http://slack.net/~evenson/abcl/history/abcl-future-history.html}}, + year = {2021}, + note = {Last accessed April 30, 2022}, } + + + + + + + + + + + + + diff --git a/doc/manual/abcl.tex b/doc/manual/abcl.tex index ca07e4fbd..cf62691af 100644 --- a/doc/manual/abcl.tex +++ b/doc/manual/abcl.tex @@ -2,16 +2,19 @@ % http://en.wikibooks.org/wiki/LaTeX/ \documentclass[10pt]{book} % also need to have cm-super installed for high quality rendering -\usepackage[T1]{fontenc} + +%\usepackage[LGR,T1]{fontenc} +\usepackage[utf8]{inputenc} + \usepackage{abcl} \usepackage{hyperref} % Put this one last, it redefines lots of internals \begin{document} \title{Armed Bear Common Lisp User Manual} -\date{Version 1.8.1\\ +\date{Version 1.9.0\\ \smallskip -Unreleased} +May 2022} \author{Mark Evenson \and Erik H\"{u}lsmann \and Rudolf Schlatte \and Alessio Stalla \and Ville Voutilainen} @@ -89,7 +92,7 @@ \subsection{Preface to the Eighth Edition} \code{cl:make-array}.\footnote{See \ref{section:make-array} on page \pageref{section:make-array}}. -%%Preface to the Ninth edition, abcl-1.8 +%%Preface to the Ninth edition, abcl-1.8.0 \subsection{Preface to the Ninth Edition} With the Ninth Edition of the implementation we now support building and running with \textsc{openjdk15}. This is intended as the last @@ -112,6 +115,18 @@ \subsection{Preface to the Ninth Edition} \pageref{section:asdf-jar} for a recipe for packaging and accessing such artifacts.}. +%%Preface to the Tenth edition, abcl-1.9.0 +\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}. + \chapter{Introduction} Armed Bear Common Lisp (\textsc{ABCL}) is an implementation of @@ -120,12 +135,15 @@ \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{Java 6}, \textsc{Java 7}, -\textsc{Java 8}, \textsc{Java 11}, \textsc{Java 13}, \textsc{Java 14} -and \textsc{Java 15} openjdk platform \textsc{JVM} -implementations\footnote{As of October 2020, the AdoptOpenJDK.net -community \url{https://adoptopenjdk.net/} provides perhaps the easiest -installation of unencumbered openjdk implementations}. +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. Armed Bear provides the following integration methods for interfacing with Java code and libraries: @@ -223,7 +241,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.8.0/COPYING}} for the license, + \url{http://abcl.org/svn/trunk/tags/1.9.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 @@ -236,12 +254,25 @@ \section{Contributors} \begin{itemize} \item Dmitry Nadezhin -\item Philipp Marek \texttt{Thanks for the markup, and review of the Manual} +\item Philipp Marek \texttt{Thanks for the mark-up, and review of the Manual} \item Douglas Miles \texttt{Thanks for the whacky IKVM stuff and keeping the flame alive in the dark years.} \item Alan Ruttenberg \texttt{Thanks for JSS.} \item Olof-Joachim Frahm -\item András Simon (piso) +\item Jonathan Cunningham +\item Uthar +\item alejandrozf +\item phoe +\item jackdaniel +\item Robert Munyer +\item Eric Timmons (daewok) +\item contrapunctus +\item Scott Burson +\item Samuel Hunter +\item Phil Eaton + + +\item Andr\'as Simon (piso) \item and of course \emph{Peter Graves} \end{itemize} @@ -250,7 +281,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.8.0.jar} if +\texttt{abcl.jar} or possibly something like \texttt{abcl-1.9.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: @@ -322,7 +353,7 @@ \chapter{Interaction with the Hosting JVM} % describe calling Java from Lisp, and calling Lisp from Java, % probably in two separate sections. Presumably, we can partition our % audience into those who are more comfortable with Java, and those -% that are more comforable with Lisp +% that are more comfortable with Lisp The Armed Bear Common Lisp implementation is hosted on a Java Virtual Machine. This chapter describes the mechanisms by which the @@ -729,7 +760,7 @@ \subsection{Implemented JSR-223 interfaces} interfaces - \code{ScriptEngine} and the two optional ones - almost completely. While the JSR-223 API is not specific to a single scripting language, it was designed with languages with a more or less Java-like -object model in mind: languages such as Javascript, Python, Ruby, which +object model in mind: languages such as JavaScript, Python, Ruby, which have a concept of "class" or "object" with "fields" and "methods". Lisp is a bit different, so certain adaptations were made, and in one case a method has been left unimplemented since it does not map at all to Lisp. @@ -1163,7 +1194,7 @@ \subsubsection{JAR-PATHNAME} In order to implement useful behavior of merging with pathname defaults, the implementation will contain the \code{:UNSPECIFIC} -keyword in any truename that wasn't explicitly merging with a +keyword in any TRUENAME that wasn't explicitly merging with a \code{EXT:JAR-PATHNAME}. Therefore, the implementation extends the semantics for the usual merge semantics when \code{*DEFAULT-PATHNAME-DEFAULTS*} contains a \code{EXT:JAR-PATHNAME} @@ -1570,7 +1601,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.8.0.jar}. The contrib jar is not loaded by the +\code{abcl-contrib-1.9.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: @@ -1665,7 +1696,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.8.0/contrib/abcl-asdf/README.markdown}. +\url{http://abcl.org/svn/tags/1.9.0/contrib/abcl-asdf/README.markdown}. \section{asdf-jar} \label{section:asdf-jar} @@ -1678,7 +1709,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.8.0/contrib/asdf-jar/README.markdown}. +\url{http://abcl.org/svn/tags/1.9.0/contrib/asdf-jar/README.markdown}. \section{jss} \label{section:jss} @@ -1716,7 +1747,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.8.0/contrib/jss/README.markdown} +\url{http://abcl.org/svn/tags/1.9.0/contrib/jss/README.markdown} \section{jfli} \label{section:jfli} @@ -1725,7 +1756,7 @@ \section{jfli} a descendant of Rich Hickey's early experimentations with using Java from Common Lisp. -\url{http://abcl.org/svn/tags/1.8.0/contrib/jfli/README}. +\url{http://abcl.org/svn/tags/1.9.0/contrib/jfli/README}. \section{abcl-introspect} \label{section:abcl-introspect} @@ -1833,7 +1864,7 @@ \subsection{Implementations for CL:DISASSEMBLE} \end{listing-lisp} -\url{http://abcl.org/svn/tags/1.8.0/contrib/abcl-introspect/}. +\url{http://abcl.org/svn/tags/1.9.0/contrib/abcl-introspect/}. \section{abcl-build} \label{section:abcl-build} @@ -1864,7 +1895,7 @@ \subsection{ABCL-BUILD Utilities} archives from the network. \end{itemize} -\url{http://abcl.org/svn/tags/1.8.0/contrib/abcl-build/}. +\url{http://abcl.org/svn/tags/1.9.0/contrib/abcl-build/}. \section{named-readtables} \label{section:named-readtables} @@ -1876,7 +1907,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.8.0/contrib/named-readtables/} for +See \url{http://abcl.org/svn/tags/1.9.0/contrib/named-readtables/} for more information. \chapter{History} @@ -1936,8 +1967,11 @@ \chapter{History} worthy to bless with release as abcl-1.7.0 in June 2020. We released abcl-1.7.1 as a maintenance release in July 2020. -We released abcl-1.8.0 under the darkening storms of October 2020 +We released abcl-1.8.0 under the darkening storms of October 2020. +Halfway through the +$\pi$ $\alpha$ $\nu$ $\delta$ $\eta$ $\mu$ o $\zeta$ +\cite{pandemos}, we dyslexic worker bears untied abcl-1.9.0. \appendix diff --git a/doc/releng.org b/doc/releng.org index b0cc9b74d..4c845eb41 100644 --- a/doc/releng.org +++ b/doc/releng.org @@ -81,7 +81,7 @@ For releases the version in the POM should be of the form ~x.y.z~ #+BEGIN_SRC bash #keyname='' -#abcl_version=1.8.0 +#abcl_version=1.9.0 mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-${abcl_version}-sources.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=sources mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-${abcl_version}-javadoc.jar -DpomFile=pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=javadoc @@ -91,7 +91,7 @@ abcl-contrib release #+BEGIN_SRC bash keyname='' -abcl_version=1.8.0 +abcl_version=1.9.0 mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-contrib.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-contrib-${abcl_version}-sources.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=sources mvn gpg:sign-and-deploy-file -Dgpg.keyname=${keyname} -Dfile=dist/abcl-contrib-${abcl_version}-javadoc.jar -DpomFile=contrib/pom.xml -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -Dclassifier=javadoc @@ -125,10 +125,25 @@ Roswell parses it for release information? ** Update MacPorts lang/abcl +* Notes + +#+caption: Push locally built 1.9.0 artifacts to abcl.org +#+begin_src bash + rsync -avzP ~/work/abcl/dist/ mevenson@abcl.org:/project/armedbear/public_html/releases/1.9.0/ +#+end_src + +#+caption: Remote hg+git URIs +#+begin_example +alanruttenberg = git+https://github.com/alanruttenberg/abcl +default = git@github.com:easye/abcl +upstream = git+https://github.com/armedbear/abcl +#+end_example + + * Colophon #+begin_example - Created: ?? - Revised: <2020-10-31 Sat 09:11> + Created: 2019-10-31 + Revised: <2022-04-30 Sat 09:10Z> #+end_example diff --git a/pom.xml b/pom.xml index 7bb98390b..783823613 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.abcl abcl - 1.8.1-SNAPSHOT + 1.9.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 2139a68c5..370d5ecee 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.8.1-dev"; + static final String baseVersion = "1.9.0"; static void init() { try { diff --git a/src/org/armedbear/lisp/abcl-contrib.lisp b/src/org/armedbear/lisp/abcl-contrib.lisp index 15d0a73a4..11e969e5e 100644 --- a/src/org/armedbear/lisp/abcl-contrib.lisp +++ b/src/org/armedbear/lisp/abcl-contrib.lisp @@ -56,7 +56,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.8.0/abcl.jar!/")))) + (pathname "jar:https://abcl.org/releases/1.9.0/abcl.jar!/")))) (defun flatten (list) (labels ((rflatten (list accumluator)