Changeset 15464


Ignore:
Timestamp:
10/29/20 21:02:15 (3 years ago)
Author:
Mark Evenson
Message:

abcl 1.8.0 metadata

rc14

TODO manual needs much description about pathnames

Location:
trunk/abcl
Files:
26 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/CHANGES

    r15346 r15464  
    1 Version 1.7.2
     1Version 1.8.0
    22=============
    33
    4 Unreleased
    5 
    6 <https://abcl.org/svn/trunk/abcl/>
     4October 29, 2020
     5
     6<https://abcl.org/svn/tags/1.8.0/>
    77<https://github.com/armedbear/abcl/>
    88<https://gitlab.common-lisp.net/abcl/abcl/>
     9
     10Features
     11--------
     12
     13* [r15390-r15406][r15408-r15413][r15422-r15425][r15434-r15458][r15460-15463]
     14  Overhauled JAR-PATHNAME and URL-PATHNAME subtypes of PATHNAME to fully support
     15  recursive addressing of zip within both local and remote zip
     16  archives.
     17
     18Incompatibilities
     19-----------------
     20
     21* [r15414] Change algorithm for determining pathname type from
     22  parsing namestrings to be more like SBCL and CCL
     23
     24     | Expression | NAME   | TYPE |
     25     |------------+--------+------|
     26     | #p"..."    | ".."   | ""   |
     27     | #p".foo"   | ".foo" | NIL  |
     28
     29Enhancements
     30------------
     31
     32* [r15378][r15421] Support openjdk15
     33
     34* [r15360-r15365] (Alessio) Serialization of top-level, named functions.
     35
     36* [r15353] JAVA:JCLASS now works on all arrays of primitive type.
     37
     38* [r15356] ABCL-INTROSPECT adds EXT:READ-CLASS to conveniently read
     39  java class bytes from the source referenced by a PATHNAME.
     40
     41* [r15366] The compiler now properly emits make-array for top-level specialized
     42  vector forms.
     43
     44* [r15367] Loading ABCL-INTROSPECT now adds the function
     45  EXT:STREAM-UNIX-FD which returns the integer of the underlying file
     46  descriptor from a socket stream reference.
     47
     48* [r15368] Less cryptic warnings for ignored socket write timeout.
     49
     50* [r15381] JNEW-ARRAY-FROM-ARRAY now capable of constructing all
     51  possible arrays of primitive type.
     52
     53
     54Fixes
     55-----
     56
     57* [r15359] Fix running openjdk11 compilation on openjdk8.
     58
     59* [r15358] Fix SYS:RUN-PROGRAM issues with openjdk11.
     60
     61* [r15357] Re-work strategy for the denotation of the hosting runtime
     62  platform in CL:*FEATURES* to include a "JAVA-<n>" where "<n>" is an
     63  integer denoting the major version of the platform according to
     64  JEP-223.
     65
     66* [r15351][r15352] For CL:MAKE-ARRAY, ensure :NIO-BUFFER argument
     67  works in all cases, fix :NIO-DIRECT for (unsigned-byte 16)
     68  specialized arrays.
     69
     70* [r15369][r15376] Fix wildcard matching to work on pathnames
     71  consisting of only #\* characters.
     72
     73* [r15377] (Daniel Kochmański) Fix loop destructuring problems.
     74
     75* [r15379] Fix VECTOR-PUSH-EXTEND for (UNSIGNED-BYTE 8).
     76
     77* [r15427] Define CALL-NEXT-METHOD and NEXT-METHOD-P as local functions.
     78
     79* [r15386] Make the pre-compiler be more careful in optimizing lambdas.
     80
     81* [r15388] Ensure that SYS:CHECK-REDEFINITION does not signal error
     82  conditions.
     83
     84* [r15387] Fix FILE-POSITION by resetting file charset decoder before
     85  conversion.
     86
     87* [r15383] Fix capacity allocation for arrays specialized on
     88
     89         (or (unsigned-byte 16)
     90             (unsigned-byte 32))
     91
     92  created via an CL:MAKE-ARRAY :NIO-BUFFER argument.
     93
     94
     95Contrib
     96-------
     97
     98* [r15420] Use jna-5.6.0.
     99
     100* [r15384] quicklisp-abcl attempts to remove all Quicklisp fasls on
     101  failure to load.
     102
     103* ASDF-JAR loading compiled fasls stored in JAR archives
     104  now works again.
     105
     106
     107Build
     108-----
     109
     110* [r15426] Ensure that we construct the manual with a proper version.
     111
     112* [r15407] Building and running a local ABCL hopefully does more of
     113  what you mean.
     114
     115
     116Tests
     117-----
     118
     119* [r15416] The default reporting via abcl/test/lisp/parse-ansi-tests is
     120  for compiled tests.
     121
     122* [r15385] Travis CI now uses versions of STATIC-VECTORS, CL+SSL, and
     123  CFFI from Quicklisp.  Overhaul ABCL-PROVE system definition
     124  explicitly enumerating tests for more deterministic behavior.
     125
     126* [r15382] Test usage of :NIO-BUFFER keyword in CL:MAKE-ARRAY.
     127
     128* [r15380] Tests for creating primitive java arrays.
    9129
    10130
     
    21141-----
    22142
    23 [r15337] Fix ELT on vectors specialized on (unsigned-byte 32)
    24 
    25 [r15327] Restore svref optimizations for SIMPLE-VECTOR sorts
    26 
    27 [r15326] Fix sorting vectors of length 0
     143* [r15337] Fix ELT on vectors specialized on (unsigned-byte 32)
     144
     145* [r15327] Restore svref optimizations for SIMPLE-VECTOR sorts
     146
     147* [r15326] Fix sorting vectors of length 0
    28148
    29149
     
    74194   greater than 2^32-1 now properly signals a type error.
    75195     
    76 * [r15267] ABCL-BUILD:ANT/CALL no longer signals an error on failure instead
    77   reporting associated error messages.
     196* [r15267] ABCL-BUILD:ANT/CALL no longer signals an error on failure
     197  instead reporting associated error messages.
    78198
    79199* [r15281] Autoconfiguration for builds on supported platforms extended.
     
    86206  Travis.
    87207
    88 
    89208Tests
    90209-----
     
    92211* [r15277] (pdietz) Additional tests for compiler failures.
    93212
    94 * [r15278][r15279] (phoe) Added tests for unbound slots DIVISION-BY-ZERO has
    95   ARITHMETIC-ERROR-OPERANDS.
    96 
    97 * [r15284][r15285][r15288] The CI now tests the ability to use OpenSSL via
    98   CL+SSL.
     213* [r15278][r15279] (phoe) Added tests for unbound slots
     214  DIVISION-BY-ZERO has ARITHMETIC-ERROR-OPERANDS.
     215
     216* [r15284][r15285][r15288] The CI now tests the ability to use OpenSSL
     217  via CL+SSL.
    99218
    100219* [r15289] The CI now tests the version CFFI with
  • trunk/abcl/README

    r15354 r15464  
    5050
    5151    illin:~/work/abcl$ docker run -it YOURID/abcl
    52     Armed Bear Common Lisp 1.7.1
    53     Java 11.0.7 AdoptOpenJDK   
     52    Armed Bear Common Lisp 1.8.0
     53    Java 11.0.8 AdoptOpenJDK
    5454    OpenJDK 64-Bit Server VM
    5555    Low-level initialization completed in 0.295 seconds.
     
    5757    Type ":help" for a list of available commands.
    5858    CL-USER(1): (lisp-implementation-version)
    59     "1.7.1"
    60     "OpenJDK_64-Bit_Server_VM-AdoptOpenJDK-11.0.7+10"
    61     "x86_64-Mac_OS_X-10.15.5"
     59    "1.8.0"
     60    "OpenJDK_64-Bit_Server_VM-AdoptOpenJDK-11.0.8+10"
     61    "x86_64-Mac_OS_X-10.15.7"
    6262
    6363To install Quicklisp for ABCL in the Docker container run:
     
    7979[abcl.org][abcl.org-release] archive unpack it into its own
    8080directory. To run ABCL directly from this directory, make sure the
    81 Java executable (`java`) (Java 6, 7, 8, 11, 13, and 14 are supported
    82 by ABCL 1.7.1) is in your shell's path.
    83 
    84 [maven-abcl]:          <https://mvnrepository.com/artifact/org.abcl/abcl/1.7.1>
    85 [maven-abcl-contrib]:  <https://mvnrepository.com/artifact/org.abcl/abcl-contrib/1.7.1>
    86 [abcl.org-release]:    <http://abcl.org/releases/1.7.1/>
     81Java executable (`java`) (Java 6, 7, 8, 11, 13, 14, and 15 are
     82supported by ABCL 1.7.0) is in your shell's path.
     83
     84[maven-abcl]:          <https://mvnrepository.com/artifact/org.abcl/abcl/1.8.0>
     85[maven-abcl-contrib]:  <https://mvnrepository.com/artifact/org.abcl/abcl-contrib/1.8.0>
     86[abcl.org-release]:    <http://abcl.org/releases/1.8.0/>
    8787
    8888To start ABCL, simply issue the following command:
     
    9292which should result in output like the following
    9393
    94     Armed Bear Common Lisp 1.7.1
    95     Java 1.8.0_252 AdoptOpenJDK
     94    Armed Bear Common Lisp 1.8.0
     95    Java 11.0.8 AdoptOpenJDK
    9696    OpenJDK 64-Bit Server VM
    9797    Low-level initialization completed in 0.222 seconds.
     
    126126tool.
    127127
    128 To build, one must have a Java 6, 7, 8, 11, 13 or 14 Java Development
    129 Kit (openjdk) installed locally. Just the Java Runtime Environment
    130 (JRE) isn't enough, as you need the Java compiler ('javac') to compile
    131 the Java source of the ABCL implementation.
     128To build, one must have a Java 6, 7, 8, 11, 13, 14 or 15 Java
     129Development Kit (openjdk) installed locally. Just the Java Runtime
     130Environment (JRE) isn't enough, as you need the Java compiler
     131('javac') to compile the Java source of the ABCL implementation.
    132132
    133133Download a binary distribution [Ant version 1.7.1 or greater][ant].
     
    160160
    161161Currently supported platforms are 'openjdk6', 'openjdk7', 'openjdk8',
    162 'openjdk11', 'openjdk13', and 'openjdk14'.
     162'openjdk11', 'openjdk13', 'openjdk14', and 'openjdk15'.
    163163
    164164
     
    192192implementation.
    193193
    194 [manual]: https://abcl.org/releases/1.7.1/abcl-1.7.1.pdf
     194[manual]: https://abcl.org/releases/1.8.0/abcl-1.8.0.pdf
    195195
    196196
     
    198198-----
    199199
    200 ABCL 1.7.1 currently fails ~45-46 out of 21848 total tests, whereas ABCL
     200ABCL 1.8.0 currently fails ~49 out of 21848 total tests, whereas ABCL
    2012011.5.0 failed 48 out of 21708 total tests in the [revised and expanded
    202202ANSI CL test suite][ansi-test] (derived from the tests originally
     
    245245    vibhu
    246246
    247 András Simon
     247    András Simon
    248248    Peter Graves
    249249
    250250Have fun!
    251251
    252 July 2020
     252October 2020
  • trunk/abcl/abcl.asd

    r15372 r15464  
    11;;; -*- Mode: LISP; Syntax: COMMON-LISP -*-
    22(defsystem abcl
    3   :version "1.7.1"
     3  :version "1.8.0"
    44  :in-order-to ((test-op (test-op "abcl/test/lisp"))))
    55
    66(defsystem abcl/test/lisp
    7   :version "1.7.1"
     7  :version "1.8.0"
    88  :description "Test ABCL with the its own collection of unit tests."
    99  :perform  (test-op (o s)
  • trunk/abcl/abcl.rdf

    r15346 r15464  
    1717<>
    1818  abcl:branch           <http://abcl.org/svn/trunk/abcl> ;
    19   dc:identifier         <urn:abcl.org/1.7.2#dev> ; # deprecated?
    20   dc:identifier         <urn:abcl.org/release/1.7.1#dev> ;
     19  dc:identifier         <urn:abcl.org/1.8.0#> ; # deprecated?
     20  dc:identifier         <urn:abcl.org/release/1.8.0#> ;
    2121  doap:language        "Common Lisp" ;
    2222  dc:created           "01-JAN-2004" ;
    23   dc:modified          "18-JUL-2020" ;
    24   dc:version           "abcl-1.7.2" ;
    25   dc:release           "dev" ;
     23  dc:modified          "28-OCT-2020" ;
     24  dc:version           "abcl-1.8.0" ;
     25  dc:release           "rc12" ;
    2626  abcl:git             <https://github.com/armedbear/abcl/> ;
    2727  abcl:git             <https://gitlab.common-lisp.net/abcl/abcl/> ;
     
    9494     dc:license <http://usefulinc.com/doap/licenses/gplv2-classpath-exception> ;
    9595     dc:licenseDocument
    96        <http://abcl.org/svn/tags/1.7.1/src/org/armedbear/COPYING> ;
     96       <http://abcl.org/svn/tags/1.8.0/src/org/armedbear/COPYING> ;
    9797] .
    9898
    9999doap:Project rdfs:seeAlso [
    100100  a rdf:Bag;
    101   rdf:_0 <http://abcl.org/releases/1.7.1/abcl-1.7.1.jar> ;
     101  rdf:_0 <http://abcl.org/releases/1.8.0/abcl-1.8.0.jar> ;
    102102  rdf:_1 <http://abcl.org/trac/timeline> ;
    103103  rdf:_2 <http://abcl.org/trac/wiki> ;
     
    122122     rdf:_17 <http://abcl.org/releases/1.6.0/abcl-1.7.0.jar> ;
    123123     rdf:_19 <http://abcl.org/releases/1.6.0/abcl-1.7.1.jar> ;
     124     rdf:_23 <http://abcl.org/releases/1.6.0/abcl-1.8.0.jar> ;
    124125  ] ;
    125126] .
     
    161162
    162163abcl:jna
    163         dc:version "5.5.0" .
     164        dc:version "5.6.0" .
    164165abcl:asdf
    165166        dc:version "3.3.4" .
     
    192193  rdf:_13  openjdk:13 ;
    193194  rdf:_14  openjdk:14 ;
     195  rdf:_15  openjdk:15 ;
    194196  rdfs:comment "Compatible Java runtimes" .
    195197
     
    205207[abcl:build _:options]
    206208    not.org:target "1.8" ;
    207     not.org:source "1.6" ;
     209#    not.org:source "1.6" ;
    208210    not.org:encoding "UTF-8" ;
    209211    not.org:debug "true" ;
     
    221223   rdf:_13  openjdk:13 ;
    222224   rdf:_14  openjdk:14 ;
     225   rdf:_14  openjdk:15 ;
    223226   rdfs:comment "Supported build platforms" .
    224227
  • trunk/abcl/contrib/abcl-asdf/abcl-asdf-tests.asd

    r15341 r15464  
    33(defsystem abcl-asdf-tests
    44  :author "Mark Evenson"
    5   :long-description "<urn:abcl.org/release/1.7.1/contrib/abcl-asdf/test#>"
     5  :long-description "<urn:abcl.org/release/1.8.0/contrib/abcl-asdf/test#>"
    66  :version "2.1.0"
    77  :defsystem-depends-on (prove-asdf)
  • trunk/abcl/contrib/abcl-asdf/abcl-asdf.asd

    r15341 r15464  
    33  :author "Mark Evenson"
    44  :description "Extensions to ASDF for handling Java binary artifacts."
    5   :long-description "<urn:abcl.org/release/1.7.1/contrib/abcl-asdf#>"
     5  :long-description "<urn:abcl.org/release/1.8.0/contrib/abcl-asdf#>"
    66  :version "2.1.0"
    77  :depends-on (jss abcl-build)
  • trunk/abcl/contrib/abcl-asdf/asdf-mvn-module.asd

    r15341 r15464  
    55    :depends-on (jss abcl-asdf)
    66    :description "Handles Maven artifact exclusions via the ADSF:MVN-MODULE component."
    7     :long-description "<urn:abcl.org/release/1.7.1/contrib/abcl-asdf/mvn-module#>"
     7    :long-description "<urn:abcl.org/release/1.8.0/contrib/abcl-asdf/mvn-module#>"
    88    :version "1.0.0"
    99    :in-order-to ((test-op (test-op asdf-mvn-module-tests)))
  • trunk/abcl/contrib/abcl-introspect/abcl-introspect-test.asd

    r15341 r15464  
    33(defsystem abcl-introspect-test
    44  :author "Mark Evenson"
    5   :long-description "<urn:abcl.org/release/1.7.1/contrib/abcl-introspect/test#>"
     5  :long-description "<urn:abcl.org/release/1.8.0/contrib/abcl-introspect/test#>"
    66  :version "2.0.0"
    77  :defsystem-depends-on (prove-asdf)
  • trunk/abcl/contrib/abcl-introspect/abcl-introspect.asd

    r15341 r15464  
    33  :author ("Alan Ruttenberg" "Mark Evenson")
    44  :description "Introspection on compiled function to aid source location and other debugging functions."
    5   :long-description "<urn:abcl.org/release/1.7.1/contrib/abcl-introspect#>"
     5  :long-description "<urn:abcl.org/release/1.8.0/contrib/abcl-introspect#>"
    66  :version "2.0.0"
    77  :depends-on (jss)
  • trunk/abcl/contrib/asdf-jar/asdf-jar.asd

    r15341 r15464  
    33  :author "Mark Evenson"
    44  :description "Packaging ASDF systems into jar files"
    5   :long-description "<urn:abcl.org/release/1.7.1/contrib/asdf-jar#>"
     5  :long-description "<urn:abcl.org/release/1.8.0/contrib/asdf-jar#>"
    66  :version "0.3.2"
    77  :components ((:module base
  • trunk/abcl/contrib/jfli/README

    r15341 r15464  
    3737# Colophon
    3838
    39     <> abcl:documents <urn:abcl.org/release/1.7.1/contrib/jfli#0.2.0> .
     39    <> abcl:documents <urn:abcl.org/release/1.8.0/contrib/jfli#0.2.0> .
  • trunk/abcl/contrib/jfli/jfli.asd

    r15341 r15464  
    11;;;; -*- Mode: LISP -*-
    22(defsystem jfli
    3   :long-description "<urn:abcl.org/release/1.7.1/contrib/jfli#>"
     3  :long-description "<urn:abcl.org/release/1.8.0/contrib/jfli#>"
    44  :version "0.2.0"
    55  :components ((:file "jfli")))
  • trunk/abcl/contrib/jss/jss.asd

    r15341 r15464  
    22(defsystem jss
    33  :author "Alan Ruttenberg, Mark Evenson"
    4   :long-description "<urn:abcl.org/release/1.7.1/contrib/jss#>"
     4  :long-description "<urn:abcl.org/release/1.8.0/contrib/jss#>"
    55  :version "3.6.0"
    66  :components ((:module base
  • trunk/abcl/contrib/mvn/jna.asd

    r15420 r15464  
    33;;;; Need to have jna.jar present for CFFI to work.
    44(defsystem jna
    5   :long-description  "<urn:abcl.org/release/1.7.1/contrib/jna#5.6.0>"
     5  :long-description  "<urn:abcl.org/release/1.8.0/contrib/jna#5.6.0>"
    66  :version "5.6.0"
    77  :defsystem-depends-on (jss abcl-asdf)
  • trunk/abcl/contrib/pom.xml

    r15346 r15464  
    1414  <groupId>org.abcl</groupId>
    1515  <artifactId>abcl-contrib</artifactId>
    16   <version>1.7.2-SNAPSHOT</version>
     16  <version>1.8.0</version>
    1717  <packaging>jar</packaging>
    1818  <name>Armed Bear Common Lisp (ABCL) Contribs</name>
  • trunk/abcl/doc/design/pathnames/abcl-pathname.org

    r15390 r15464  
    395395
    396396
    397 * Re-introducing relative URL-PATHNAME for 'file' scheme
    398 
    399 URIs don't allow relative pathnames, so to be more strict I
    400 implemented stripped out the abilty to create relative URL-PATHNAMEs.
    401 
    402397
    403398
  • trunk/abcl/doc/manual/abcl.bib

    r14892 r15464  
    119119  note = {Last accessed Oct 2, 2016},
    120120  }
    121  
  • trunk/abcl/doc/manual/abcl.tex

    r15354 r15464  
    1010\begin{document}
    1111\title{Armed Bear Common Lisp User Manual}
    12 \date{Version 1.7.2\\
     12\date{Version 1.8.0\\
    1313\smallskip
    14 Unreleased}
     14October 2020}
    1515\author{Mark Evenson \and Erik H\"{u}lsmann \and Rudolf Schlatte \and
    1616  Alessio Stalla \and Ville Voutilainen}
     
    1919
    2020\tableofcontents
     21
     22%%Preface to the first edition, abcl-1.0
     23\subsection{Preface to the First Edition}
     24\textsc{ABCL} 1.0 was released at the European Common Lisp Meeting
     25in Amsterdam in 2011.
     26
    2127%%Preface to the second edition, abcl-1.1
    2228\subsection{Preface to the Second Edition}
     
    3541\textsc{ABCL} 1.3 now implements an optimized implementation of the
    3642\code{org.armedbear.lisp.LispStack} abstraction thanks to Dmitry
    37 Nadezhin which runs on ORCL \textsc{JVMs} from 1.[5-8] conformantly.
     43Nadezhin which runs on ORCL \textsc{JVMs} from \textsc{Java 5} through
     44\textsc{Java 8}.
    3845
    3946%%Preface to the Fifth edition, abcl-1.4
     
    6875The User may need to use the facilities of the \textsc{ABCL-BUILD} contrib to
    6976recompile the implementation locally in more exotic runtimes (see
    70 Section~\ref{sec:abcl-build} page~\pageref{sec:abcl-build}).
     77Section~\ref{section:abcl-build} page~\pageref{section:abcl-build}).
    7178
    7279
    7380%%Preface to the Eighth edition, abcl-1.7
    7481\subsection{Preface to the Eighth Edition}
    75 Since the implementation now runs comfortably on openjdk6, openjdk7,
    76 openjdk8, openjdk11, and openjdk14, we take advantage of the presence
    77 of the \code{java.nio} package introduced in \textsc{Java 5}.  We have
     82Since the implementation now runs comfortably on \textsc{openjdk6},
     83\textsc{openjdk7}, \textsc{openjdk8}, \textsc{openjdk11}, and
     84\textsc{openjdk14}, we take advantage of the presence of the
     85\code{java.nio} package introduced in \textsc{Java 5}.  We have
    7886overhauled the implementation to use these abstractions for arrays
    7987specialized on commonly used unsigned-byte types, adding two
    8088additional keyword arguments useful in their construction to
    81 \code{cl:make-array}.\footnote{See \ref{sec:make-array} on page
    82 \pageref{sec:make-array}}.
     89\code{cl:make-array}.\footnote{See \ref{section:make-array} on page
     90\pageref{section:make-array}}.
     91
     92%%Preface to the Ninth edition, abcl-1.8
     93\subsection{Preface to the Ninth Edition}
     94With the Ninth Edition of the implementation we now support building
     95and running with \textsc{openjdk15}.  This is intended as the last
     96major release to support the \textsc{openjdk6}, \textsc{openjdk7}, and
     97\textsc{openjdk8} platforms.
     98
     99The implementation of the \code{EXT:JAR-PATHNAME} and
     100\code{EXT:URL-PATHNAME} subtypes of \code{cl:PATHNAME} has been fixed
     101to the point that arbitrary references to \textsc{ZIP} archives within
     102archives now work for most read-only operations (\code{CL:PROBE-FILE},
     103\code{CL:TRUENAME}, \code{CL:OPEN}, \code{CL:LOAD},
     104\code{CL:FILE-WRITE-DATE}, \code{CL:DIRECTORY}, and
     105\code{CL:MERGE-PATHNAMES}).  The previous versions of the
     106implementation relied on the ability for \code{java.net.URL} to open
     107streams of an archive within an archive, behavior that was silently
     108dropped after Java 5, and consequently hasn't worked on common
     109platforms supported by the Bear in a long time.  This restores the
     110feasibility of accessing fasls from within jar files \footnote{Examine
     111the ASDF-JAR contrib in section \ref{section:asdf-jar} on page
     112\pageref{section:asdf-jar} for a recipe for packaging and accessing
     113such artifacts.}.
    83114
    84115\chapter{Introduction}
     
    90121compiler have a byte-code version of ``49.0''.}, with an efficiency
    91122that varies upon the hosting JVM implementation.  \textsc{ABCL}
    92 supports running on the Java 6, Java 7, Java 8, Java 11, Java 13, and
    93 Java 14 openjdk \textsc{JVM} implementations\footnote{As of April
    94 2020, the AdoptOpenJDK.net community \url{https://adoptopenjdk.net/}
    95 provides perhaps the easiest installation of unencumbered openjdk
    96 implementations}.
     123supports building and running on the \textsc{Java 6}, \textsc{Java 7},
     124\textsc{Java 8}, \textsc{Java 11}, \textsc{Java 13}, \textsc{Java 14}
     125and \textsc{Java 15} openjdk platform \textsc{JVM}
     126implementations\footnote{As of October 2020, the AdoptOpenJDK.net
     127community \url{https://adoptopenjdk.net/} provides perhaps the easiest
     128installation of unencumbered openjdk implementations}.
    97129
    98130Armed Bear provides the following integration methods for interfacing
     
    100132\begin{itemize}
    101133\item Lisp code can create Java objects and call their methods (see
    102   Section~\ref{sec:lisp-java}, page~\pageref{sec:lisp-java}).
     134  Section~\ref{section:lisp-java}, page~\pageref{section:lisp-java}).
    103135\item Java code can call Lisp functions and generic functions, either
    104   directly (Section~\ref{sec:calling-lisp-from-java},
    105   page~\pageref{sec:calling-lisp-from-java}) or via \texttt{JSR-223}
    106   (Section~\ref{sec:java-scripting-api},
    107   page~\pageref{sec:java-scripting-api}).
     136  directly (Section~\ref{section:calling-lisp-from-java},
     137  page~\pageref{section:calling-lisp-from-java}) or via \texttt{JSR-223}
     138  (Section~\ref{section:java-scripting-api},
     139  page~\pageref{section:java-scripting-api}).
    108140\item \code{jinterface-implementation} creates Lisp-side implementations
    109141  of Java interfaces that can be used as listeners for Swing classes and
     
    146178  not a device
").  A future version of the implementation may return
    147179  to conformance by using the \code{HOST} value to reflect the type
    148   explicitly.}
     180  explicitly. See \ref{section:jar-pathname} on page
     181  \pageref{section:jar-pathname} for further information.}
    149182
    150183\end{itemize}
     
    191224June 1991 with an added ``classpath-exception'' clause (see the file
    192225\texttt{COPYING} in the source distribution\footnote{See
    193   \url{http://abcl.org/svn/trunk/tags/1.7.1/COPYING}} for the license,
     226  \url{http://abcl.org/svn/trunk/tags/1.8.0/COPYING}} for the license,
    194227term 13 in the same file for the classpath exception).  This license
    195228broadly means that you must distribute the sources to \textsc{ABCL},
     
    208241  in the dark years.}
    209242\item Alan Ruttenberg \texttt{Thanks for JSS.}
    210 \item Olof-Joachim Frahm 
    211 \item piso
     243\item Olof-Joachim Frahm
     244\item András Simon (piso)
    212245\item and of course \emph{Peter Graves}
    213246\end{itemize}
     
    218251
    219252\textsc{ABCL} is packaged as a single jar file usually named either
    220 \texttt{abcl.jar} or possibly something like \texttt{abcl-1.7.1.jar} if
     253\texttt{abcl.jar} or possibly something like \texttt{abcl-1.8.0.jar} if
    221254using a versioned package on the local file-system from your system
    222255vendor.  This jar file can be executed from the command line to obtain a
     
    297330
    298331\section{Lisp to Java}
    299 \label{sec:lisp-java}
     332\label{section:lisp-java}
    300333
    301334\textsc{ABCL} offers a number of mechanisms to interact with Java from its
     
    334367\item Dynamic dispatch using the method name and the call-specific
    335368  arguments provided by finding the best match (see
    336   Section~\ref{sec:param-matching-for-ffi}).
     369  Section~\ref{section:param-matching-for-ffi}).
    337370\end{itemize}
    338371
     
    452485
    453486\subsubsection{Parameter matching for FFI dynamic dispatch}
    454 \label{sec:param-matching-for-ffi}
     487\label{section:param-matching-for-ffi}
    455488
    456489The algorithm used to resolve the best matching method given the name
     
    502535
    503536\subsection{Calling Lisp from Java}
    504 \label{sec:calling-lisp-from-java}
     537\label{section:calling-lisp-from-java}
    505538
    506539Note: the entire \textsc{ABCL} \textsc{Lisp} system implementation in
     
    654687\end{listing-java}
    655688
    656 A more Lispy way to iterate down a list is to use the `cdr()` access
     689A more Lispy way to iterate down a list is to use the \code{cdr()} access
    657690function just as like one would traverse a list in Lisp:;
    658691
     
    666699
    667700\section{Java Scripting API (JSR-223)}
    668 \label{sec:java-scripting-api}
     701\label{section:java-scripting-api}
    669702
    670703ABCL can be built with support for JSR-223~\cite{jsr-223}, which offers
     
    716749
    717750At start-up (i.e. when its constructor is invoked, as part of the
    718 static initialization phase of \code{AbclScriptEngineFactory}) the ABCL
    719 script engine attempts to load an "init file" from the classpath
    720 (\texttt{/abcl-script-config.lisp}). If present, this file can be used to
    721 customize the behavior of the engine, by setting a number of
    722 variables in the \code{ABCL-SCRIPT} package. Here is a list of the available
    723 variables:
     751static initialization phase of \code{AbclScriptEngineFactory}) the
     752ABCL script engine attempts to load an "init file" from the classpath
     753(\texttt{/abcl-script-config.lisp}). If present, this file can be used
     754to customize the behavior of the engine, by setting a number of
     755variables in the \code{ABCL-SCRIPT} package. Here is a list of the
     756available variables:
    724757
    725758\begin{description}
     
    809842and to obtain Lisp implementations of Java interfaces. This is only
    810843partially possible with Lisp since it has functions, but not methods -
    811 not in the traditional OO sense, at least, since Lisp methods are not
     844not in the traditional Object Oriented sense, at least, since Lisp methods are not
    812845attached to objects but belong to generic functions. Thus, the method
    813846\code{invokeMethod()} is not implemented and throws an
     
    848881  transformed in an idiomatic Lisp name (\code{javaMethodName} becomes
    849882  \code{JAVA-METHOD-NAME}) and a symbol with that name is searched in
    850   the package. If it exists and is fbound, the corresponding function
     883  the package. If it exists and is \code{FBOUND}, the corresponding function
    851884  will be called. Function signature is as the hash-table case.
    852885\end{itemize}
     
    901934\subsection{The THREADS Dictionary}
    902935
    903 The extensions for handling multithreaded execution are collected in
     936The extensions for handling multi-threaded execution are collected in
    904937the \code{THREADS} package.  Most of the abstractions in Doug Lea's
    905938excellent \code{java.util.concurrent} packages may be manipulated
     
    935968\section{Compiler to Java Virtual Machine Bytecode}
    936969
    937 The \code{CL:COMPILE-FILE} interface emits a packed fasl\footnote{The
     970The \code{CL:COMPILE-FILE} interface emits a packed fasl \footnote{The
    938971term ``fasl'' is short for ``fast loader'', which in \textsc{Common
    939972  Lisp} implementations refers} format whose \code{CL:PATHNAME} has
    940 the \code{TYPE} ``abcl''.  Structurally, \textsc{ABCL}'s fasls are an
     973the \code{TYPE} ``abcl''.  Structurally, \textsc{ABCL}'s fasls are
    941974operating system neutral byte archives packaged in the zip compression
    942975format which contain artifacts whose loading \code{CL:LOAD}
    943976understands.  Internally, our fasls contain a piece of Lisp that
    944977\code{CL:LOAD} interprets as instructions to load the Java classes
    945 emitted by the \textsc{ABCL} Lisp compiler.  These ``synthetic''
    946 classes have a JVM class file version of ``49.0''.
     978emitted by the \textsc{ABCL} Lisp compiler.  The classes emitted by
     979the \textsc{ABCL} compiler have a JVM class file version of ``49.0''.
    947980
    948981% TODO check on what the compiler is currently emitting
     
    9721005
    9731006\section{Pathname}
    974 
    975 We implement an extension to the \code{CL:PATHNAME} that allows for
    976 the description and retrieval of resources named in a
    977 \textsc{URI} \footnote{A \textsc{URI} is essentially a superset of
    978   what is commonly understood as a \textsc{URL} We sometimes use the
    979   term URL as shorthand in describing the URL Pathnames, even though
    980   the corresponding encoding is more akin to a URI as described in
    981   RFC3986 \cite{rfc3986}.}  scheme that the \textsc{JVM}
    982 ``understands''.  By definition, support is built-in into the JVM to
    983 access the ``http'' and ``https'' schemes but additional protocol
    984 handlers may be installed at runtime by having \textsc{JVM} symbols
    985 present in the \code{sun.net.protocol.dynamic} package. See
    986 \cite{maso2000} for more details.
    987 
    988 \textsc{ABCL} has created specializations of the ANSI
    989 \code{CL:PATHNAME} object to enable to use of \textsc{URI}s to address
    990 dynamically loaded resources for the JVM.  The \code{EXT:URL-PATHNAME}
    991 specialization has a corresponding \textsc{URI} whose canonical
    992 representation is defined to be the \code{NAMESTRING} of the
    993 \code{CL:PATHNAME}. The \code{EXT:JAR-PATHNAME} extension further
    994 specializes the the \code{EXT:URL-PATHNAME} to provide access to
    995 components of zip archives. 
     1007\index{PATHNAME}
     1008
     1009\textsc{ABCL} extends its implementation of \textsc{ANSI}
     1010\code{PATHNAME} objects in order to allow read-only access to sources
     1011of bytes available via URIs \footnote{A \textsc{URI} is essentially a
     1012super-set of what is commonly understood as a \textsc{URL}. We
     1013sometimes use the term URL as shorthand in describing the URL
     1014Pathnames, even though the corresponding encoding is more akin to a
     1015URI as described in RFC3986 \cite{rfc3986}.} and to enable the
     1016addressing of arbitrarily recursive entries within \textsc{ZIP}
     1017archives.  These implementation decisions are encapsulated by the
     1018specialization of \code{CL:PATHNAME} as the \code{EXT:URL-PATHNAME}
     1019and the \code{EXT:JAR-PATHNAME} types.
    9961020
    9971021% RDF description of type hierarchy
    9981022% TODO Render via some LaTeX mode for graphviz?
    9991023\begin{verbatim}
    1000   @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
    1001   @prefix ext:   <http://abcl.org/cl/package/extensions/> .
    1002   @prefix cl:    <http://abcl.org/cl/package/common-lisp/> .
    1003  
    1004   <ext:jar-pathname>    rdfs:subClassOf <ext:url-pathname> .
    1005   <ext:url-pathname>    rdfs:subClassOf <cl:pathname> .
    1006   <cl:logical-pathname> rdfs:subClassOf <cl:pathname> .
     1024    @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
     1025    @prefix ext:   <http://abcl.org/cl/package/extensions/> .
     1026    @prefix cl:    <http://abcl.org/cl/package/common-lisp/> .
     1027   
     1028    <ext:jar-pathname>    rdfs:subClassOf <ext:url-pathname> .
     1029    <ext:url-pathname>    rdfs:subClassOf <cl:pathname> .
     1030    <cl:logical-pathname> rdfs:subClassOf <cl:pathname> .
    10071031\end{verbatim}
    10081032
     1033The \code{EXT:URL-PATHAME} object utilizes the standard \textsc{JVM}
     1034implementation of \code{java.net.URL} to access resources named by the
     1035``file'', ``http'', ``https'', ``jar'', and ``ftp'' schemes.
     1036Additional protocol handlers for other may be installed at runtime by
     1037having \textsc{JVM} symbols present in the
     1038\code{sun.net.protocol.dynamic}\footnote{See \cite{maso2000} for more
     1039details. \url{https://stackoverflow.com/questions/41784555/print-all-supported-url-schemes-in-java8}
     1040contains a more up-to-date description.}  The namestring of a
     1041\code{EXT:URL-PATHNAME} object is equivalent to the string
     1042serialization of its representation encoded via the ``percent
     1043encoding'' rules of URIs\footnote{See
     1044\url{https://url.spec.whatwg.org/\#percent-encoded-bytes} for a
     1045description of this process.}.
     1046
     1047The \code{EXT:JAR-PATHNAME} extension utilizes the specialization of
     1048\code{EXT:URL-PATHNAME} to provide access to components of
     1049\textsc{ZIP} archives, of which the \textsc{JAR} (Java ARchive) format
     1050is a super-set.  \footnote{JAR archive utilize the ZIP format for
     1051packing and compression adding procedures to add supporting metadata
     1052in a manifest which is standardized text file stored at a canonical
     1053location within the archive.}  \textsc{JAR} archives are typically
     1054used to aggregate many Java class files and associated metadata and
     1055resources (text, images, etc.) into one file for distribution.
     1056\textsc{ABCL} is typically packaged as a \textsc{JAR} archive and
     1057emits its fasls as \textsc{ZIP} files.
     1058
     1059Both the \code{EXT:URL-PATHNAME} and \code{EXT:JAR-PATHNAME}
     1060specializations may be broadly used anywhere a \code{CL:PATHNAME} is
     1061accepted with the general caveat that stream obtained via
     1062\code{CL:OPEN} on either sub-type cannot be the target of write
     1063operations.
     1064
     1065\subsubsection{URL-PATHNAME}
    10091066\label{EXTENSIONS:URL-PATHNAME}
    10101067\index{URL-PATHNAME}
    10111068
    1012 \label{EXTENSIONS:JAR-PATHNAME}
    1013 \index{JAR-PATHNAME}
    1014 
    1015 Both the \code{EXT:URL-PATHNAME} and \code{EXT:JAR-PATHNAME} objects
    1016 may be used anywhere a \code{CL:PATHNAME} is accepted with the
    1017 following caveats:
    1018 
    1019 \begin{itemize}
    1020 
    1021 \item A stream obtained via \code{CL:OPEN} on a \code{CL:URL-PATHNAME}
    1022   cannot be the target of write operations.
    1023 
    1024 \index{URI}
    1025 \item Any results of canonicalization procedures performed on the
    1026   \textsc{URI} via local or network resolutions are discarded between
    1027   attempts (i.e. the implementation does not attempt to cache the
    1028   results of current name resolution of the URI for underlying
    1029   resource unless it is requested to be resolved.)  Upon resolution,
    1030   any canonicalization procedures followed in resolving the resource
    1031   (e.g. following redirects) are discarded.  Users may programatically
    1032   initiate a new, local computation of the resolution of the resource
    1033   by applying the \code{CL:TRUENAME} function to a
    1034   \code{EXT:URL-PATHNAME} object.  Depending on the reliability and
    1035   properties of your local \textsc{REST} infrastructure, these results
    1036   may not necessarily be idempotent over time\footnote {See
    1037     \cite{uri-pathname} for the design and implementation notes for
    1038     the technical details}.  A future implementation may attempt to
    1039   expose an API to observer/customize the content negotiation
    1040   initiated during retrieval of the representation of a given
    1041   resource, which is currently handled at the application level.
    1042 
    1043 \end{itemize}
     1069A \code{URL-PATHNAME} denotes a source of bytes addressable by its
     1070corresponding namestring interpreted as a \textsc{URI}.
     1071
     1072A \code{EXT:URL-PATHNAME} always has a \code{HOST} component that is a
     1073property list.  The values of the \code{HOST} property list are always
     1074character strings.  The allowed keys have the following meanings:
     1075
     1076\begin{description}
     1077\item[:SCHEME] Scheme of URI ("http", "ftp", "bundle", etc.)
     1078\item[:AUTHORITY] Valid authority according to the URI scheme.  For
     1079  "http" this could be "example.org:8080".
     1080\item[:QUERY] The query of the \textsc{URI}
     1081\item[:FRAGMENT] The fragment portion of the \textsc{URI}
     1082\end{description}
     1083
     1084If the \textsc{:SCHEME} property is missing, it is assumed to be
     1085``file'' denoting a reference to a file on the local file-system and
     1086will be normalized as such in any pathname subjected to
     1087\code{TRUENAME} resolution.
     1088 
     1089In order to encapsulate the implementation decisions for these
     1090meanings, the following functions provide a SETF-able API for
     1091reading and writing such values: \code{URL-PATHNAME-QUERY},
     1092\code{URL-PATHNAME-FRAGMENT}, \code{URL-PATHNAME-AUTHORITY}, and
     1093\code{URL-PATHNAME-SCHEME}.  The specific sub-type of a Pathname may
     1094be determined with the predicates \code{PATHNAME-URL-P} and
     1095\code{PATHNAME-JAR-P}.
     1096
     1097\label{EXTENSIONS:URL-PATHNAME-SCHEME}
     1098\index{URL-PATHNAME-SCHEME}
     1099
     1100\label{EXTENSIONS:URL-PATHNAME-FRAGMENT}
     1101\index{URL-PATHNAME-FRAGMENT}
     1102
     1103\label{EXTENSIONS:URL-PATHNAME-AUTHORITY}
     1104\index{URL-PATHNAME-AUTHORITY}
     1105
     1106\label{EXTENSIONS:PATHNAME-URL-P}
     1107\index{PATHNAME-URL-P}
     1108
     1109\label{EXTENSIONS:URL-PATHNAME-QUERY}
     1110\index{URL-PATHNAME-QUERY}
     1111
     1112Any results of canonicalization procedures performed on a object of
     1113type \code{EXT:URL-PATHNAME} via local or network resolutions
     1114discarded between attempts (i.e. the implementation does not attempt
     1115to cache the results of current name resolution of the URI for
     1116underlying resource unless it is requested to be resolved.)  Upon
     1117resolution, any canonicalization procedures followed in resolving the
     1118resource (e.g. following redirects) are discarded.  Users may
     1119programatically initiate a new, local computation of the resolution of
     1120the resource by applying the \code{CL:TRUENAME} function to a
     1121\code{EXT:URL-PATHNAME} object.  Depending on the reliability and
     1122properties of your local \textsc{REST} infrastructure, these results
     1123may not necessarily be idempotent over time\footnote {See
     1124\cite{uri-pathname} for the design and implementation notes for the
     1125technical details}.  A future implementation may attempt to expose an
     1126API to observer/customize the content negotiation initiated during
     1127retrieval of the representation of a given resource, which is
     1128currently handled at the application level.
    10441129
    10451130The implementation of \code{EXT:URL-PATHNAME} allows the \textsc{ABCL}
    10461131user to dynamically load code from the network.  For example,
    10471132\textsc{Quicklisp} (\cite{quicklisp}) may be completely installed from
    1048 the \textsc{REPL} as the single form:
     1133the \textsc{REPL} to download and execute the Quicklisp setup code via:
    10491134
    10501135\begin{listing-lisp}
    1051   CL-USER> (load "http://beta.quicklisp.org/quicklisp.lisp")
     1136  CL-USER> (load "https://beta.quicklisp.org/quicklisp.lisp")
    10521137\end{listing-lisp}
    10531138
    1054 will load and execute the Quicklisp setup code.
    1055 
    1056 The implementation currently breaks \textsc{ANSI} conformance by allowing the
    1057 types able to be \code{CL:READ} for the \code{DEVICE} to return a possible \code{CONS} of
    1058 \code{CL:PATHNAME} objects.  %% citation from CLHS needed.
    1059 
    1060 In order to ``smooth over'' the bit about types being \code{CL:READ}
    1061 from \code{CL:PATHNAME} components, we extend the semantics for the
    1062 usual PATHNAME merge semantics when \code{*DEFAULT-PATHNAME-DEFAULTS*}
    1063 contains a \code{EXT:JAR-PATHNAME} with the ``do what I mean''
    1064 algorithm described in \ref{section:conformance} on page
    1065 \pageref{section:conformance}.
    1066 
    1067 %See \ref{_:quicklisp} on page \pageref{_:quicklisp}.
    1068 
    1069 \subsubsection{Implementation}
    1070 
    1071 The implementation of these extensions stores all the additional
    1072 information in the \code{CL:PATHNAME} object itself in ways that while strictly
    1073 speaking are conformant, nonetheless may trip up libraries that don't
    1074 expect the following:
    1075 
    1076 \begin{itemize}
    1077 \item \code{DEVICE} can be either a string denoting a drive letter
    1078   under \textsc{DOS} or a list of exactly one or two elements.  If
    1079   \code{DEVICE} is a list, it denotes a \code{EXT:JAR-PATHNAME}, with
    1080   the entries containing \code{CL:PATHNAME} objects which describe the
    1081   outer and (possibly inner) locations of the jar
    1082   archive \footnote{The case of inner and outer
    1083     \code{EXT:JAR-PATHNAME} \ref{EXT:JAR-PATHNAME} arises when zip
    1084     archives themselves contain zip archives which is the case when
    1085     the ABCL fasl is included in the abcl.jar zip archive.}.
    1086 
    1087 \item A \code{EXT:URL-PATHNAME} always has a \code{HOST} component that is a
    1088   property list.  The values of the \code{HOST} property list are
    1089   always character strings.  The allowed keys have the following meanings:
    1090   \begin{description}
    1091   \item[:SCHEME] Scheme of URI ("http", "ftp", "bundle", etc.)
    1092   \item[:AUTHORITY] Valid authority according to the URI scheme.  For
    1093     "http" this could be "example.org:8080".
    1094   \item[:QUERY] The query of the \textsc{URI}
    1095   \item[:FRAGMENT] The fragment portion of the \textsc{URI}
    1096   \end{description}
    1097 
    1098 \item In order to encapsulate the implementation decisions for these
    1099   meanings, the following functions provide a SETF-able API for
    1100   reading and writing such values: \code{URL-PATHNAME-QUERY},
    1101   \code{URL-PATHNAME-FRAGMENT}, \code{URL-PATHNAME-AUTHORITY}, and
    1102   \code{URL-PATHNAME-SCHEME}.  The specific subtype of a Pathname may
    1103   be determined with the predicates \code{PATHNAME-URL-P} and
    1104   \code{PATHNAME-JAR-P}.
    1105 
    1106 \label{EXTENSIONS:URL-PATHNAME-SCHEME}
    1107 \index{URL-PATHNAME-SCHEME}
    1108 
    1109 \label{EXTENSIONS:URL-PATHNAME-FRAGMENT}
    1110 \index{URL-PATHNAME-FRAGMENT}
    1111 
    1112 \label{EXTENSIONS:URL-PATHNAME-AUTHORITY}
    1113 \index{URL-PATHNAME-AUTHORITY}
    1114 
    1115 \label{EXTENSIONS:PATHNAME-URL-P}
    1116 \index{PATHNAME-URL-P}
    1117 
    1118 \label{EXTENSIONS:URL-PATHNAME-QUERY}
    1119 \index{URL-PATHNAME-QUERY}
    1120 
    1121 \end{itemize}
     1139\label{section:jar-pathname}
     1140
     1141\subsubsection{JAR-PATHNAME}
     1142\label{section:JAR-PATHNAME}
     1143\index{JAR-PATHNAME}
     1144
     1145In \textsc{ABCL}, the \code{DEVICE} can be either a string either
     1146denoting a drive letter or a UNC mount under \textsc{DOS} or a list of
     1147one or more elements.  If \code{DEVICE} is a list, it denotes a
     1148\code{EXT:JAR-PATHNAME}.
     1149
     1150The implementation extends the \textsc{ANSI} specification with
     1151\textsc{EXT:JAR-PATHNAME} by utilizing its \code{DEVICE} to contain a
     1152list of pathnames denoting the location of and relative address within
     1153a \textsc{ZIP} archive.  The first member of this list will be a
     1154\code{EXT:URL-PATHNAME} designates the root source of bytes encoded
     1155via the \textsc{ZIP} compression algorithm.  This reference can either
     1156be to a file located on the local file-system or as a remote source
     1157via an stream-oriented messaging protocol such as \textsc{https}.  The
     1158remainder of the \code{DEVICE} list contains ``traditional''
     1159\code{CL:PATHNAME} objects denoting successive relative archive paths.
     1160This allows pathnames to reference an entry in an arbitrarily nested
     1161ZIP archives, which is the case when the an ABCL fasl is included in
     1162in a jar archive.
     1163 
     1164In order to implement useful behavior of merging with pathname
     1165defaults, the implementation will contain the \code{:UNSPECIFIC}
     1166keyword in any truename that wasn't explicitly merging with a
     1167\code{EXT:JAR-PATHNAME}.  Therefore, the implementation extends the
     1168semantics for the usual merge semantics when
     1169\code{*DEFAULT-PATHNAME-DEFAULTS*} contains a \code{EXT:JAR-PATHNAME}
     1170with the ``do what I mean'' algorithm described in
     1171\ref{section:conformance} on page \pageref{section:conformance}.
     1172
     1173The namestring representation of \code{EXT:JAR-PATHNAME} references
     1174use successive ``jar'' prefixes and corresponding ``!'' suffixes to
     1175encapsulate successive locations.  Described broadly, a
     1176\code{EXT:JAR-PATHNAME} encapsulates the \textsc{URL} describing the
     1177location of the archive and a possible entry within that archive.
     1178
     1179\begin{verbatim}
     1180    jar:<url>!/[<entry>]
     1181\end{verbatim}
     1182
     1183The \textsc{URL} usually has the ``file'' scheme, but remote locations
     1184expressed in the ``https'' or ``http'' are also allowed.
     1185
     1186Subsequent entries within an archive are denoted via prefixing
     1187additional ``jar'' schemes and suffixing the associated path.
     1188\begin{verbatim}
     1189    jar:jar:<url>!/<entry0>!/[<entry1>]
     1190    jar:jar:jar:<url>!/<entry0>!/<entry1>!/[<entry2>]
     1191\end{verbatim}
     1192
    11221193
    11231194\section{Package-Local Nicknames}
    1124 \label{sec:package-local-nicknames}
    1125 
    1126 ABCL allows giving packages local nicknames: they allow short and
     1195\label{section:package-local-nicknames}
     1196
     1197ABCL allows giving packages local nicknames which allow short and
    11271198easy-to-use names to be used without fear of name conflict associated
    1128 with normal nicknames.\footnote{Package-local nicknames were originally
    1129 developed in SBCL.}
     1199with normal nicknames.\footnote{Package-local nicknames were
     1200originally developed in SBCL.}
    11301201
    11311202A local nickname is valid only when inside the package for which it
     
    12191290\end{adjustwidth}
    12201291
    1221 
    1222          
    12231292\section{Extensible Sequences}
    12241293
     
    12291298\code{java.util.List} contract.
    12301299
    1231 
    12321300%% an Example of using java.util.Lisp in Lisp would be nice
    12331301
     
    12761344
    12771345There is an additional syntax for specializing the parameter of a
    1278 generic function on a java class, viz. \code{(java:jclass CLASS-STRING)}
    1279 where \code{CLASS-STRING} is a string naming a Java class in dotted package
    1280 form.
     1346generic function on a java class, viz. \code{(java:jclass
     1347  CLASS-STRING)} where \code{CLASS-STRING} is a string naming a Java
     1348class in dotted package form.
    12811349
    12821350For instance the following specialization would perhaps allow one to
     
    13361404
    13371405
    1338 Note that this sequence is never output by the implementation.  Instead,
    1339 the corresponding Unicode character is output for characters whose
    1340 code is greater than 0x00ff.
     1406Note that that the reader escaped sequence is never output by the
     1407implementation.  Instead, the implementation emits the bytes
     1408corresponding Unicode character is output for characters whose code is
     1409greater than \code{0x00ff}.
    13411410
    13421411\section{Overloading of the CL:REQUIRE Mechanism}
    13431412
    1344 The \code{CL:REQUIRE} mechanism is overloaded by attaching these
    1345 semantics to the execution of \code{REQUIRE} on the following symbols:
     1413The \code{CL:REQUIRE} mechanism is overloaded by attaching the
     1414following behavior to the execution of \code{REQUIRE} on these symbols:
    13461415
    13471416\begin{description}[style=nextline]
     
    13601429    \begin{description}[style=nextline]
    13611430
    1362     \item[\code{abcl-asdf}] Functions for loading JVM artifacts
    1363         dynamically, hooking into ASDF 3 objects where possible.  See
    1364         \ref{sec:abcl-asdf} on page \pageref{sec:abcl-asdf}.
    1365 
    1366       \item[\code{asdf-jar}] Package addressable JVM artifacts via
    1367         \code{abcl-asdf} descriptions as a single binary artifact
    1368         including recursive dependencies.  See \ref{sec:asdf-jar} on
    1369         page \pageref{sec:asdf-jar}.
    1370 
    1371       \item[\code{jna}] Allows dynamic access to specify Java Native
    1372         Interface (JNI) facility providing C-linkage to shared objects
    1373         by dynamically loading the 'jna.jar' artifact via
    1374         Maven\footnote{This loading can be inhibited if, at runtime,
    1375         the Java class corresponding ``:classname'' clause of the
    1376         system definition is present.}
    1377 
    1378       \item[\code{quicklisp-abcl}] Boot a local Quicklisp installation
    1379         via the ASDF:IRI type introduced via ABCL-ASDF.
    1380 
    1381       \item[\code{jfli}] A descendant of Rich Hickey's pre-Clojure work
    1382         on the JVM.
    1383 
    1384       \item[\code{jss}] Introduces dynamic inspection of present
    1385         symbols via the \code{SHARPSIGN-QUOTATION\_MARK} macros as
    1386         Java Syntax Sucks.  See \ref{section:jss} on page
    1387         \pageref{sections:jss} for more details.
    1388 
    1389       \item[\code{abcl-introspect}] Provides a framework for
    1390         introspecting runtime Java and Lisp object values.  Include
    1391         packaging for installing and using java decompilation tools
    1392         for use with \code{CL:DISASSEMBLE}.  See
    1393         \ref{section:abcl-introspect} on
    1394         \pageref{section:abcl-introspect} for futher information.
    1395        
    1396       \item[\code{abcl-build}] Provides a toolkit for building ABCL
    1397         from source, as well as installing the necessary tools for
    1398         such builds.  See \ref{section:abcl-build} on page
    1399         \pageref{section:abcl-build}.
    1400 
    1401       \item[\code{named-readtables}] Provides a namespace for
    1402         readtables akin to the already-existing namespace of packages.
    1403         See \ref{section:named-readtables} on
    1404         \pageref{section:named-readtables} for further information.
     1431    \item[\code{abcl-asdf}] Functions for loading \textsc{JVM}
     1432      artifacts dynamically by extending \textsc{ASDF}.  See
     1433      \ref{section:abcl-asdf} on page \pageref{section:abcl-asdf}.
     1434
     1435    \item[\code{asdf-jar}] Package addressable \textsc{JVM} artifacts via
     1436      \code{abcl-asdf} descriptions as a single binary artifact
     1437      including recursive dependencies.  See \ref{sec:asdf-jar} on
     1438      page \pageref{section:asdf-jar}.
     1439
     1440    \item[\code{jna}] Allows the Java Native Interface
     1441      (\textsc{JNI}) facility to provide C-style linkage to other
     1442      operating system shared objects by dynamically loading the
     1443      'jna.jar' artifact via Maven\footnote{This loading can be
     1444      inhibited if, at runtime, the Java class corresponding
     1445      ``:classname'' clause of the system definition is present.} 
     1446
     1447    \item[\code{quicklisp-abcl}] Loads \textsc{Quicklisp} by
     1448      possibly initiating a network download via
     1449      \code{EXT:URL-PATHMAME}.
     1450
     1451    \item[\code{jfli}] A descendant of Rich Hickey's pre-Clojure
     1452      work on the JVM.
     1453
     1454    \item[\code{jss}] Introduces dynamic inspection of present
     1455      symbols via the \code{SHARPSIGN-QUOTATION\_MARK} macros as
     1456      Java Syntax Sucks.  See \ref{section:jss} on page
     1457      \pageref{sections:jss} for more details.
     1458
     1459    \item[\code{abcl-introspect}] Provides a framework for
     1460      introspecting runtime Java and Lisp object values.  Include
     1461      packaging for installing and using java decompilation tools
     1462      for use with \code{CL:DISASSEMBLE}.  See
     1463      \ref{section:abcl-introspect} on
     1464      \pageref{section:abcl-introspect} for further information.
     1465     
     1466    \item[\code{abcl-build}] Provides a toolkit for building ABCL
     1467      from source, as well as installing the necessary tools for
     1468      such builds.  See \ref{section:abcl-build} on page
     1469      \pageref{section:abcl-build}.
     1470
     1471    \item[\code{named-readtables}] Provides a namespace for
     1472      readtables akin to the already-existing namespace of packages.
     1473      See \ref{section:named-readtables} on
     1474      \pageref{section:named-readtables} for further information.
    14051475
    14061476    \end{description}
     
    14361506
    14371507\section{Extension to CL:MAKE-ARRAY}
    1438 \label{sec:make-array}
     1508\label{section:make-array}
     1509\index{MAKE-ARRAY}
    14391510
    14401511With the \code{:nio} feature is present\footnote{Available starting in
    1441 abcl-1.7.1 and indicated by the presence of \code{:nio} in
    1442 \code{cl:*features*}}, the implementation adds two keyword arguments
    1443 to \code{cl:make-array}, viz. \code{:nio-buffer} and
     1512the Eighth Edition (aka abcl-1.7.0) and indicated by the presence of
     1513\code{:nio} in \code{cl:*features*}}, the implementation adds two
     1514keyword arguments to \code{cl:make-array}, viz. \code{:nio-buffer} and
    14441515\code{:nio-direct}.
    14451516
     
    14901561primarily for large, long-lived buffers that are subject to the
    14911562underlying system's native I/O operations. In general it is best to
    1492 allocate direct buffers only when they yield a measureable gain in
     1563allocate direct buffers only when they yield a measurable gain in
    14931564program performance.
    14941565
     
    15001571The \textsc{ABCL} contrib is packaged as a separate jar archive usually named
    15011572\code{abcl-contrib.jar} or possibly something like
    1502 \code{abcl-contrib-1.7.1.jar}.  The contrib jar is not loaded by the
     1573\code{abcl-contrib-1.8.0.jar}.  The contrib jar is not loaded by the
    15031574implementation by default, and must be first initialized by the
    15041575\code{REQUIRE} mechanism before using any specific contrib:
     
    15091580
    15101581\section{abcl-asdf}
    1511 \label{sec:abcl-asdf}
     1582\label{section:abcl-asdf}
    15121583\index{ABCL-ASDF}
    15131584
    15141585This contrib enables an additional syntax for \textsc{ASDF} system
    15151586definition which dynamically loads \textsc{JVM} artifacts such as jar
    1516 archives via encapsulation of the Maven build tool.  The Maven Aether
     1587archives via encapsulation by the Maven build tool.  The Maven Aether
    15171588component can also be directly manipulated by the function associated
    15181589with the \code{ABCL-ASDF:RESOLVE-DEPENDENCIES} symbol.
     
    15231594
    15241595
    1525 When loaded, abcl-asdf adds the following objects to \textsc{ASDF}:
    1526 \code{JAR-FILE}, \code{JAR-DIRECTORY}, \code{CLASS-FILE-DIRECTORY} and
    1527 \code{MVN}, exporting them (and others) as public symbols.
     1596When loaded, \textsc{ABCL-ASDF} adds the following objects to
     1597\textsc{ASDF}: \code{JAR-FILE}, \code{JAR-DIRECTORY},
     1598\code{CLASS-FILE-DIRECTORY} and \code{MVN}, exporting them (and
     1599others) as public symbols.
    15281600
    15291601\subsection{Referencing Maven Artifacts via ASDF}
     
    15471619
    15481620We define an API for \textsc{ABCL-ASDF} as consisting of the following
    1549 ASDF classes:
     1621\textsc{ASDF} classes:
    15501622
    15511623\code{JAR-DIRECTORY}, \code{JAR-FILE}, and
     
    15541626
    15551627Both the \code{MVN} and \code{IRI} classes descend from
    1556 \code{ASDF-COMPONENT}, but do not directly have a filesystem location.
     1628\code{ASDF-COMPONENT}, but do not directly have a file-system location.
    15571629
    15581630For use outside of ASDF system definitions, we currently define one
     
    15711643                                         "gwt-user")
    15721644WARNING: Using LATEST for unspecified version.
    1573 "/Users/evenson/.m2/repository/com/google/gwt/gwt-user/2.4.0-rc1
    1574 /gwt-user-2.4.0-rc1.jar:/Users/evenson/.m2/repository/javax/vali
    1575 dation/validation-api/1.0.0.GA/validation-api-1.0.0.GA.jar:/User
    1576 s/evenson/.m2/repository/javax/validation/validation-api/1.0.0.G
    1577 A/validation-api-1.0.0.GA-sources.jar"
     1645"/Users/evenson/.m2/repository/com/google/gwt/gwt-user/2.9.0/gwt-user-2.9
     1646.0.jar:/Users/evenson/.m2/repository/com/google/jsinterop/jsinterop-annot
     1647ations/2.0.0/jsinterop-annotations-2.0.0.jar:/Users/evenson/.m2/repositor
     1648y/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA.jar:/U
     1649sers/evenson/.m2/repository/javax/validation/validation-api/1.0.0.GA/vali
     1650dation-api-1.0.0.GA-sources.jar:/Users/evenson/.m2/repository/javax/servl
     1651et/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar:/Users/evenson/.m2
     1652/repository/org/w3c/css/sac/1.3/sac-1.3.jar"
    15781653\end{listing-lisp}
    15791654
    1580 To actually load the dependency, use the \code{JAVA:ADD-TO-CLASSPATH} generic
    1581 function:
     1655To actually load the dependency into the current process, use the
     1656\code{JAVA:ADD-TO-CLASSPATH} generic function:
    15821657
    15831658\begin{listing-lisp}
     
    15911666
    15921667More extensive documentations and examples can be found at
    1593 \url{http://abcl.org/svn/tags/1.7.1/contrib/abcl-asdf/README.markdown}.
     1668\url{http://abcl.org/svn/tags/1.8.0/contrib/abcl-asdf/README.markdown}.
    15941669
    15951670\section{asdf-jar}
    1596 \label{sec:asdf-jar}
     1671\label{section:asdf-jar}
    15971672\index{ASDF-JAR}
    15981673
     
    16041679
    16051680The documentation for this contrib can be found at
    1606 \url{http://abcl.org/svn/tags/1.7.1/contrib/asdf-jar/README.markdown}.
     1681\url{http://abcl.org/svn/tags/1.8.0/contrib/asdf-jar/README.markdown}.
    16071682
    16081683\section{jss}
     
    16101685\index{JSS}
    16111686
    1612 To one used to the more universal syntax of Lisp pairs upon which the
    1613 definition of read and compile time macros is quite
     1687To one used to the more universal syntax of s-expr pairs upon which
     1688the definition of read and compile time macros is quite
    16141689natural \footnote{See Graham's ``On Lisp''
    1615   http://lib.store.yahoo.net/lib/paulgraham/onlisp.pdf.}, the Java
    1616 syntax available to the Java programmer may be said to suck.  To
    1617 alleviate this situation, the JSS contrib introduces the
     1690http://lib.store.yahoo.net/lib/paulgraham/onlisp.pdf.}, the syntax
     1691available to the \textsc{Java} programmer may be said to suck.  To
     1692alleviate this situation, the \textsc{JSS} contrib introduces the
    16181693\code{SHARPSIGN-DOUBLE-QUOTE} (\code{\#"}) reader macro, which allows
    16191694the the specification of the name of invoking function as the first
     
    16211696Lisp programmers seem to be wired to think.
    16221697
    1623 While quite useful, we don't expect that the JSS contrib will be the
    1624 last experiment in wrangling Java from Common Lisp.
     1698While quite useful, we don't expect that the \textsc{JSS} contrib will
     1699be the last experiment in wrangling \textsc{Java} from \textsc{Common
     1700  Lisp}.
    16251701
    16261702\subsection{JSS usage}
    16271703
    1628 Example:
     1704An example of using \textsc{JSS} to enumerate the \textsc{Java}
     1705runtime system properties:
    16291706
    16301707\begin{listing-lisp}
     
    16401717
    16411718Some more information on jss can be found in its documentation at
    1642 \url{http://abcl.org/svn/tags/1.7.1/contrib/jss/README.markdown}
     1719\url{http://abcl.org/svn/tags/1.8.0/contrib/jss/README.markdown}
    16431720
    16441721\section{jfli}
     
    16491726from Common Lisp.
    16501727
    1651 \url{http://abcl.org/svn/tags/1.7.1/contrib/jfli/README}.
     1728\url{http://abcl.org/svn/tags/1.8.0/contrib/jfli/README}.
    16521729
    16531730\section{abcl-introspect}
    1654 \ref{section:abcl-introspect}
     1731\label{section:abcl-introspect}
    16551732\index{ABCL-INTROSPECT}
    16561733
    16571734\textsc{ABCL-INTROSPECT} offers more extensive functionality for
    16581735inspecting the state of the implementation, most notably in
    1659 integration with SLIME, where the backtrace mechanism is augmented to
    1660 the point that local variables are inspectable.
    1661 
    1662 A compiled function is an instance of a class - This class has
    1663 multiple instances if it represents a closure, or a single instance if
    1664 it represents a non-closed-over function.
     1736integration with \textsc{SLIME}, where the backtrace mechanism is
     1737augmented to the point that local variables are inspectable.
     1738
     1739A compiled function is an instance of a class, which has multiple
     1740instances if it represents a closure, or a single instance if it
     1741represents a non-closed-over function.
    16651742
    16661743The \textsc{ABCL} compiler stores constants that are used in function
     
    16741751uses them in at least two ways. First, to annotate locally defined
    16751752functions with the top-level function they are defined within, and
    1676 second to search for callers of a give function \footnote{ Since java
     1753second to search for callers of a give function \footnote{ Since \textsc{Java}
    16771754  functions are strings, local fields also have these strings. In the
    16781755  context of looking for callers of a function you can also give a
     
    16981775\subsection{Implementations for CL:DISASSEMBLE}
    16991776\label{abcl-introspect-disassemblers}
    1700 
    1701 The following ASDF systems packages various external tools that may be
     1777\index{CL:DISASSEMBLE}
     1778
     1779The following \textsc{ASDF} systems packages various external tools that may be
    17021780selected by the \code{SYS:CHOOSE-DISASSEMBLER} interface:
    17031781
     
    17561834 
    17571835
    1758 \url{http://abcl.org/svn/tags/1.7.1/contrib/abcl-introspect/}.
     1836\url{http://abcl.org/svn/tags/1.8.0/contrib/abcl-introspect/}.
    17591837
    17601838\section{abcl-build}
    1761 \label{sec:abcl-build}
     1839\label{section:abcl-build}
    17621840\index{ABCL-BUILD}
    17631841
    17641842
    17651843\textsc{ABCL-BUILD} constitutes a new implementation for the original
    1766 Lisp-hosted ABCL build system API in the package \code{ABCL-BUILD}
    1767 that uses the same build artifacts as all of the other current builds.
    1768 
    1769 \subsection{Utilities}
     1844Lisp-hosted \textsc{ABCL} build system API in the package
     1845\code{ABCL-BUILD} that uses the same build artifacts as all of the
     1846other current builds.
     1847
     1848\subsection{ABCL-BUILD Utilities}
    17701849
    17711850\textsc{ABCL-BUILD} consolidates various utilities that are useful
    17721851for system construction, namely
     1852
    17731853\begin{itemize}
    17741854
     
    17851865\end{itemize}
    17861866
    1787 \url{http://abcl.org/svn/tags/1.7.1/contrib/abcl-build/}.
     1867\url{http://abcl.org/svn/tags/1.8.0/contrib/abcl-build/}.
    17881868
    17891869\section{named-readtables}
     
    17941874readtables akin to the already-existing namespace of packages.
    17951875
    1796 Originally from \url{https://github.com/melisgl/named-readtables/}.
    1797 
    1798 See \url{http://abcl.org/svn/tags/1.7.1/contrib/named-readtables/} for
     1876This contrib was included from the source available from
     1877\url{https://github.com/melisgl/named-readtables/}.
     1878
     1879See \url{http://abcl.org/svn/tags/1.8.0/contrib/named-readtables/} for
    17991880more information.
    18001881
     
    18131894
    18141895In 2008, the implementation was transferred to the current
    1815 maintainers, who have strived to improve its usability as a
     1896maintainers, who have striven to improve its usability as a
    18161897contemporary Common Lisp implementation.
    18171898
     
    18361917community contributions from Vihbu, Olof, Pipping, and Cyrus.  We
    18371918gingerly stepped into current century by establishing \textsc{git}
    1838 bridges to the source repositories avaiable via the URIs
     1919bridges to the source repositories available via the URIs
    18391920\url{https://github.com/armedbear/abcl/} and
    18401921\url{https://gitlab.common-lisp.net/abcl/abcl/} so that pull requests
     
    18561937abcl-1.7.1 as a maintenance release in July 2020.
    18571938
     1939We released abcl-1.8.0 under the darkening storms of October 2020
     1940
     1941
    18581942\appendix
    18591943
     
    18651949
    18661950The public interfaces in this package are subject to change with
    1867 \textsc{ABCL} 1.8.
     1951\textsc{ABCL} 1.9
    18681952
    18691953\include{system}
  • trunk/abcl/doc/manual/extensions.tex

    r15196 r15464  
    749749
    750750\paragraph{}
     751\label{EXTENSIONS:READ-CLASS}
     752\index{READ-CLASS}
     753--- Function: \textbf{read-class} [\textbf{extensions}] \textit{pathname}
     754
     755\begin{adjustwidth}{5em}{5em}
     756Read the file at PATHNAME as a Java byte[] array
     757\end{adjustwidth}
     758
     759\paragraph{}
    751760\label{EXTENSIONS:READ-TIMEOUT}
    752761\index{READ-TIMEOUT}
     
    957966
    958967\paragraph{}
     968\label{EXTENSIONS:STREAM-UNIX-FD}
     969\index{STREAM-UNIX-FD}
     970--- Function: \textbf{stream-unix-fd} [\textbf{extensions}] \textit{stream}
     971
     972\begin{adjustwidth}{5em}{5em}
     973Return the integer of the underlying unix file descriptor for STREAM
     974
     975Added by ABCL-INTROSPECT.
     976\end{adjustwidth}
     977
     978\paragraph{}
    959979\label{EXTENSIONS:STRING-FIND}
    960980\index{STRING-FIND}
     
    10921112
    10931113\paragraph{}
     1114\label{EXTENSIONS:WRITE-CLASS}
     1115\index{WRITE-CLASS}
     1116--- Function: \textbf{write-class} [\textbf{extensions}] \textit{class-bytes pathname}
     1117
     1118\begin{adjustwidth}{5em}{5em}
     1119Write the Java byte[] array CLASS-BYTES to PATHNAME.
     1120\end{adjustwidth}
     1121
     1122\paragraph{}
    10941123\label{EXTENSIONS:WRITE-TIMEOUT}
    10951124\index{WRITE-TIMEOUT}
  • trunk/abcl/doc/manual/java.tex

    r15196 r15464  
    218218
    219219\begin{adjustwidth}{5em}{5em}
    220 not-documented
     220Returns the cause of JAVA-EXCEPTION. (The cause is the Java Throwable
     221  object that caused JAVA-EXCEPTION to be signalled.)
    221222\end{adjustwidth}
    222223
     
    346347
    347348\begin{adjustwidth}{5em}{5em}
    348 Returns the name of the Java class of OBJECT. If the NAME argument is
    349   supplied, verifies that OBJECT is an instance of the named class. The name
    350   of the class or nil is always returned as a second value.
     349not-documented
    351350\end{adjustwidth}
    352351
  • trunk/abcl/doc/manual/system.tex

    r15196 r15464  
    712712
    713713\begin{adjustwidth}{5em}{5em}
    714 Methods of invoking CL:DISASSEMBLE consisting of a pushable list of (name function), where function takes a object to disassemble, returns the results as a string.
    715 
    716 The system is :jad using the venerable-but-still-works JAD.
     714Methods of invoking CL:DISASSEMBLE consisting of a enumeration of (keyword function) pairs
     715
     716The pairs (keyword function) contain a keyword identifying this
     717particulat disassembler, and a symbol designating function takes a
     718object to disassemble.
     719
     720Use SYS:CHOOSE-DISASSEMBLER to install a given disassembler as the one
     721used by CL:DISASSEMBLE.  Additional disassemblers/decompilers are
     722packaged in the ABCL-INTROSPECT contrib.
     723
     724The intial default is :javap using the javap command line tool which
     725is part of the Java Developement Kit.
    717726
    718727\end{adjustwidth}
     
    931940
    932941\begin{adjustwidth}{5em}{5em}
    933 not-documented
     942Signal simple-error when EXPR is non-NIL.
    934943\end{adjustwidth}
    935944
     
    10121021
    10131022\begin{adjustwidth}{5em}{5em}
    1014 Hook to choose invoked behavior of CL:DISASSEMBLE by using one of the methods registered in SYSTEM:*DISASSEMBLERS*.
    1015 
    1016 Optionally, prefer the strategy named NAME if one exists.
     1023Report current disassembler that would be used by CL:DISASSEMBLE
     1024
     1025With optional keyword NAME, select the associated disassembler from
     1026SYS:*DISASSEMBLERS*.
    10171027\end{adjustwidth}
    10181028
     
    10271037
    10281038\paragraph{}
     1039\label{SYSTEM:CLEAR-ZIP-CACHE}
     1040\index{CLEAR-ZIP-CACHE}
     1041--- Function: \textbf{clear-zip-cache} [\textbf{system}] \textit{}
     1042
     1043\begin{adjustwidth}{5em}{5em}
     1044not-documented
     1045\end{adjustwidth}
     1046
     1047\paragraph{}
    10291048\label{SYSTEM:COERCE-TO-CONDITION}
    10301049\index{COERCE-TO-CONDITION}
     
    12611280
    12621281\paragraph{}
    1263 \label{SYSTEM:ENSURE-INPUT-STREAM}
    1264 \index{ENSURE-INPUT-STREAM}
    1265 --- Function: \textbf{ensure-input-stream} [\textbf{system}] \textit{pathname}
    1266 
    1267 \begin{adjustwidth}{5em}{5em}
    1268 Returns a java.io.InputStream for resource denoted by PATHNAME.
    1269 \end{adjustwidth}
    1270 
    1271 \paragraph{}
    12721282\label{SYSTEM:ENVIRONMENT}
    12731283\index{ENVIRONMENT}
     
    15251535
    15261536\paragraph{}
     1537\label{SYSTEM:GET-INPUT-STREAM}
     1538\index{GET-INPUT-STREAM}
     1539--- Function: \textbf{get-input-stream} [\textbf{system}] \textit{pathname}
     1540
     1541\begin{adjustwidth}{5em}{5em}
     1542Returns a java.io.InputStream for resource denoted by PATHNAME.
     1543\end{adjustwidth}
     1544
     1545\paragraph{}
    15271546\label{SYSTEM:GETHASH1}
    15281547\index{GETHASH1}
     
    18521871\label{SYSTEM:MAKE-FILE-STREAM}
    18531872\index{MAKE-FILE-STREAM}
    1854 --- Function: \textbf{make-file-stream} [\textbf{system}] \textit{pathname namestring element-type direction if-exists external-format}
     1873--- Function: \textbf{make-file-stream} [\textbf{system}] \textit{pathname element-type direction if-exists external-format}
    18551874
    18561875\begin{adjustwidth}{5em}{5em}
     
    19341953\index{MAKE-SYMBOL-MACRO}
    19351954--- Function: \textbf{make-symbol-macro} [\textbf{system}] \textit{expansion}
     1955
     1956\begin{adjustwidth}{5em}{5em}
     1957not-documented
     1958\end{adjustwidth}
     1959
     1960\paragraph{}
     1961\label{SYSTEM:MATCH-WILD-JAR-PATHNAME}
     1962\index{MATCH-WILD-JAR-PATHNAME}
     1963--- Function: \textbf{match-wild-jar-pathname} [\textbf{system}] \textit{wild-jar-pathname}
    19361964
    19371965\begin{adjustwidth}{5em}{5em}
  • trunk/abcl/doc/manual/threads.tex

    r15196 r15464  
    2323
    2424\begin{adjustwidth}{5em}{5em}
    25 Acquires a lock on the `mutex'.
     25Acquires the lock associated with the MUTEX
    2626\end{adjustwidth}
    2727
     
    8282\label{THREADS:MAKE-MAILBOX}
    8383\index{MAKE-MAILBOX}
    84 --- Function: \textbf{make-mailbox} [\textbf{threads}] \textit{\&key ((queue g284829) NIL)}
     84--- Function: \textbf{make-mailbox} [\textbf{threads}] \textit{\&key ((queue g305040) NIL)}
    8585
    8686\begin{adjustwidth}{5em}{5em}
     
    9191\label{THREADS:MAKE-MUTEX}
    9292\index{MAKE-MUTEX}
    93 --- Function: \textbf{make-mutex} [\textbf{threads}] \textit{\&key ((in-use g285092) NIL)}
     93--- Function: \textbf{make-mutex} [\textbf{threads}] \textit{\&key ((in-use g305303) NIL)}
    9494
    9595\begin{adjustwidth}{5em}{5em}
     
    112112
    113113\begin{adjustwidth}{5em}{5em}
    114 Returns an object to be used with the `with-thread-lock' macro.
     114Returns an object to be used with the WITH-THREAD-LOCK macro.
    115115\end{adjustwidth}
    116116
     
    165165
    166166\begin{adjustwidth}{5em}{5em}
    167 Releases a lock on the `mutex'.
     167Releases a lock associated with MUTEX
    168168\end{adjustwidth}
    169169
     
    201201
    202202\begin{adjustwidth}{5em}{5em}
    203 Waits for thread to finish.
     203Waits for THREAD to die before resuming execution
     204Returns the result of the joined thread as its primary value.
     205Returns T if the joined thread finishes normally or NIL if it was interrupted.
    204206\end{adjustwidth}
    205207
     
    228230
    229231\begin{adjustwidth}{5em}{5em}
    230 Acquires a lock on `mutex', executes the body
    231 and releases the lock.
     232Acquires a lock on MUTEX, executes BODY, and then releases the lock
    232233\end{adjustwidth}
    233234
     
    238239
    239240\begin{adjustwidth}{5em}{5em}
    240 Acquires a lock on the `lock', executes `body' and releases the lock.
     241Acquires the LOCK, executes BODY and releases the LOCK
    241242\end{adjustwidth}
    242243
  • trunk/abcl/doc/releng.org

    r15341 r15464  
    1414
    1515Enter your "JIRA username and a password" in a
    16 <file:.m2/settings.xml>.  This will authenticate
     16<file:.m2/settings.xml>.  This will be used for authentication when
     17the =mvn= tool uploads artifacts to the Sonatype snapshot and staging
     18infrastructure.
    1719
    1820#+BEGIN_SRC xml
     
    5052
    5153**** Snapshots
    52 For snapshots - development versions - the version in the POM should look like ~x.y.z-SNAPSHOT~.
     54For snapshots (aka development versions) the version in the POM should
     55be of the form ~x.y.z-SNAPSHOT~.
    5356
    5457#+BEGIN_SRC bash
     
    6063#+END_SRC
    6164
    62 
    6365**** Release
    64 For releases - the version in the POM should look like  ~x.y.z~
     66For releases the version in the POM should be of the form  ~x.y.z~
    6567
    6668#+BEGIN_SRC bash
    67 keyname='<evenson.not.org@gmail.com>'
    68 abcl_version=1.7.1
     69keyname='<your_pgg_key@example.com>'
     70abcl_version=1.8.0
    6971mvn 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
    7072mvn 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
     
    7678#+BEGIN_SRC bash
    7779keyname='<evenson.not.org@gmail.com>'
    78 abcl_version=1.7.1
     80abcl_version=1.8.0
    7981mvn 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
    8082mvn 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
     
    100102
    101103
    102 
    103104*** Specifying GPG executable
    104105
    105 For specifying gpg executable, use a property specified via
    106 '-Dgpg.executable=gpg2'.
     106For specifying the =gpg= executable used via =mvn= use a property
     107specified via the =gpg.executable= property (e.g. '-Dgpg.executable=gpg2'.)
    107108
    108109**** Signing binary release
     
    123124  #+begin_example
    124125  Created: ??
    125   Revised: <2020-06-05 Fri 08:46>
     126  Revised: <2020-10-21 Wed 10:01>
    126127  #+end_example
    127128 
  • trunk/abcl/pom.xml

    r15346 r15464  
    1414  <groupId>org.abcl</groupId>
    1515  <artifactId>abcl</artifactId>
    16   <version>1.7.2-SNAPSHOT</version>
     16  <version>1.8.0</version>
    1717  <packaging>jar</packaging>
    1818  <name>ABCL - Armed Bear Common Lisp</name>
  • trunk/abcl/src/org/armedbear/lisp/Version.java

    r15346 r15464  
    4242  private Version() {}
    4343 
    44   static final String baseVersion = "1.7.2-dev";
     44  static final String baseVersion = "1.8.0";
    4545 
    4646  static void init() {
  • trunk/abcl/src/org/armedbear/lisp/abcl-contrib.lisp

    r15440 r15464  
    5757   ;; it would minimally need to check version information.
    5858   (ignore-errors
    59      (pathname "jar:https://abcl.org/releases/1.7.1/abcl.jar!/"))))
     59     (pathname "jar:https://abcl.org/releases/1.8.0/abcl.jar!/"))))
    6060
    6161(defun flatten (list)
Note: See TracChangeset for help on using the changeset viewer.