source: trunk/abcl/README

Last change on this file was 15714, checked in by Mark Evenson, 18 months ago

1.9.2: release metadata

  • Property svn:eol-style set to native
File size: 9.3 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): 3.89G
57        Using VM: OpenJDK 64-Bit Server VM
58
59    Armed Bear Common Lisp 1.9.2
60    Java 17.0.2 Oracle Corporation
61    OpenJDK 64-Bit Server VM
62    Low-level initialization completed in 0.432 seconds.
63    Startup completed in 2.246 seconds.
64    Type ":help" for a list of available commands.
65    CL-USER(1):
66
67To install Quicklisp for ABCL in the 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.2>
90[maven-abcl-contrib]:  <https://mvnrepository.com/artifact/org.abcl/abcl-contrib/1.9.2>
91[abcl.org-release]:    <http://abcl.org/releases/1.9.2/>
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.2
100    Java 17.0.7 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.  To launch the debugging target it is
178currently necessary to have the `abcl.build.incremental` Ant property
179be set to `true`.  This can most easily be affected by running the
180autoconfigure mechanism for the underlying JVM platform as documented
181in the previous section entitlted "BUILDING FROM SOURCE RELEASE".
182
183To connect to the running Netbeans process, one may use the `slime`
184Netbeans configuration connecting to <tcp:4:localhost:4005> when
185prompted from an invocation M-x slime-connect with Emacs.  For this to
186work, ASDF must be configured to find a suitably linked SLIME
187`swank.asd`; the Lisp stanzas in the subsequent section entitled
188"SLIME" affect this in the local installation.
189
190[netbeans]:     <https://netbeans.org/downloads/>
191
192
193SLIME
194-----
195
196For usage of ABCL with the [Superior Lisp Interaction Mode for
197Emacs][slime], one may easily start a Swank listener via:
198
199    (require :asdf)
200    (require :abcl-contrib)
201    (asdf:load-system :quicklisp-abcl)
202    (or
203       (asdf:make :swank)
204       (ql:quickload :swank))
205    (swank:create-server :dont-close t)
206
207[slime]:                 <https://common-lisp.net/project/slime/>
208
209
210
211BUGS
212----
213
214Armed Bear Common Lisp strives to be a conforming ANSI X3J13 Common
215Lisp implementation.  Any other behavior should be reported as a bug.
216
217ABCL has a [User Manual][manual] stating its conformance to the ANSI
218standard, providing a compliant and practical Common Lisp
219implementation.
220
221[manual]:       <https://abcl.org/releases/1.9.2/abcl-1.9.2.pdf>
222
223
224TESTS
225-----
226
227    | Version | Failures | Total |
228    |---------+----------+-------|
229    |   1.9.2 |       63 | 21902 |
230    |   1.9.1 |       60 | 21870 |
231    |   1.9.0 |       61 | 21870 |
232    |   1.8.0 |       49 | 21848 |
233    |   1.5.0 |       48 | 21708 |
234
235ABCL 1.9.2 currently fails ~63 out of 21902 the current ANSI test
236suite derived from the tests originally written for GCL.
237
238[ansi-test]: <git+https://gitlab.common-lisp.net/ansi-test/ansi-test.git>
239
240Maxima's test suite runs without failures.
241
242ABCL comes with a test suite.  Consult the output of `ant help.test`
243for more information.
244
245
246SUPPORT
247-------
248
249ABCL has many deficiencies, both known and unknown.  Descriptions,
250tests, and even patches to address them will be gladly accepted.
251
252Please report problems to the [development mailing list][mailing-list]
253or via opening an issue on either the [ABCL trac instance][trac] or
254[github][].
255
256[mailing-list]: <https://mailman.common-lisp.net/pipermail/armedbear-devel/>
257[github]:       <https://github.com/armedbear/abcl/issues>
258[trac]:         <https://abcl.org/trac/>
259
260
261AUTHORS
262-------
263
264On behalf of all ABCL development team and contributors,
265
266    Mark Evenson
267    Erik HÃŒlsmann
268    Rudolf Schlatte
269    Alessio Stalla
270    Ville Voutilainen
271
272    alan
273    dmiles
274    Dmitry Nadezhin
275    olof ferada
276    pipping
277    slyrus
278    vibhu
279
280    Jonathan Cunningham
281    Uthar
282    alejandrozf
283    phoe
284    jackdaniel
285    Robert Munyer
286    Eric Timmons (daewok)
287    contrapunctus
288    Scott Burson
289    Samuel Hunter
290    Phil Eaton
291    jpellegrini
292
293    András Simon
294    Peter Graves
295
296Have fun!
297
298June 2023
299
Note: See TracBrowser for help on using the repository browser.