<h3><u>Documentation for 1.0 release</u></h3>
<p>The documentation on the website is from the 0.9.1 release and may be incorrect in
some details. The mailing list since 2008 and this FAQ should supersede anything in
the documentation.</p>
<h4><u>clbuild compatability</u></h4>
<p>Elephant does not work properly under the default <tt>clbuild</tt> configuration due
to it's UFFI (not available through <tt>clbuild</tt>) dependency. We have made
attempts to port Berkeley DB to CFFI (available through <tt>clbuild</tt>) but without
success; there are subtle issues that lead to obscure bugs and the original FFI
developer who wrote that code left the project in 2003 or 2004 and no one else has yet
had the time and expertise to resolve them. The workaround (thanks to Sebastian
Tennant) is:
<ul>
<li>Edit <tt>wnpp-projects</tt> so that elephant-1.0 is pulled from darcs. Simply
add '-1.0' to elephant's existing entry in <tt>wnpp-projects</tt>.</li>
<li>Install UFFI (available from <a href="http://uffi.b9.com/download.html">
http://uffi.b9.com/download.html</a>) and ensure that the <tt>uffi.asd</tt> file
included in the download is found by ASDF before CFFI's <tt>uffi.asd</tt>, i.e.,
ensure that the systems directory containing the 'real' <tt>uffi.asd</tt> comes
before <tt>clbuild</tt>'s systems directory in <tt>asdf:*central-registry*</tt>.
</li>
</ul>
</p>
<h4><u>Library and Lisp Dependencies</u></h4>
<p>The most common active configurations of the 1.0 release branch is on
SBCL/Linux/Postmodern+BDB and ClozureCL/MacOS/BDB. Elephant is known to work on these
platforms when properly configured.</p>
<p>A patched version of Berkeley DB <strong>4.7</strong> is recommended (see below).</p>
<h4><u>64-bit Lisp and Berkeley DB</u></h4>
<p>If you are running a 64-bit lisp, Berkeley DB will need to be built accordingly.
Package managers (e.g., MacPorts or Debian's APT) tend to build/ship 32-bit versions of
Berkeley DB, in which case building a 64-bit version from source is the appropriate
solution:
<ul>
<li>Get Berkeley DB 4.7 from
<a target="_blank" href="http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz">here</a>
and apply
<a target="_blank" href="http://www.oracle.com/technology/products/berkeley-db/db/update/4.7.25/patch.4.7.25.html">
the patches</a>. (If either of the above links don't work, navigate from
<a target="_blank" href="http://www.oracle.com/technology/software/products/berkeley-db/db/index.html">
the Berkeley DB index page</a>).</li>
<li>Unpack into <tt>/usr/local/src</tt> (or wherever). Build documentation can then be found
<a target="_blank" href="file:///usr/local/src/db-4.7.25/docs/ref/build_unix/intro.html">locally</a>
as well as
<a target="_blank" href="http://www.oracle.com/technology/documentation/berkeley-db/db/programmer_reference/build_unix.html">
online</a>.</li>
<li><tt>$ cd db-4.7.25/build_unix</tt></li>
<li><tt>$ CCFLAGS="-arch x86_64" LDFLAGS="-arch x86_64" ../dist/configure</tt>
(Thanks to Mathew Emerson for the magic flags).</li>
<li><tt>$ sudo make install</tt></li>
<!--- why don't we update config.sexp? -->
<li>Finally, don't forget to create the elephant configuration
file <tt>my-config.sexp</tt> so that it refers to "4.7" and points to the
appropriate paths.</li>
</ul>
</p>