123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- Armed Bear Common Lisp README
- =============================
- GENERAL INFORMATION
- -------------------
- Armed Bear Common Lisp is a conforming implementation of ANSI Common
- Lisp that runs in a Java virtual machine. It compiles Lisp code
- directly to Java byte code.
- LICENSE
- =======
- Armed Bear Common Lisp is distributed under the GNU General Public
- License with a classpath exception (see "Classpath Exception" below).
- A copy of GNU General Public License (GPL) is included in this
- distribution, in the file COPYING.
- Linking this software statically or dynamically with other modules is
- making a combined work based on this software. Thus, the terms and
- conditions of the GNU General Public License cover the whole
- combination.
- ** Classpath Exception
- As a special exception, the copyright holders of this software give
- you permission to link this software with independent modules to
- produce an executable, regardless of the license terms of these
- independent modules, and to copy and distribute the resulting
- executable under terms of your choice, provided that you also meet,
- for each linked independent module, the terms and conditions of the
- license of that module. An independent module is a module which is not
- derived from or based on this software. If you modify this software,
- you may extend this exception to your version of the software, but you
- are not obligated to do so. If you do not wish to do so, delete this
- exception statement from your version.
- RUNNING FROM BINARY RELEASE
- ===========================
- After you have downloaded a binary release archive unpack it into its
- own directory. To run ABCL directly from this directory, make sure
- Java (version 1.5 or up) is in your shell's path. Then issue the
- following command:
- cmd$ java -jar abcl.jar
- which should result in output like the following
- Armed Bear Common Lisp 1.4.0-dev
- Java 1.7.0_51 Sun Microsystems Inc.
- Java HotSpot(TM) Client VM
- Low-level initialization completed in 0.3 seconds.
- Startup completed in 2.294 seconds.
- Type ":help" for a list of available commands.
- CL-USER(1):
- BUILDING FROM SOURCE RELEASE
- ============================
- There are three ways to build ABCL from the source release with the
- preferred (and most tested way) is to being to use the Ant build tool:
- * Use the Ant build tool for Java environments.
- * Use the NetBeans [678].x IDE to open ABCL as a project.
- * Bootstrap ABCL using a Common Lisp implementation. Supported
- implementations for this process: SBCL, CMUCL, OpenMCL, Allegro
- CL, LispWorks or CLISP.
- In all cases you need a Java 5 or later JDK (JDK 1.[567] have been
- tested). Just the JRE isn't enough, as you need the Java compiler
- ('javac') to compile the Java source of the ABCL implementation.
- Note that when deploying ABCL having JDK isn't a requirement for the
- installation site, just the equivalent JRE, as ABCL compiles directly
- to byte code, avoiding the need for the 'javac' compiler in deployment
- environments.
- Using Ant
- ---------
- Download a binary distribution [Ant version 1.7.1 or greater][1].
- Unpack the files somewhere convenient, ensuring that the 'ant' (or
- 'ant.bat' under Windows) executable is in your path and executable.
- [1]: http://ant.apache.org/bindownload.cgi
- Then simply executing
- unix$ ant
- or
- dos> ant.bat
- from the directory containing this README file will create an
- executable wrapper ('abcl' under UNIX, 'abcl.bat' under Windows). Use
- this wrapper to start ABCL.
- Using NetBeans
- --------------
- Obtain and install the [NetBeans IDE][2]. One should be able to open
- the ABCL directory as a project in the Netbeans application, whereupon
- the usual build, run, and debug targets as invoked in the GUI are
- available. Use the 'slime' config with a suitably linked 'swank.asd'
- in '~/.asdf-install-dir/systems/' to connect a REPL to the NetBeans
- debug process.
- [2]: http://netbeans.org/downloads/
- Building from Lisp
- ------------------
- Building from a Lisp is the most venerable and untested way of
- building ABCL. It produces a "non-standard" version of the
- distribution that doesn't share build instructions with the previous
- two methods, but it still may be of interest to those who absolutely
- don't want to know anything about Java.
- First, copy the file 'customizations.lisp.in' to 'customization.lisp',
- in the directory containing this README file, editing to suit your
- situation, paying attention to the comments in the file. The critical
- step is to have Lisp special variable '*JDK*' point to the root of the
- Java Development Kit. Underneath the directory referenced by the
- value of '*JDK*' there should be an executable Java compiler in
- 'bin/javac' ('bin/javac.exe' under Windows).
- Then, one may either use the 'build-from-lisp.sh' shell script or load
- the necessary files into your Lisp image by hand.
- ** Using the 'build-from-lisp.sh' script
- Under UNIX-like systems, you may simply invoke the
- 'build-from-lisp.sh' script as './build-from-lisp.sh
- <lisp-of-choice>', e.g.
- unix$ ./build-from-lisp.sh sbcl
- After a successful build, you may use 'abcl' ('abcl.bat' on Windows)
- to start ABCL. Note that this wrappers contain absolute paths, so
- you'll need to edit them if you move things around after the build.
- If you're developing on ABCL, you may want to use
- unix$ ./build-from-lisp.sh <implementation> --clean=nil
- to not do a full rebuild.
- In case of failure in the javac stage, you might try this:
- unix$ ./build-from-lisp.sh <implementation> --full=t --clean=t --batch=nil
- This invokes javac separately for each .java file, which avoids running
- into limitations on command line length (but is a lot slower).
- ** Building from another Lisp by hand
- There is also an ASDF definition in 'abcl.asd' for the BUILD-ABCL
- which can be used to load the necessary Lisp definitions, after which
- CL-USER> (build-abcl:build-abcl :clean t :full t)
- will build ABCL. If ASDF isn't present, simply LOAD the
- 'customizations.lisp' and 'build-abcl.lisp' files to achieve the same
- effect as loading the ASDF definition.
- BUGS
- ====
- ABCL is a conforming ANSI Common Lisp implementation. Any other
- behavior should be reported as a bug.
- ABCL now has a manual stating its conformance to the ANSI standard,
- providing a compliant and practical Common Lisp implementation.
- Because of this,
- ### Tests
- ABCL 1.3.2 currently fails 19 out of the 21708 total tests in the ANSI
- CL test suite (derived from the tests originally written for GCL).
- Maxima's test suite runs without failures.
- ABCL comes with a test suite, see the output of `ant help.test` for more
- information.
- ### Deficiencies
- The MOP implementation is incompletel untested.
- Patches to address any of the issues mentioned above will
- be gladly accepted.
- # Contact
- Please report problems to the development mailing list:
- <armedbear-devel@common-lisp.net>
- Have fun!
- # Authors
- On behalf of all ABCL development team and contributors,
- Mark Evenson
- Erik Huelsmann
- Rudolf Schlatte
- Alessio Stalla
- Ville Voutilainen
- April 2015
|