source: public_html/faq.shtml @ 13483

Last change on this file since 13483 was 13483, checked in by Mark Evenson, 10 years ago

FAQ improvements.

Explain how to avoid recompilation.

Remove claim that Gray streams are broken due to improvements made to
get Huchentoot working.

Rephrase the issue reporting procedure, note #abcl as a resource.

State goal for Quicklisp compatiblity.

Update failing test number for abcl-0.26.1.

Mention HTTP SVN repository.

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id
File size: 8.5 KB
Line 
1<?xml version="1.0"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5<head>
6  <title>FAQ: ABCL - Common Lisp on the JVM</title>
7  <link rel="stylesheet" type="text/css" href="style.css" />
8  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
9</head>
10
11<body>
12 <div class="header">
13   <h1>FAQ: ABCL - Common Lisp on the JVM</h1>
14 </div>
15
16<!--#include virtual="left-menu" -->
17
18<div style="margin-left:auto;margin-right:auto;width:20cm">
19<h1>Index</h1>
20<ol id="toc">
21  <li><a href="#general">General</a>
22  <ol>
23    <li><a href="#what">What is ABCL?</a></li>
24    <li><a href="#license">What license is used for ABCL?</a></li>
25    <li><a href="#bug-reporting">How/Where should I report bugs?</a></li>
26    <li><a href="#speed">Is ABCL faster or slower than implementation XYZ?</a></li>
27    <li><a href="#qa">What is the quality of the implementation? How can you tell?</a></li>
28    <li><a href="#repository">Where is ABCL's source code repository?</a></li>
29    <li><a href="#documentation">Where is ABCL's documentation?</a></li>
30  </ol>
31  </li> <!-- general -->
32
33  <li><a href="#building">Building</a>
34  <ol>
35    <li><a href="#avoiding-recompilation">The Ant build process seems to recompile from scratch each time.  How do I avoid this?</a></li>
36  </ol>
37  </li> 
38
39</ol>
40
41
42<div class="h2" title="general" id="general">
43<h2>General</h2>
44
45<div class="h3" title="what" id="what">
46<h3>What is ABCL?</h3>
47<p>ABCL is an implementation of the full Common Lisp specification, with
48the exception of the implementation of the long form of
49DEFINE-METHOD-COMBINATION.</p>
50
51<p>
52Unfortunately, the CLOS implementation is not fully completely through
53a MOP (MetaObject Protocol). Perhaps roughly a third of the
54functionality defined by <a
55href="http://www.lisp.org/mop/index.html">AMOP</a> is present.  Any
56contributions in this area would be greatly appreciated, of course.
57</p>
58
59</div>
60
61
62<div class="h3" title="license" id="license">
63<h3>What license is used for ABCL?</h3>
64
65<p>ABCL is distributed under the <a href="http://www.gnu.org/copyleft/gpl.html"
66>GNU General Public License</a> with <a
67href="http://www.gnu.org/software/classpath/license.html">Classpath
68exception</a>. This is the same license as used for JAVA SE and GNU Classpath.</p>
69
70<p>Basically this means you can use ABCL from your application without the
71need to make your own application open source.</p>
72
73<p>
74In general, such usage means that whenever you keep ABCL as a separate
75jar file, you won't have licensing problems. The combining in the
76Classpath exception means that you can
77</p>
78<ol>
79<li>Extend ABCL java classes in your program</li>
80<li>Use ABCL java classes in your program</li>
81<li>Invoke ABCL lisp functions in your program</li>
82</ol>
83<p>
84without having to worry about the licensing. You do have to
85distribute the source code of ABCL (including modifications)
86if you distribute ABCL, but otherwise the license of ABCL is not viral.
87</p>
88
89</div>
90
91<div class="h3" title="bug-reporting" id="bug-reporting">
92<h3>How/Where should I report bugs?</h3>
93
94<p>
95
96The current state of issues can be found in the <a
97href="http://trac.common-lisp.net/armedbear/report/1">ABCL issue
98tracker</a>.  Unfortunately, due to spamming problems, administration
99of bugs has been closed for anybody but common-lisp.net members.</p>
100
101<p>
102
103To report a bug, please mail a description of the problem, the version
104of ABCL you are using, and if possible a set of steps to reproduce the
105problem to the <a
106href="http://common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel">armedbear-devel
107mailing list</a>.  We try to respond within a day at most to messages.
108A convenient way to browse the mailing list archives can be found by
109<a href="http://news.gmane.org/gmane.lisp.armedbear.devel">the gmane
110loom interface to the NNTP group gmane.lisp.armedbear.devel</a>.
111</p>
112
113<p>
114Developers can also usually be found on the <a
115href="http://webchat.freenode.net/?randomnick=1&channels=abcl&prompt=1&uio=d4">#abcl
116irc channel</a>.
117</p>
118
119<div class="h3" title="speed" id="speed">
120<h3>Is ABCL faster or slower than implementation XYZ?</h3>
121
122<p>General comparisons are hard to make, the relative speeds depend
123on a lot of factors. For example timing outcomes of specific bits
124of Java may have different timings depending on the settings of
125the HotSpot JIT compiler (if the tests are run on Sun).</p>
126
127<p>Some statements can be made in general though. Due to the fact that
128ABCL has been implemented in Java, it inherits some of the aspects of
129Java itself as well as the fact that it can't directly manipulate
130CPU content. Implementations such as SBCL and Closure CL can do that and
131take that to their advantage: for example in SBCL a boxed fixnum is a
132direct register value, while in ABCL it's encapsulated in an object.</p>
133
134<p>On the other hand, ABCL - like SBCL - supports unboxed fixnums. ABCL's
135fixnums support the full 32 bit range of integer values, while SBCL due
136to its boxing strategy can only use 29 bit integers (on 32bit platforms).</p>
137
138<p>Given ABCL's age - a young project by Lisp standards - there is also
139plenty of room for improvement in the area of execution speed and optimization.
140The project welcomes initiatives to improve performance.</p>
141
142</div>
143
144
145<div class="h3" title="qa" id="qa">
146<h3>What is the quality of the implementation? How can you tell?</h3>
147
148<p>The project recognises there are several dimensions to quality:</p>
149<ol>
150<li> The level of compliance to the standard </li>
151<li> The level of 'useability': whether (or not) the application is able
152  to run existing Lisp code</li>
153</ol>
154
155<p>
156The plan is to ensure that ABCL runs with the software provided by
157<a href="http://www.quicklisp.org/">Quicklisp</a>.  For many packages available from Quicklisp,
158this is already the case.
159</p>
160
161<p>The first item is being measured by running the ANSI test suite compliance
162  tests. The second item is measured by compiling and running the test suite
163  in the <a href="http://maxima.sourceforge.net/">Maxima application</a>.
164  Additionally, compilation of <a href="http://ap5.com/">AP5</a> is used to
165  improve this measure too.</p>
166
167<p>ABCL 0.26.1 fails roughly 20 out of 21702 tests in the ANSI test
168suite in interpreted and compiled modes, a constant number over the
169past releases.  Most failures relate to pretty printing.</p>
170
171<p>As a measure of 'improvement achieved', the development team refers
172  to the number of failing tests in the Maxima test suite too.
173  ABCL 0.23.0 is able to run the test suite without failures, coming from
174  'only' ca 75 failing tests at the time of 0.15.0, and even 1400 failures
175  around October 2008.</p>
176
177</div>
178
179<div class="h3" title="repository" id="repository">
180<h3>Where is ABCL's source code repository?</h3>
181
182<p>If you want to build the latest (unstable) ABCL code,
183you can check out through
184svn://common-lisp.net/project/armedbear/svn/trunk/abcl.</p>
185
186<p>
187This repository is also exported read-only via HTTP at
188<a href="http://svn.common-lisp.net/armedbear/trunk/abcl">http://svn.common-lisp.net/armedbear/trunk/abcl</a>
189</p>
190
191
192</div>
193
194<div class="h3" title="documentation" id="documentation">
195<h3>Where is ABCL's documentation?</h3>
196
197<p>Documentation on ABCL can be found in several places, depending on the
198  kind of documentation you're looking for.</p>
199
200<ol>
201  <li>Our <a href="http://trac.common-lisp.net/armedbear/wiki">wiki</a></li>
202  <li>The <a href="http://trac.common-lisp.net/armedbear/browser">source
203    code (JavaDoc and general comments)</a></li>
204  <li>Specific <a
205href="http://trac.common-lisp.net/armedbear/browser/trunk/abcl/examples">examples</a></li>
206</ol>
207
208</div>
209</div>
210
211<div class="h2" title="Building" id="building">
212<h2>Building</h2>
213
214<div class="h3" title="Avoiding recompilation" id="avoiding-recompilation">
215<h3>The Ant build process seems to recompile from scratch each time.  How do I avoid this?</h3>
216
217<p>
218If the JVM system property <code>abcl.build.incremental</code> is set,
219the Ant build process will attempt to build ABCL incrementally
220by not removing any intermediate results.  The easiest way to enable
221this property is to copy the 'abcl.properties.in' file to
222'abcl.properties', then uncomment the line referencing the setting of
223the <code>abcl.build.incremental</code> property.
224</p>
225
226</div>
227</div>
228</div>
229
230<div style="float:left;width:100%">
231 <hr />
232 <p>Back to <a href="http://common-lisp.net/">Common-lisp.net</a>.</p>
233
234 <div class="check">
235   <a href="http://validator.w3.org/check/referer">Valid XHTML 1.0 Strict</a>
236 </div>
237<div style="float:right;font-size:10px;font-family:monospace">$Id: faq.shtml 13483 2011-08-13 06:46:15Z mevenson $</div>
238</div>
239</div>
240</body>
241</html>
Note: See TracBrowser for help on using the repository browser.