ABCL is an implementation of the full Common Lisp specification, with the exception of the implementation of the long form of DEFINE-METHOD-COMBINATION.
Unfortunately, the CLOS implementation is not accessible through a MOP (MetaObject Protocol). Any contributions in this area would be greatly appreciated, ofcourse.
One thing which is considered almost standard lisp - because all implementations deliver it - is "Gray streams". Unfortunately ABCLs version is broken [as per 05/2009]. It should be noted this is by no means the final state of affairs, though, merely a warning that one can't depend on this feature at the moment.
ABCL is distributed under the GNU General Public License with Classpath exception. This is the same license as used for JAVA SE and GNU Classpath.
Basically this means you can use ABCL from your application without the need to make your own application open source.
In general, such usage means that whenever you keep ABCL as a separate jar file, you won't have licensing problems. The combining in the Classpath exception means that you can
There is a list of currently known problems (bugs) in our bug tracker. Unfortunately, due to spamming problems, administration of bugs has been closed for anybody but common-lisp.net members.
If you found a bug which is not on the list, or you want to stress the importance of one that is, please mail our mailing list about it.
General comparisons are hard to make, the relative speeds depend on a lot of factors. For example timing outcomes of specific bits of Java may have different timings depending on the settings of the HotSpot JIT compiler (if the tests are run on Sun).
Some statements can be made in general though. Due to the fact that ABCL has been implemented in Java, it inherits some of the aspects of Java itself as well as the fact that it can't directly manipulate CPU content. Implementations such as SBCL and Closure CL can do that and take that to their advantage: for example in SBCL a boxed fixnum is a direct register value, while in ABCL it's encapsulated in an object.
On the other hand, ABCL - like SBCL - supports unboxed fixnums. ABCL's fixnums support the full 32 bit range of integer values, while SBCL due to its boxing strategy can only use 29 bit integers (on 32bit platforms).
Given ABCL's age - a young project by Lisp standards - there is also plenty of room for improvement in the area of execution speed and optimization. The project welcomes initiatives to improve performance.
The project recognises there are several dimensions to quality:
The plan is to add to the list above software from Edi Weitz, who wrote some great libraries.
The first item is being measured by running the ANSI test suite compliance tests. The second item is measured by compiling and running the test suite in the Maxima application. Additionally, compilation of AP5 is used to improve this measure too.
ABCL 0.23.0 fails 31 out of 21702 tests in the ANSI test suite in interpreted and compiled modes, a constant number over the past releases. Most failures relate to pretty printing.
As a measure of 'improvement achieved', the development team refers to the number of failing tests in the Maxima test suite too. ABCL 0.23.0 is able to run the test suite without failures, coming from 'only' ca 75 failing tests at the time of 0.15.0, and even 1400 failures around October 2008.
If you want to build the latest (unstable) ABCL code, you can check out through svn://common-lisp.net/project/armedbear/svn/trunk/abcl.
Documentation on ABCL can be found in several places, depending on the kind of documentation you're looking for.