Changeset 15464
- Timestamp:
- 10/29/20 21:02:15 (3 years ago)
- Location:
- trunk/abcl
- Files:
-
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/CHANGES
r15346 r15464 1 Version 1. 7.21 Version 1.8.0 2 2 ============= 3 3 4 Unreleased 5 6 <https://abcl.org/svn/t runk/abcl/>4 October 29, 2020 5 6 <https://abcl.org/svn/tags/1.8.0/> 7 7 <https://github.com/armedbear/abcl/> 8 8 <https://gitlab.common-lisp.net/abcl/abcl/> 9 10 Features 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 18 Incompatibilities 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 29 Enhancements 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 54 Fixes 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 95 Contrib 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 107 Build 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 116 Tests 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. 9 129 10 130 … … 21 141 ----- 22 142 23 [r15337] Fix ELT on vectors specialized on (unsigned-byte 32)24 25 [r15327] Restore svref optimizations for SIMPLE-VECTOR sorts26 27 [r15326] Fix sorting vectors of length 0143 * [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 28 148 29 149 … … 74 194 greater than 2^32-1 now properly signals a type error. 75 195 76 * [r15267] ABCL-BUILD:ANT/CALL no longer signals an error on failure instead77 reporting associated error messages.196 * [r15267] ABCL-BUILD:ANT/CALL no longer signals an error on failure 197 instead reporting associated error messages. 78 198 79 199 * [r15281] Autoconfiguration for builds on supported platforms extended. … … 86 206 Travis. 87 207 88 89 208 Tests 90 209 ----- … … 92 211 * [r15277] (pdietz) Additional tests for compiler failures. 93 212 94 * [r15278][r15279] (phoe) Added tests for unbound slots DIVISION-BY-ZERO has95 ARITHMETIC-ERROR-OPERANDS.96 97 * [r15284][r15285][r15288] The CI now tests the ability to use OpenSSL via98 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. 99 218 100 219 * [r15289] The CI now tests the version CFFI with -
trunk/abcl/README
r15354 r15464 50 50 51 51 illin:~/work/abcl$ docker run -it YOURID/abcl 52 Armed Bear Common Lisp 1. 7.153 Java 11.0. 7 AdoptOpenJDK52 Armed Bear Common Lisp 1.8.0 53 Java 11.0.8 AdoptOpenJDK 54 54 OpenJDK 64-Bit Server VM 55 55 Low-level initialization completed in 0.295 seconds. … … 57 57 Type ":help" for a list of available commands. 58 58 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" 62 62 63 63 To install Quicklisp for ABCL in the Docker container run: … … 79 79 [abcl.org][abcl.org-release] archive unpack it into its own 80 80 directory. To run ABCL directly from this directory, make sure the 81 Java executable (`java`) (Java 6, 7, 8, 11, 13, and 14 are supported82 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/>81 Java executable (`java`) (Java 6, 7, 8, 11, 13, 14, and 15 are 82 supported 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/> 87 87 88 88 To start ABCL, simply issue the following command: … … 92 92 which should result in output like the following 93 93 94 Armed Bear Common Lisp 1. 7.195 Java 1 .8.0_252AdoptOpenJDK94 Armed Bear Common Lisp 1.8.0 95 Java 11.0.8 AdoptOpenJDK 96 96 OpenJDK 64-Bit Server VM 97 97 Low-level initialization completed in 0.222 seconds. … … 126 126 tool. 127 127 128 To build, one must have a Java 6, 7, 8, 11, 13 or 14 Java Development129 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.128 To build, one must have a Java 6, 7, 8, 11, 13, 14 or 15 Java 129 Development Kit (openjdk) installed locally. Just the Java Runtime 130 Environment (JRE) isn't enough, as you need the Java compiler 131 ('javac') to compile the Java source of the ABCL implementation. 132 132 133 133 Download a binary distribution [Ant version 1.7.1 or greater][ant]. … … 160 160 161 161 Currently supported platforms are 'openjdk6', 'openjdk7', 'openjdk8', 162 'openjdk11', 'openjdk13', and 'openjdk14'.162 'openjdk11', 'openjdk13', 'openjdk14', and 'openjdk15'. 163 163 164 164 … … 192 192 implementation. 193 193 194 [manual]: https://abcl.org/releases/1. 7.1/abcl-1.7.1.pdf194 [manual]: https://abcl.org/releases/1.8.0/abcl-1.8.0.pdf 195 195 196 196 … … 198 198 ----- 199 199 200 ABCL 1. 7.1 currently fails ~45-46out of 21848 total tests, whereas ABCL200 ABCL 1.8.0 currently fails ~49 out of 21848 total tests, whereas ABCL 201 201 1.5.0 failed 48 out of 21708 total tests in the [revised and expanded 202 202 ANSI CL test suite][ansi-test] (derived from the tests originally … … 245 245 vibhu 246 246 247 András Simon247 András Simon 248 248 Peter Graves 249 249 250 250 Have fun! 251 251 252 July2020252 October 2020 -
trunk/abcl/abcl.asd
r15372 r15464 1 1 ;;; -*- Mode: LISP; Syntax: COMMON-LISP -*- 2 2 (defsystem abcl 3 :version "1. 7.1"3 :version "1.8.0" 4 4 :in-order-to ((test-op (test-op "abcl/test/lisp")))) 5 5 6 6 (defsystem abcl/test/lisp 7 :version "1. 7.1"7 :version "1.8.0" 8 8 :description "Test ABCL with the its own collection of unit tests." 9 9 :perform (test-op (o s) -
trunk/abcl/abcl.rdf
r15346 r15464 17 17 <> 18 18 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#> ; 21 21 doap:language "Common Lisp" ; 22 22 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" ; 26 26 abcl:git <https://github.com/armedbear/abcl/> ; 27 27 abcl:git <https://gitlab.common-lisp.net/abcl/abcl/> ; … … 94 94 dc:license <http://usefulinc.com/doap/licenses/gplv2-classpath-exception> ; 95 95 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> ; 97 97 ] . 98 98 99 99 doap:Project rdfs:seeAlso [ 100 100 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> ; 102 102 rdf:_1 <http://abcl.org/trac/timeline> ; 103 103 rdf:_2 <http://abcl.org/trac/wiki> ; … … 122 122 rdf:_17 <http://abcl.org/releases/1.6.0/abcl-1.7.0.jar> ; 123 123 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> ; 124 125 ] ; 125 126 ] . … … 161 162 162 163 abcl:jna 163 dc:version "5. 5.0" .164 dc:version "5.6.0" . 164 165 abcl:asdf 165 166 dc:version "3.3.4" . … … 192 193 rdf:_13 openjdk:13 ; 193 194 rdf:_14 openjdk:14 ; 195 rdf:_15 openjdk:15 ; 194 196 rdfs:comment "Compatible Java runtimes" . 195 197 … … 205 207 [abcl:build _:options] 206 208 not.org:target "1.8" ; 207 not.org:source "1.6" ;209 # not.org:source "1.6" ; 208 210 not.org:encoding "UTF-8" ; 209 211 not.org:debug "true" ; … … 221 223 rdf:_13 openjdk:13 ; 222 224 rdf:_14 openjdk:14 ; 225 rdf:_14 openjdk:15 ; 223 226 rdfs:comment "Supported build platforms" . 224 227 -
trunk/abcl/contrib/abcl-asdf/abcl-asdf-tests.asd
r15341 r15464 3 3 (defsystem abcl-asdf-tests 4 4 :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#>" 6 6 :version "2.1.0" 7 7 :defsystem-depends-on (prove-asdf) -
trunk/abcl/contrib/abcl-asdf/abcl-asdf.asd
r15341 r15464 3 3 :author "Mark Evenson" 4 4 :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#>" 6 6 :version "2.1.0" 7 7 :depends-on (jss abcl-build) -
trunk/abcl/contrib/abcl-asdf/asdf-mvn-module.asd
r15341 r15464 5 5 :depends-on (jss abcl-asdf) 6 6 :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#>" 8 8 :version "1.0.0" 9 9 :in-order-to ((test-op (test-op asdf-mvn-module-tests))) -
trunk/abcl/contrib/abcl-introspect/abcl-introspect-test.asd
r15341 r15464 3 3 (defsystem abcl-introspect-test 4 4 :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#>" 6 6 :version "2.0.0" 7 7 :defsystem-depends-on (prove-asdf) -
trunk/abcl/contrib/abcl-introspect/abcl-introspect.asd
r15341 r15464 3 3 :author ("Alan Ruttenberg" "Mark Evenson") 4 4 :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#>" 6 6 :version "2.0.0" 7 7 :depends-on (jss) -
trunk/abcl/contrib/asdf-jar/asdf-jar.asd
r15341 r15464 3 3 :author "Mark Evenson" 4 4 :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#>" 6 6 :version "0.3.2" 7 7 :components ((:module base -
trunk/abcl/contrib/jfli/README
r15341 r15464 37 37 # Colophon 38 38 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 1 1 ;;;; -*- Mode: LISP -*- 2 2 (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#>" 4 4 :version "0.2.0" 5 5 :components ((:file "jfli"))) -
trunk/abcl/contrib/jss/jss.asd
r15341 r15464 2 2 (defsystem jss 3 3 :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#>" 5 5 :version "3.6.0" 6 6 :components ((:module base -
trunk/abcl/contrib/mvn/jna.asd
r15420 r15464 3 3 ;;;; Need to have jna.jar present for CFFI to work. 4 4 (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>" 6 6 :version "5.6.0" 7 7 :defsystem-depends-on (jss abcl-asdf) -
trunk/abcl/contrib/pom.xml
r15346 r15464 14 14 <groupId>org.abcl</groupId> 15 15 <artifactId>abcl-contrib</artifactId> 16 <version>1. 7.2-SNAPSHOT</version>16 <version>1.8.0</version> 17 17 <packaging>jar</packaging> 18 18 <name>Armed Bear Common Lisp (ABCL) Contribs</name> -
trunk/abcl/doc/design/pathnames/abcl-pathname.org
r15390 r15464 395 395 396 396 397 * Re-introducing relative URL-PATHNAME for 'file' scheme398 399 URIs don't allow relative pathnames, so to be more strict I400 implemented stripped out the abilty to create relative URL-PATHNAMEs.401 402 397 403 398 -
trunk/abcl/doc/manual/abcl.bib
r14892 r15464 119 119 note = {Last accessed Oct 2, 2016}, 120 120 } 121 -
trunk/abcl/doc/manual/abcl.tex
r15354 r15464 10 10 \begin{document} 11 11 \title{Armed Bear Common Lisp User Manual} 12 \date{Version 1. 7.2\\12 \date{Version 1.8.0\\ 13 13 \smallskip 14 Unreleased}14 October 2020} 15 15 \author{Mark Evenson \and Erik H\"{u}lsmann \and Rudolf Schlatte \and 16 16 Alessio Stalla \and Ville Voutilainen} … … 19 19 20 20 \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 25 in Amsterdam in 2011. 26 21 27 %%Preface to the second edition, abcl-1.1 22 28 \subsection{Preface to the Second Edition} … … 35 41 \textsc{ABCL} 1.3 now implements an optimized implementation of the 36 42 \code{org.armedbear.lisp.LispStack} abstraction thanks to Dmitry 37 Nadezhin which runs on ORCL \textsc{JVMs} from 1.[5-8] conformantly. 43 Nadezhin which runs on ORCL \textsc{JVMs} from \textsc{Java 5} through 44 \textsc{Java 8}. 38 45 39 46 %%Preface to the Fifth edition, abcl-1.4 … … 68 75 The User may need to use the facilities of the \textsc{ABCL-BUILD} contrib to 69 76 recompile the implementation locally in more exotic runtimes (see 70 Section~\ref{sec :abcl-build} page~\pageref{sec:abcl-build}).77 Section~\ref{section:abcl-build} page~\pageref{section:abcl-build}). 71 78 72 79 73 80 %%Preface to the Eighth edition, abcl-1.7 74 81 \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 82 Since 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 78 86 overhauled the implementation to use these abstractions for arrays 79 87 specialized on commonly used unsigned-byte types, adding two 80 88 additional 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} 94 With the Ninth Edition of the implementation we now support building 95 and running with \textsc{openjdk15}. This is intended as the last 96 major release to support the \textsc{openjdk6}, \textsc{openjdk7}, and 97 \textsc{openjdk8} platforms. 98 99 The implementation of the \code{EXT:JAR-PATHNAME} and 100 \code{EXT:URL-PATHNAME} subtypes of \code{cl:PATHNAME} has been fixed 101 to the point that arbitrary references to \textsc{ZIP} archives within 102 archives 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 106 implementation relied on the ability for \code{java.net.URL} to open 107 streams of an archive within an archive, behavior that was silently 108 dropped after Java 5, and consequently hasn't worked on common 109 platforms supported by the Bear in a long time. This restores the 110 feasibility of accessing fasls from within jar files \footnote{Examine 111 the ASDF-JAR contrib in section \ref{section:asdf-jar} on page 112 \pageref{section:asdf-jar} for a recipe for packaging and accessing 113 such artifacts.}. 83 114 84 115 \chapter{Introduction} … … 90 121 compiler have a byte-code version of ``49.0''.}, with an efficiency 91 122 that 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}. 123 supports building and running on the \textsc{Java 6}, \textsc{Java 7}, 124 \textsc{Java 8}, \textsc{Java 11}, \textsc{Java 13}, \textsc{Java 14} 125 and \textsc{Java 15} openjdk platform \textsc{JVM} 126 implementations\footnote{As of October 2020, the AdoptOpenJDK.net 127 community \url{https://adoptopenjdk.net/} provides perhaps the easiest 128 installation of unencumbered openjdk implementations}. 97 129 98 130 Armed Bear provides the following integration methods for interfacing … … 100 132 \begin{itemize} 101 133 \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}). 103 135 \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}). 108 140 \item \code{jinterface-implementation} creates Lisp-side implementations 109 141 of Java interfaces that can be used as listeners for Swing classes and … … 146 178 not a deviceâŠ"). A future version of the implementation may return 147 179 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.} 149 182 150 183 \end{itemize} … … 191 224 June 1991 with an added ``classpath-exception'' clause (see the file 192 225 \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, 194 227 term 13 in the same file for the classpath exception). This license 195 228 broadly means that you must distribute the sources to \textsc{ABCL}, … … 208 241 in the dark years.} 209 242 \item Alan Ruttenberg \texttt{Thanks for JSS.} 210 \item Olof-Joachim Frahm 211 \item piso243 \item Olof-Joachim Frahm 244 \item András Simon (piso) 212 245 \item and of course \emph{Peter Graves} 213 246 \end{itemize} … … 218 251 219 252 \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} if253 \texttt{abcl.jar} or possibly something like \texttt{abcl-1.8.0.jar} if 221 254 using a versioned package on the local file-system from your system 222 255 vendor. This jar file can be executed from the command line to obtain a … … 297 330 298 331 \section{Lisp to Java} 299 \label{sec :lisp-java}332 \label{section:lisp-java} 300 333 301 334 \textsc{ABCL} offers a number of mechanisms to interact with Java from its … … 334 367 \item Dynamic dispatch using the method name and the call-specific 335 368 arguments provided by finding the best match (see 336 Section~\ref{sec :param-matching-for-ffi}).369 Section~\ref{section:param-matching-for-ffi}). 337 370 \end{itemize} 338 371 … … 452 485 453 486 \subsubsection{Parameter matching for FFI dynamic dispatch} 454 \label{sec :param-matching-for-ffi}487 \label{section:param-matching-for-ffi} 455 488 456 489 The algorithm used to resolve the best matching method given the name … … 502 535 503 536 \subsection{Calling Lisp from Java} 504 \label{sec :calling-lisp-from-java}537 \label{section:calling-lisp-from-java} 505 538 506 539 Note: the entire \textsc{ABCL} \textsc{Lisp} system implementation in … … 654 687 \end{listing-java} 655 688 656 A more Lispy way to iterate down a list is to use the `cdr()`access689 A more Lispy way to iterate down a list is to use the \code{cdr()} access 657 690 function just as like one would traverse a list in Lisp:; 658 691 … … 666 699 667 700 \section{Java Scripting API (JSR-223)} 668 \label{sec :java-scripting-api}701 \label{section:java-scripting-api} 669 702 670 703 ABCL can be built with support for JSR-223~\cite{jsr-223}, which offers … … 716 749 717 750 At start-up (i.e. when its constructor is invoked, as part of the 718 static initialization phase of \code{AbclScriptEngineFactory}) the ABCL719 script engine attempts to load an "init file" from the classpath720 (\texttt{/abcl-script-config.lisp}). If present, this file can be used to721 customize the behavior of the engine, by setting a number of722 variables in the \code{ABCL-SCRIPT} package. Here is a list of the available723 variables:751 static initialization phase of \code{AbclScriptEngineFactory}) the 752 ABCL script engine attempts to load an "init file" from the classpath 753 (\texttt{/abcl-script-config.lisp}). If present, this file can be used 754 to customize the behavior of the engine, by setting a number of 755 variables in the \code{ABCL-SCRIPT} package. Here is a list of the 756 available variables: 724 757 725 758 \begin{description} … … 809 842 and to obtain Lisp implementations of Java interfaces. This is only 810 843 partially possible with Lisp since it has functions, but not methods - 811 not in the traditional O Osense, at least, since Lisp methods are not844 not in the traditional Object Oriented sense, at least, since Lisp methods are not 812 845 attached to objects but belong to generic functions. Thus, the method 813 846 \code{invokeMethod()} is not implemented and throws an … … 848 881 transformed in an idiomatic Lisp name (\code{javaMethodName} becomes 849 882 \code{JAVA-METHOD-NAME}) and a symbol with that name is searched in 850 the package. If it exists and is fbound, the corresponding function883 the package. If it exists and is \code{FBOUND}, the corresponding function 851 884 will be called. Function signature is as the hash-table case. 852 885 \end{itemize} … … 901 934 \subsection{The THREADS Dictionary} 902 935 903 The extensions for handling multi threaded execution are collected in936 The extensions for handling multi-threaded execution are collected in 904 937 the \code{THREADS} package. Most of the abstractions in Doug Lea's 905 938 excellent \code{java.util.concurrent} packages may be manipulated … … 935 968 \section{Compiler to Java Virtual Machine Bytecode} 936 969 937 The \code{CL:COMPILE-FILE} interface emits a packed fasl \footnote{The970 The \code{CL:COMPILE-FILE} interface emits a packed fasl \footnote{The 938 971 term ``fasl'' is short for ``fast loader'', which in \textsc{Common 939 972 Lisp} implementations refers} format whose \code{CL:PATHNAME} has 940 the \code{TYPE} ``abcl''. Structurally, \textsc{ABCL}'s fasls are an973 the \code{TYPE} ``abcl''. Structurally, \textsc{ABCL}'s fasls are 941 974 operating system neutral byte archives packaged in the zip compression 942 975 format which contain artifacts whose loading \code{CL:LOAD} 943 976 understands. Internally, our fasls contain a piece of Lisp that 944 977 \code{CL:LOAD} interprets as instructions to load the Java classes 945 emitted by the \textsc{ABCL} Lisp compiler. The se ``synthetic''946 classeshave a JVM class file version of ``49.0''.978 emitted by the \textsc{ABCL} Lisp compiler. The classes emitted by 979 the \textsc{ABCL} compiler have a JVM class file version of ``49.0''. 947 980 948 981 % TODO check on what the compiler is currently emitting … … 972 1005 973 1006 \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 1011 of bytes available via URIs \footnote{A \textsc{URI} is essentially a 1012 super-set of what is commonly understood as a \textsc{URL}. We 1013 sometimes use the term URL as shorthand in describing the URL 1014 Pathnames, even though the corresponding encoding is more akin to a 1015 URI as described in RFC3986 \cite{rfc3986}.} and to enable the 1016 addressing of arbitrarily recursive entries within \textsc{ZIP} 1017 archives. These implementation decisions are encapsulated by the 1018 specialization of \code{CL:PATHNAME} as the \code{EXT:URL-PATHNAME} 1019 and the \code{EXT:JAR-PATHNAME} types. 996 1020 997 1021 % RDF description of type hierarchy 998 1022 % TODO Render via some LaTeX mode for graphviz? 999 1023 \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> . 1007 1031 \end{verbatim} 1008 1032 1033 The \code{EXT:URL-PATHAME} object utilizes the standard \textsc{JVM} 1034 implementation of \code{java.net.URL} to access resources named by the 1035 ``file'', ``http'', ``https'', ``jar'', and ``ftp'' schemes. 1036 Additional protocol handlers for other may be installed at runtime by 1037 having \textsc{JVM} symbols present in the 1038 \code{sun.net.protocol.dynamic}\footnote{See \cite{maso2000} for more 1039 details. \url{https://stackoverflow.com/questions/41784555/print-all-supported-url-schemes-in-java8} 1040 contains a more up-to-date description.} The namestring of a 1041 \code{EXT:URL-PATHNAME} object is equivalent to the string 1042 serialization of its representation encoded via the ``percent 1043 encoding'' rules of URIs\footnote{See 1044 \url{https://url.spec.whatwg.org/\#percent-encoded-bytes} for a 1045 description of this process.}. 1046 1047 The \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 1050 is a super-set. \footnote{JAR archive utilize the ZIP format for 1051 packing and compression adding procedures to add supporting metadata 1052 in a manifest which is standardized text file stored at a canonical 1053 location within the archive.} \textsc{JAR} archives are typically 1054 used to aggregate many Java class files and associated metadata and 1055 resources (text, images, etc.) into one file for distribution. 1056 \textsc{ABCL} is typically packaged as a \textsc{JAR} archive and 1057 emits its fasls as \textsc{ZIP} files. 1058 1059 Both the \code{EXT:URL-PATHNAME} and \code{EXT:JAR-PATHNAME} 1060 specializations may be broadly used anywhere a \code{CL:PATHNAME} is 1061 accepted with the general caveat that stream obtained via 1062 \code{CL:OPEN} on either sub-type cannot be the target of write 1063 operations. 1064 1065 \subsubsection{URL-PATHNAME} 1009 1066 \label{EXTENSIONS:URL-PATHNAME} 1010 1067 \index{URL-PATHNAME} 1011 1068 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} 1069 A \code{URL-PATHNAME} denotes a source of bytes addressable by its 1070 corresponding namestring interpreted as a \textsc{URI}. 1071 1072 A \code{EXT:URL-PATHNAME} always has a \code{HOST} component that is a 1073 property list. The values of the \code{HOST} property list are always 1074 character 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 1084 If 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 1086 will be normalized as such in any pathname subjected to 1087 \code{TRUENAME} resolution. 1088 1089 In order to encapsulate the implementation decisions for these 1090 meanings, the following functions provide a SETF-able API for 1091 reading 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 1094 be 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 1112 Any results of canonicalization procedures performed on a object of 1113 type \code{EXT:URL-PATHNAME} via local or network resolutions 1114 discarded between attempts (i.e. the implementation does not attempt 1115 to cache the results of current name resolution of the URI for 1116 underlying resource unless it is requested to be resolved.) Upon 1117 resolution, any canonicalization procedures followed in resolving the 1118 resource (e.g. following redirects) are discarded. Users may 1119 programatically initiate a new, local computation of the resolution of 1120 the resource by applying the \code{CL:TRUENAME} function to a 1121 \code{EXT:URL-PATHNAME} object. Depending on the reliability and 1122 properties of your local \textsc{REST} infrastructure, these results 1123 may not necessarily be idempotent over time\footnote {See 1124 \cite{uri-pathname} for the design and implementation notes for the 1125 technical details}. A future implementation may attempt to expose an 1126 API to observer/customize the content negotiation initiated during 1127 retrieval of the representation of a given resource, which is 1128 currently handled at the application level. 1044 1129 1045 1130 The implementation of \code{EXT:URL-PATHNAME} allows the \textsc{ABCL} 1046 1131 user to dynamically load code from the network. For example, 1047 1132 \textsc{Quicklisp} (\cite{quicklisp}) may be completely installed from 1048 the \textsc{REPL} as the single form:1133 the \textsc{REPL} to download and execute the Quicklisp setup code via: 1049 1134 1050 1135 \begin{listing-lisp} 1051 CL-USER> (load "http ://beta.quicklisp.org/quicklisp.lisp")1136 CL-USER> (load "https://beta.quicklisp.org/quicklisp.lisp") 1052 1137 \end{listing-lisp} 1053 1138 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 1145 In \textsc{ABCL}, the \code{DEVICE} can be either a string either 1146 denoting a drive letter or a UNC mount under \textsc{DOS} or a list of 1147 one or more elements. If \code{DEVICE} is a list, it denotes a 1148 \code{EXT:JAR-PATHNAME}. 1149 1150 The implementation extends the \textsc{ANSI} specification with 1151 \textsc{EXT:JAR-PATHNAME} by utilizing its \code{DEVICE} to contain a 1152 list of pathnames denoting the location of and relative address within 1153 a \textsc{ZIP} archive. The first member of this list will be a 1154 \code{EXT:URL-PATHNAME} designates the root source of bytes encoded 1155 via the \textsc{ZIP} compression algorithm. This reference can either 1156 be to a file located on the local file-system or as a remote source 1157 via an stream-oriented messaging protocol such as \textsc{https}. The 1158 remainder of the \code{DEVICE} list contains ``traditional'' 1159 \code{CL:PATHNAME} objects denoting successive relative archive paths. 1160 This allows pathnames to reference an entry in an arbitrarily nested 1161 ZIP archives, which is the case when the an ABCL fasl is included in 1162 in a jar archive. 1163 1164 In order to implement useful behavior of merging with pathname 1165 defaults, the implementation will contain the \code{:UNSPECIFIC} 1166 keyword in any truename that wasn't explicitly merging with a 1167 \code{EXT:JAR-PATHNAME}. Therefore, the implementation extends the 1168 semantics for the usual merge semantics when 1169 \code{*DEFAULT-PATHNAME-DEFAULTS*} contains a \code{EXT:JAR-PATHNAME} 1170 with the ``do what I mean'' algorithm described in 1171 \ref{section:conformance} on page \pageref{section:conformance}. 1172 1173 The namestring representation of \code{EXT:JAR-PATHNAME} references 1174 use successive ``jar'' prefixes and corresponding ``!'' suffixes to 1175 encapsulate successive locations. Described broadly, a 1176 \code{EXT:JAR-PATHNAME} encapsulates the \textsc{URL} describing the 1177 location of the archive and a possible entry within that archive. 1178 1179 \begin{verbatim} 1180 jar:<url>!/[<entry>] 1181 \end{verbatim} 1182 1183 The \textsc{URL} usually has the ``file'' scheme, but remote locations 1184 expressed in the ``https'' or ``http'' are also allowed. 1185 1186 Subsequent entries within an archive are denoted via prefixing 1187 additional ``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 1122 1193 1123 1194 \section{Package-Local Nicknames} 1124 \label{sec :package-local-nicknames}1125 1126 ABCL allows giving packages local nicknames : theyallow short and1195 \label{section:package-local-nicknames} 1196 1197 ABCL allows giving packages local nicknames which allow short and 1127 1198 easy-to-use names to be used without fear of name conflict associated 1128 with normal nicknames.\footnote{Package-local nicknames were originally1129 developed in SBCL.}1199 with normal nicknames.\footnote{Package-local nicknames were 1200 originally developed in SBCL.} 1130 1201 1131 1202 A local nickname is valid only when inside the package for which it … … 1219 1290 \end{adjustwidth} 1220 1291 1221 1222 1223 1292 \section{Extensible Sequences} 1224 1293 … … 1229 1298 \code{java.util.List} contract. 1230 1299 1231 1232 1300 %% an Example of using java.util.Lisp in Lisp would be nice 1233 1301 … … 1276 1344 1277 1345 There 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.1346 generic function on a java class, viz. \code{(java:jclass 1347 CLASS-STRING)} where \code{CLASS-STRING} is a string naming a Java 1348 class in dotted package form. 1281 1349 1282 1350 For instance the following specialization would perhaps allow one to … … 1336 1404 1337 1405 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. 1406 Note that that the reader escaped sequence is never output by the 1407 implementation. Instead, the implementation emits the bytes 1408 corresponding Unicode character is output for characters whose code is 1409 greater than \code{0x00ff}. 1341 1410 1342 1411 \section{Overloading of the CL:REQUIRE Mechanism} 1343 1412 1344 The \code{CL:REQUIRE} mechanism is overloaded by attaching the se1345 semantics to the execution of \code{REQUIRE} on the followingsymbols:1413 The \code{CL:REQUIRE} mechanism is overloaded by attaching the 1414 following behavior to the execution of \code{REQUIRE} on these symbols: 1346 1415 1347 1416 \begin{description}[style=nextline] … … 1360 1429 \begin{description}[style=nextline] 1361 1430 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. 1405 1475 1406 1476 \end{description} … … 1436 1506 1437 1507 \section{Extension to CL:MAKE-ARRAY} 1438 \label{sec:make-array} 1508 \label{section:make-array} 1509 \index{MAKE-ARRAY} 1439 1510 1440 1511 With 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 arguments1443 to \code{cl:make-array}, viz. \code{:nio-buffer} and1512 the Eighth Edition (aka abcl-1.7.0) and indicated by the presence of 1513 \code{:nio} in \code{cl:*features*}}, the implementation adds two 1514 keyword arguments to \code{cl:make-array}, viz. \code{:nio-buffer} and 1444 1515 \code{:nio-direct}. 1445 1516 … … 1490 1561 primarily for large, long-lived buffers that are subject to the 1491 1562 underlying system's native I/O operations. In general it is best to 1492 allocate direct buffers only when they yield a measur eable gain in1563 allocate direct buffers only when they yield a measurable gain in 1493 1564 program performance. 1494 1565 … … 1500 1571 The \textsc{ABCL} contrib is packaged as a separate jar archive usually named 1501 1572 \code{abcl-contrib.jar} or possibly something like 1502 \code{abcl-contrib-1. 7.1.jar}. The contrib jar is not loaded by the1573 \code{abcl-contrib-1.8.0.jar}. The contrib jar is not loaded by the 1503 1574 implementation by default, and must be first initialized by the 1504 1575 \code{REQUIRE} mechanism before using any specific contrib: … … 1509 1580 1510 1581 \section{abcl-asdf} 1511 \label{sec :abcl-asdf}1582 \label{section:abcl-asdf} 1512 1583 \index{ABCL-ASDF} 1513 1584 1514 1585 This contrib enables an additional syntax for \textsc{ASDF} system 1515 1586 definition which dynamically loads \textsc{JVM} artifacts such as jar 1516 archives via encapsulation ofthe Maven build tool. The Maven Aether1587 archives via encapsulation by the Maven build tool. The Maven Aether 1517 1588 component can also be directly manipulated by the function associated 1518 1589 with the \code{ABCL-ASDF:RESOLVE-DEPENDENCIES} symbol. … … 1523 1594 1524 1595 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. 1596 When 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 1599 others) as public symbols. 1528 1600 1529 1601 \subsection{Referencing Maven Artifacts via ASDF} … … 1547 1619 1548 1620 We define an API for \textsc{ABCL-ASDF} as consisting of the following 1549 ASDFclasses:1621 \textsc{ASDF} classes: 1550 1622 1551 1623 \code{JAR-DIRECTORY}, \code{JAR-FILE}, and … … 1554 1626 1555 1627 Both the \code{MVN} and \code{IRI} classes descend from 1556 \code{ASDF-COMPONENT}, but do not directly have a file system location.1628 \code{ASDF-COMPONENT}, but do not directly have a file-system location. 1557 1629 1558 1630 For use outside of ASDF system definitions, we currently define one … … 1571 1643 "gwt-user") 1572 1644 WARNING: 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 1647 ations/2.0.0/jsinterop-annotations-2.0.0.jar:/Users/evenson/.m2/repositor 1648 y/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA.jar:/U 1649 sers/evenson/.m2/repository/javax/validation/validation-api/1.0.0.GA/vali 1650 dation-api-1.0.0.GA-sources.jar:/Users/evenson/.m2/repository/javax/servl 1651 et/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" 1578 1653 \end{listing-lisp} 1579 1654 1580 To actually load the dependency , use the \code{JAVA:ADD-TO-CLASSPATH} generic1581 function:1655 To actually load the dependency into the current process, use the 1656 \code{JAVA:ADD-TO-CLASSPATH} generic function: 1582 1657 1583 1658 \begin{listing-lisp} … … 1591 1666 1592 1667 More 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}. 1594 1669 1595 1670 \section{asdf-jar} 1596 \label{sec :asdf-jar}1671 \label{section:asdf-jar} 1597 1672 \index{ASDF-JAR} 1598 1673 … … 1604 1679 1605 1680 The 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}. 1607 1682 1608 1683 \section{jss} … … 1610 1685 \index{JSS} 1611 1686 1612 To one used to the more universal syntax of Lisp pairs upon which the1613 definition of read and compile time macros is quite1687 To one used to the more universal syntax of s-expr pairs upon which 1688 the definition of read and compile time macros is quite 1614 1689 natural \footnote{See Graham's ``On Lisp'' 1615 http://lib.store.yahoo.net/lib/paulgraham/onlisp.pdf.}, the Java 1616 syntax available to the Javaprogrammer may be said to suck. To1617 alleviate this situation, the JSScontrib introduces the1690 http://lib.store.yahoo.net/lib/paulgraham/onlisp.pdf.}, the syntax 1691 available to the \textsc{Java} programmer may be said to suck. To 1692 alleviate this situation, the \textsc{JSS} contrib introduces the 1618 1693 \code{SHARPSIGN-DOUBLE-QUOTE} (\code{\#"}) reader macro, which allows 1619 1694 the the specification of the name of invoking function as the first … … 1621 1696 Lisp programmers seem to be wired to think. 1622 1697 1623 While quite useful, we don't expect that the JSS contrib will be the 1624 last experiment in wrangling Java from Common Lisp. 1698 While quite useful, we don't expect that the \textsc{JSS} contrib will 1699 be the last experiment in wrangling \textsc{Java} from \textsc{Common 1700 Lisp}. 1625 1701 1626 1702 \subsection{JSS usage} 1627 1703 1628 Example: 1704 An example of using \textsc{JSS} to enumerate the \textsc{Java} 1705 runtime system properties: 1629 1706 1630 1707 \begin{listing-lisp} … … 1640 1717 1641 1718 Some 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} 1643 1720 1644 1721 \section{jfli} … … 1649 1726 from Common Lisp. 1650 1727 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}. 1652 1729 1653 1730 \section{abcl-introspect} 1654 \ ref{section:abcl-introspect}1731 \label{section:abcl-introspect} 1655 1732 \index{ABCL-INTROSPECT} 1656 1733 1657 1734 \textsc{ABCL-INTROSPECT} offers more extensive functionality for 1658 1735 inspecting the state of the implementation, most notably in 1659 integration with SLIME, where the backtrace mechanism is augmented to1660 the point that local variables are inspectable.1661 1662 A compiled function is an instance of a class - This class has1663 multiple instances if it represents a closure, or a single instance if 1664 itrepresents a non-closed-over function.1736 integration with \textsc{SLIME}, where the backtrace mechanism is 1737 augmented to the point that local variables are inspectable. 1738 1739 A compiled function is an instance of a class, which has multiple 1740 instances if it represents a closure, or a single instance if it 1741 represents a non-closed-over function. 1665 1742 1666 1743 The \textsc{ABCL} compiler stores constants that are used in function … … 1674 1751 uses them in at least two ways. First, to annotate locally defined 1675 1752 functions with the top-level function they are defined within, and 1676 second to search for callers of a give function \footnote{ Since java1753 second to search for callers of a give function \footnote{ Since \textsc{Java} 1677 1754 functions are strings, local fields also have these strings. In the 1678 1755 context of looking for callers of a function you can also give a … … 1698 1775 \subsection{Implementations for CL:DISASSEMBLE} 1699 1776 \label{abcl-introspect-disassemblers} 1700 1701 The following ASDF systems packages various external tools that may be 1777 \index{CL:DISASSEMBLE} 1778 1779 The following \textsc{ASDF} systems packages various external tools that may be 1702 1780 selected by the \code{SYS:CHOOSE-DISASSEMBLER} interface: 1703 1781 … … 1756 1834 1757 1835 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/}. 1759 1837 1760 1838 \section{abcl-build} 1761 \label{sec :abcl-build}1839 \label{section:abcl-build} 1762 1840 \index{ABCL-BUILD} 1763 1841 1764 1842 1765 1843 \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} 1844 Lisp-hosted \textsc{ABCL} build system API in the package 1845 \code{ABCL-BUILD} that uses the same build artifacts as all of the 1846 other current builds. 1847 1848 \subsection{ABCL-BUILD Utilities} 1770 1849 1771 1850 \textsc{ABCL-BUILD} consolidates various utilities that are useful 1772 1851 for system construction, namely 1852 1773 1853 \begin{itemize} 1774 1854 … … 1785 1865 \end{itemize} 1786 1866 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/}. 1788 1868 1789 1869 \section{named-readtables} … … 1794 1874 readtables akin to the already-existing namespace of packages. 1795 1875 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 1876 This contrib was included from the source available from 1877 \url{https://github.com/melisgl/named-readtables/}. 1878 1879 See \url{http://abcl.org/svn/tags/1.8.0/contrib/named-readtables/} for 1799 1880 more information. 1800 1881 … … 1813 1894 1814 1895 In 2008, the implementation was transferred to the current 1815 maintainers, who have strive dto improve its usability as a1896 maintainers, who have striven to improve its usability as a 1816 1897 contemporary Common Lisp implementation. 1817 1898 … … 1836 1917 community contributions from Vihbu, Olof, Pipping, and Cyrus. We 1837 1918 gingerly stepped into current century by establishing \textsc{git} 1838 bridges to the source repositories avai able via the URIs1919 bridges to the source repositories available via the URIs 1839 1920 \url{https://github.com/armedbear/abcl/} and 1840 1921 \url{https://gitlab.common-lisp.net/abcl/abcl/} so that pull requests … … 1856 1937 abcl-1.7.1 as a maintenance release in July 2020. 1857 1938 1939 We released abcl-1.8.0 under the darkening storms of October 2020 1940 1941 1858 1942 \appendix 1859 1943 … … 1865 1949 1866 1950 The public interfaces in this package are subject to change with 1867 \textsc{ABCL} 1. 8.1951 \textsc{ABCL} 1.9 1868 1952 1869 1953 \include{system} -
trunk/abcl/doc/manual/extensions.tex
r15196 r15464 749 749 750 750 \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} 756 Read the file at PATHNAME as a Java byte[] array 757 \end{adjustwidth} 758 759 \paragraph{} 751 760 \label{EXTENSIONS:READ-TIMEOUT} 752 761 \index{READ-TIMEOUT} … … 957 966 958 967 \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} 973 Return the integer of the underlying unix file descriptor for STREAM 974 975 Added by ABCL-INTROSPECT. 976 \end{adjustwidth} 977 978 \paragraph{} 959 979 \label{EXTENSIONS:STRING-FIND} 960 980 \index{STRING-FIND} … … 1092 1112 1093 1113 \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} 1119 Write the Java byte[] array CLASS-BYTES to PATHNAME. 1120 \end{adjustwidth} 1121 1122 \paragraph{} 1094 1123 \label{EXTENSIONS:WRITE-TIMEOUT} 1095 1124 \index{WRITE-TIMEOUT} -
trunk/abcl/doc/manual/java.tex
r15196 r15464 218 218 219 219 \begin{adjustwidth}{5em}{5em} 220 not-documented 220 Returns the cause of JAVA-EXCEPTION. (The cause is the Java Throwable 221 object that caused JAVA-EXCEPTION to be signalled.) 221 222 \end{adjustwidth} 222 223 … … 346 347 347 348 \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. 349 not-documented 351 350 \end{adjustwidth} 352 351 -
trunk/abcl/doc/manual/system.tex
r15196 r15464 712 712 713 713 \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. 714 Methods of invoking CL:DISASSEMBLE consisting of a enumeration of (keyword function) pairs 715 716 The pairs (keyword function) contain a keyword identifying this 717 particulat disassembler, and a symbol designating function takes a 718 object to disassemble. 719 720 Use SYS:CHOOSE-DISASSEMBLER to install a given disassembler as the one 721 used by CL:DISASSEMBLE. Additional disassemblers/decompilers are 722 packaged in the ABCL-INTROSPECT contrib. 723 724 The intial default is :javap using the javap command line tool which 725 is part of the Java Developement Kit. 717 726 718 727 \end{adjustwidth} … … 931 940 932 941 \begin{adjustwidth}{5em}{5em} 933 not-documented 942 Signal simple-error when EXPR is non-NIL. 934 943 \end{adjustwidth} 935 944 … … 1012 1021 1013 1022 \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. 1023 Report current disassembler that would be used by CL:DISASSEMBLE 1024 1025 With optional keyword NAME, select the associated disassembler from 1026 SYS:*DISASSEMBLERS*. 1017 1027 \end{adjustwidth} 1018 1028 … … 1027 1037 1028 1038 \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} 1044 not-documented 1045 \end{adjustwidth} 1046 1047 \paragraph{} 1029 1048 \label{SYSTEM:COERCE-TO-CONDITION} 1030 1049 \index{COERCE-TO-CONDITION} … … 1261 1280 1262 1281 \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{}1272 1282 \label{SYSTEM:ENVIRONMENT} 1273 1283 \index{ENVIRONMENT} … … 1525 1535 1526 1536 \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} 1542 Returns a java.io.InputStream for resource denoted by PATHNAME. 1543 \end{adjustwidth} 1544 1545 \paragraph{} 1527 1546 \label{SYSTEM:GETHASH1} 1528 1547 \index{GETHASH1} … … 1852 1871 \label{SYSTEM:MAKE-FILE-STREAM} 1853 1872 \index{MAKE-FILE-STREAM} 1854 --- Function: \textbf{make-file-stream} [\textbf{system}] \textit{pathname namestringelement-type direction if-exists external-format}1873 --- Function: \textbf{make-file-stream} [\textbf{system}] \textit{pathname element-type direction if-exists external-format} 1855 1874 1856 1875 \begin{adjustwidth}{5em}{5em} … … 1934 1953 \index{MAKE-SYMBOL-MACRO} 1935 1954 --- Function: \textbf{make-symbol-macro} [\textbf{system}] \textit{expansion} 1955 1956 \begin{adjustwidth}{5em}{5em} 1957 not-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} 1936 1964 1937 1965 \begin{adjustwidth}{5em}{5em} -
trunk/abcl/doc/manual/threads.tex
r15196 r15464 23 23 24 24 \begin{adjustwidth}{5em}{5em} 25 Acquires a lock on the `mutex'.25 Acquires the lock associated with the MUTEX 26 26 \end{adjustwidth} 27 27 … … 82 82 \label{THREADS:MAKE-MAILBOX} 83 83 \index{MAKE-MAILBOX} 84 --- Function: \textbf{make-mailbox} [\textbf{threads}] \textit{\&key ((queue g 284829) NIL)}84 --- Function: \textbf{make-mailbox} [\textbf{threads}] \textit{\&key ((queue g305040) NIL)} 85 85 86 86 \begin{adjustwidth}{5em}{5em} … … 91 91 \label{THREADS:MAKE-MUTEX} 92 92 \index{MAKE-MUTEX} 93 --- Function: \textbf{make-mutex} [\textbf{threads}] \textit{\&key ((in-use g 285092) NIL)}93 --- Function: \textbf{make-mutex} [\textbf{threads}] \textit{\&key ((in-use g305303) NIL)} 94 94 95 95 \begin{adjustwidth}{5em}{5em} … … 112 112 113 113 \begin{adjustwidth}{5em}{5em} 114 Returns an object to be used with the `with-thread-lock'macro.114 Returns an object to be used with the WITH-THREAD-LOCK macro. 115 115 \end{adjustwidth} 116 116 … … 165 165 166 166 \begin{adjustwidth}{5em}{5em} 167 Releases a lock on the `mutex'.167 Releases a lock associated with MUTEX 168 168 \end{adjustwidth} 169 169 … … 201 201 202 202 \begin{adjustwidth}{5em}{5em} 203 Waits for thread to finish. 203 Waits for THREAD to die before resuming execution 204 Returns the result of the joined thread as its primary value. 205 Returns T if the joined thread finishes normally or NIL if it was interrupted. 204 206 \end{adjustwidth} 205 207 … … 228 230 229 231 \begin{adjustwidth}{5em}{5em} 230 Acquires a lock on `mutex', executes the body 231 and releases the lock. 232 Acquires a lock on MUTEX, executes BODY, and then releases the lock 232 233 \end{adjustwidth} 233 234 … … 238 239 239 240 \begin{adjustwidth}{5em}{5em} 240 Acquires a lock on the `lock', executes `body' and releases the lock.241 Acquires the LOCK, executes BODY and releases the LOCK 241 242 \end{adjustwidth} 242 243 -
trunk/abcl/doc/releng.org
r15341 r15464 14 14 15 15 Enter 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 17 the =mvn= tool uploads artifacts to the Sonatype snapshot and staging 18 infrastructure. 17 19 18 20 #+BEGIN_SRC xml … … 50 52 51 53 **** Snapshots 52 For snapshots - development versions - the version in the POM should look like ~x.y.z-SNAPSHOT~. 54 For snapshots (aka development versions) the version in the POM should 55 be of the form ~x.y.z-SNAPSHOT~. 53 56 54 57 #+BEGIN_SRC bash … … 60 63 #+END_SRC 61 64 62 63 65 **** Release 64 For releases - the version in the POM should look like~x.y.z~66 For releases the version in the POM should be of the form ~x.y.z~ 65 67 66 68 #+BEGIN_SRC bash 67 keyname='< evenson.not.org@gmail.com>'68 abcl_version=1. 7.169 keyname='<your_pgg_key@example.com>' 70 abcl_version=1.8.0 69 71 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 70 72 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 … … 76 78 #+BEGIN_SRC bash 77 79 keyname='<evenson.not.org@gmail.com>' 78 abcl_version=1. 7.180 abcl_version=1.8.0 79 81 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 80 82 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 … … 100 102 101 103 102 103 104 *** Specifying GPG executable 104 105 105 For specifying gpg executable, use a property specified via106 '-Dgpg.executable=gpg2'. 106 For specifying the =gpg= executable used via =mvn= use a property 107 specified via the =gpg.executable= property (e.g. '-Dgpg.executable=gpg2'.) 107 108 108 109 **** Signing binary release … … 123 124 #+begin_example 124 125 Created: ?? 125 Revised: <2020- 06-05 Fri 08:46>126 Revised: <2020-10-21 Wed 10:01> 126 127 #+end_example 127 128 -
trunk/abcl/pom.xml
r15346 r15464 14 14 <groupId>org.abcl</groupId> 15 15 <artifactId>abcl</artifactId> 16 <version>1. 7.2-SNAPSHOT</version>16 <version>1.8.0</version> 17 17 <packaging>jar</packaging> 18 18 <name>ABCL - Armed Bear Common Lisp</name> -
trunk/abcl/src/org/armedbear/lisp/Version.java
r15346 r15464 42 42 private Version() {} 43 43 44 static final String baseVersion = "1. 7.2-dev";44 static final String baseVersion = "1.8.0"; 45 45 46 46 static void init() { -
trunk/abcl/src/org/armedbear/lisp/abcl-contrib.lisp
r15440 r15464 57 57 ;; it would minimally need to check version information. 58 58 (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!/")))) 60 60 61 61 (defun flatten (list)
Note: See TracChangeset
for help on using the changeset viewer.