source: tags/1.9.1/README

Last change on this file was 15664, checked in by Mark Evenson, 15 months ago

1.9.1: metadata for rc-0

  • Property svn:eol-style set to native
File size: 8.7 KB
Line 
1Armed Bear Common Lisp (ABCL)
2=============================
3
4Armed Bear Common Lisp is a conforming implementation of ANSI X3J13
5Common Lisp that runs in a Java virtual machine.  It compiles Lisp
6code directly to Java byte code for execution.
7
8
9LICENSE
10-------
11
12Armed Bear Common Lisp is distributed under the GNU General Public
13License with a classpath exception (see "Classpath Exception" below).
14
15A copy of GNU General Public License (GPLv2) is included in this
16distribution, in <file:COPYING>.
17
18We have modified our GPLv2 license section 13 to read:
19
20     13. Linking this library statically or dynamically with other
21     modules is making a combined work based on this library. Thus, the
22     terms and conditions of the GNU General Public License cover the
23     whole combination.
24
25     The following paragraph details the "classpath exception" which ABCL
26     allows as an exception to the statement about linking libraries.
27
28     As a special exception, the copyright holders of this software give
29     you permission to link this software with independent modules to
30     produce an executable, regardless of the license terms of these
31     independent modules, and to copy and distribute the resulting
32     executable under terms of your choice, provided that you also meet,
33     for each linked independent module, the terms and conditions of the
34     license of that module. An independent module is a module which is
35     not derived from or based on this software. If you modify this
36     software, you may extend this exception to your version of the
37     software, but you are not obligated to do so. If you do not wish to
38     do so, delete this exception statement from your version.
39
40CONTAINERIZATION
41----------------
42
43We recommend using podman over docker for political reasons, but the
44surface syntax is identical so if you must, just substitute `docker`
45for `podman` in the following examples.
46
47With [podman][] installed, one may execute:
48
49    podman build -t YOURID/abcl .
50    podman run -it YOURID/abcl
51
52to get something like
53
54    illin:~/work/abcl$ podman run -it YOURID/abcl
55    VM settings:
56    Max. Heap Size (Estimated): 498.00M
57    Using VM: OpenJDK 64-Bit Server VM
58
59    Armed Bear Common Lisp 1.9.1
60    Java 17.0.5 Oracle Corporation
61    OpenJDK 64-Bit Server VM
62    Low-level initialization completed in 0.952 seconds.
63    Startup completed in 4.248 seconds.
64    Type ":help" for a list of available commands.
65    CL-USER(1):
66
67To install Quicklisp for ABCL in the Docker container run:
68
69    podman run -t YOURID/abcl abcl \
70      --batch --load /home/abcl/work/abcl/ci/install-quicklisp.lisp
71
72See <file:Dockerfile> for the build instructions.
73
74[podman]:             <https://podman.io/releases/>
75[Docker Engine]:      <https://www.docker.com/products/docker-engine>
76
77
78RUNNING FROM BINARY RELEASE
79---------------------------
80
81After you have downloaded a binary release from either [the
82distributed Maven POM graph][maven-abcl] or from
83[abcl.org][abcl.org-release] archive unpack it into its own
84directory. To run ABCL directly from this directory, make sure the
85Java executable (`java`) is in your shell's path.  Java 8, 11, 17 are
86strongly supported by ABCL, but others may work with a little elbow
87grease.
88
89[maven-abcl]:          <https://mvnrepository.com/artifact/org.abcl/abcl/1.9.1>
90[maven-abcl-contrib]:  <https://mvnrepository.com/artifact/org.abcl/abcl-contrib/1.9.1>
91[abcl.org-release]:    <http://abcl.org/releases/1.9.1/>
92
93To start ABCL, simply issue the following command:
94
95    cmd$ java -jar abcl.jar
96
97which should result in output like the following
98
99    Armed Bear Common Lisp 1.9.1
100    Java 17.0.5 OpenJDK Porters Group
101    OpenJDK 64-Bit Server VM
102    Low-level initialization completed in 0.107 seconds.
103    Startup completed in 0.493 seconds.
104    CL-USER(1):
105
106Yer now at the interactive ABCL "Read Eval Print Loop" (REPL): hacks
107'n glory await.
108
109See the section headed "SLIME" for instructions to connect to this
110repl from Emacs.
111
112
113BUILDING FROM SOURCE RELEASE
114----------------------------
115
116ABCL may be built from its source code by executing the build
117instructions <file:build.xml> expressed by the venerable Apache Ant
118tool.  Alternately, one may use the Apache Maven tool as a facade to
119Ant.
120
121To build, one must have a Java 8, 11, or 17 openjdk installed
122locally. Just the Java Runtime Environment (JRE) isn't enough, as you
123need the Java compiler ('javac') to compile the Java source of the
124ABCL implementation.
125
126Download a binary distribution [Ant version 1.7.1 or greater][ant].
127Unpack the files somewhere convenient, ensuring that the 'ant' (or
128'ant.bat' under Windows) executable is in your path and executable.
129
130[ant]:    <https://ant.apache.org/bindownload.cgi>
131
132Then simply executing
133
134    cmd$ ant
135
136To use [Maven][], download it, ensure the `mvn` executable is in your
137PATH and then
138
139    cmd$ mvn -Dmaven.test.skip=true install
140
141[Maven]:     <https://maven.apache.org/download.cgi>
142
143from the directory containing the <file:build.xml> instructions will
144create an executable wrapper ('abcl' under UNIX, 'abcl.bat' under
145Windows).  Use this wrapper to start ABCL.
146
147The build may be customized by copying <file:abcl.properties.in> to
148<file:abcl.properties>, which will cause Ant to attempt to build
149incrementally as well as optimizing the runtime for a contemporary
15064bit desktop/server machine running Java 8, 11, and/or 17.  The file
151contains incomplete documentation on how it may be edited for
152subsequent customization.  As an alternative to copying the prototype,
153if one has a version of bash locally, one may issue via Ant
154
155    ant abcl.properties.autoconfigure.openjdk.17
156
157or from the shell as
158
159    bash ci/create-abcl-properties.bash openjdk17
160
161Currently supported platforms are 'openjdk8', 'openjdk11',
162'openjdk13', 'openjdk14', 'openjdk15', 'openjd16', 'openjdk17',
163'openjdk18', and 'openjdk19'.
164
165
166USING APACHE NETBEANS
167---------------------
168
169Alternatively, one may install the [Netbeans visual integrated
170development environment][netbeans], which contains both the Java
171Development Kit as well as the Ant build tool.  The source
172distribution contains Netbeans-specific project artifacts under
173<file:nbproject> for loading ABCL as a Netbeans project.
174
175With Netbeans, one should be able to open the ABCL directory as a
176project whereupon the usual build, run, and debug targets as invoked
177in the GUI are available.  Use the 'slime' config with a suitably
178linked SLIME `swank.asd` ASDF configuration
179<file:~/.config/common-lisp/source-registry.conf.d/> to connect a REPL
180to the NetBeans debug process.
181
182[netbeans]:     <https://netbeans.org/downloads/>
183
184
185SLIME
186-----
187
188For usage of ABCL with the [Superior Lisp Interaction Mode for
189Emacs][slime], one may easily start a Swank listener via:
190
191    (require :asdf)
192    (require :abcl-contrib)
193    (asdf:load-system :quicklisp-abcl)
194    (or
195       (asdf:make :swank)
196       (ql:quickload :swank))
197    (swank:create-server :dont-close t)
198
199[slime]:                 <https://common-lisp.net/project/slime/>
200
201
202
203BUGS
204----
205
206Armed Bear Common Lisp strives to be a conforming ANSI X3J13 Common
207Lisp implementation.  Any other behavior should be reported as a bug.
208
209ABCL has a [User Manual][manual] stating its conformance to the ANSI
210standard, providing a compliant and practical Common Lisp
211implementation.
212
213[manual]:       <https://abcl.org/releases/1.9.1/abcl-1.9.1.pdf>
214
215
216TESTS
217-----
218
219    | Version | Failures | Total |
220    |---------+----------+-------|
221    |   1.9.1 |       60 | 21870 |
222    |   1.9.0 |       61 | 21870 |
223    |   1.8.0 |       49 | 21848 |
224    |   1.5.0 |       48 | 21708 |
225
226ABCL 1.9.1 currently fails ~60 out of 21870 the current ANSI test
227suite derived from the tests originally written for GCL.
228
229[ansi-test]: <git+https://gitlab.common-lisp.net/ansi-test/ansi-test.git>
230
231Maxima's test suite runs without failures.
232
233ABCL comes with a test suite.  Consult the output of `ant help.test`
234for more information.
235
236
237SUPPORT
238-------
239
240ABCL has many deficiencies, both known and unknown.  Descriptions,
241tests, and even patches to address them will be gladly accepted.
242
243Please report problems to the [development mailing list][mailing-list]
244or via opening an issue on either the [ABCL trac instance][trac] or
245[github][].
246
247[mailing-list]: <https://mailman.common-lisp.net/pipermail/armedbear-devel/>
248[github]:       <https://github.com/armedbear/abcl/issues>
249[trac]:         <https://abcl.org/trac/>
250
251
252AUTHORS
253-------
254
255On behalf of all ABCL development team and contributors,
256
257    Mark Evenson
258    Erik HÃŒlsmann
259    Rudolf Schlatte
260    Alessio Stalla
261    Ville Voutilainen
262
263    alan
264    dmiles
265    Dmitry Nadezhin
266    olof ferada
267    pipping
268    slyrus
269    vibhu
270
271    Jonathan Cunningham
272    Uthar
273    alejandrozf
274    phoe
275    jackdaniel
276    Robert Munyer
277    Eric Timmons (daewok)
278    contrapunctus
279    Scott Burson
280    Samuel Hunter
281    Phil Eaton
282
283    András Simon
284    Peter Graves
285
286Have fun!
287
288February 2023
289
Note: See TracBrowser for help on using the repository browser.