An alpha release of Elephant 0.6.1 is now available for testing.
Supported platforms:
- SBCL, Allegro, CMU, OpenMCL, Lispworks (build system is not
automated for Windows)
- CMU, OpenMCL and Lispworks have not been fully tested and may
require minor bug fixes
DOWNLOAD AND INSTALL:
The alpha release will only be available via CVS
cvs -z3 -d :pserver:anonymous:anonymous@common-
lisp.net:/project/
elephant/cvsroot checkout -r ELEPHANT-0-6-1-alpha elephant
This will put the elephant release into the directory: elephant.
Read the INSTALL, UPGRADE and UPGRADE-BDB files for further
instructions.
PURPOSE OF THE ALPHA RELEASE:
The primary developers do not have ready access to all supported
platforms and would like to ask the community to help validate the
current implementation on other platforms. We also are using the
alpha to improve up our test suite. For more details please see the
TODO file. If you have a favorite feature such as multi-threading,
64-bit, etc., please free to submit a test for the test suite.
NEW FEATURES IN 0.6.1:
Simplified build and site configuration support
- See config.sexp in root directory for site customization (no more
editing code files)
- Linux and Mac systems should automatically build libraries when
asdf is called
64-bit lisps are now supported
- 64-bit and 32-bit lisps can read and run off the same database
files (on the same machine)
Multithreading:
- Elephant should now be thread safe, including sharing a single
store-controller across threads
- Read comments in src/elephant/transactions.lisp and BDB users
should read src/db-bdb/bdb-transactions.lisp
- Improved support for mixing transactions and store-controllers
Upgrading:
- Elephant 0.6.1 can open and directly manipulate 0.6.0 databases
- Existing 0.6.0 databases can be upgraded via the 'upgrade' function
which takes
- Upgrading is required for 64-bit systems
- New serializer-independant metadata should enable future upgrades
easier
- NOTE: There may be some problems upgrading SQL databases
Berkeley DB backend:
- BDB 4.5 required (see UPGRADE-BDB)
- *auto-commit* is no longer required. All data access methods auto-
commit if there is no active transaction.
- store-controller accepts :deadlock-detect keyword (t or nil) which
will run db_deadlock as a background process to abort deadlocked threads
- optimize-storage is a new store-controller method currently
supported by BDB backend. It compacts a whole database or only a
specific BTree and returns free pages to the free list or to the file
system.
Minor features:
- Re-organization to the internal structure in this release:
- Renaming including removing defunct sleepycat naming scheme,
backend packages, etc.
- The serializer was modularized to allow future releases to
change serializer
strategies or implement custom serializers and to be able to
open legacy databases
- Remove various warnings in SBCL build, etc.
- Separated utilities into their own package and directory
- Serializer improvements
- 0.6.1 databases can be shared across lisps running on hardware
of the same endianness
(i.e. all x86 platforms or PPC/Alpha, etc)
- Simplified unicode serialization support across all platforms
- Performance improvements in multi-threading situations
- Feature :elephant-without-optimize will disable optimization
declarations simplifying debugging
- Other fixes and features documented in the TODO file
Thank you,
Ian Eslick and Robert Read
Elephant Developers