[elephant-devel] Announcing Elephant 0.9 RC1

Ian Eslick eslick at csail.mit.edu
Mon Apr 30 02:50:41 UTC 2007


Dear Elephant community,

Robert and I are pleased to announce that a release candidate for  
Elephant 0.9 is now available.  See the online announcement at http:// 
www.common-lisp.net/project/elephant/news.html for details and  
pointers to documentation and downloads.

A quick note on the switch from 0.6.x to 0.9.  With the marked  
improvement in stability and the existence of a stable and useful  
feature set, we decided to abandon the 0.6.1 release label and change  
it to 0.9.  There is a modest set of features remaining to achieve a  
1.0 release later this year. These features are recorded as tickets  
at the Trac project site. (http://trac.common-lisp.net/elephant)

We do not anticipate any functional changes prior to a formal release  
and are confident that databases created with this code base will be  
compatible with the final release.  We aim to finalize the release in  
the next 1 to 2 weeks after a period of evaluation by the community.

Features and changes since the Beta 0.6.1 announcement:

* Mapping operators
    o BTrees, BTree indicies, class index and slot/derived indices all
      have a map operation
    o Enable mapping a function over values and ranges
    o Map in both ascending and descending order
    o Collect function results into a list
    o Efficient stack allocation where appropriate
* Persistent sets
    o A lighter weight API for persistent collections
    o Provides insert, remove, find, map and list operations
    o With appropriate methods, makes one to many slots easy to  
construct, see
      tutorial and user-guide for details.
* Complete update and rewrite of the users manual
    o All new and up-to-date tutorial
    o New section containing more detailed implementation information  
for
      advanced users
    o New sections for prospective data store developers
    o Detailed installation instructions (supercedes INSTALL file)
    o A list of use case scenarios that should help developers  
understand Elephant better
    o Much work remains to clean up the manual for 1.0, but the bulk  
of the
      rewrite is done and we invite comment on what is missing or  
unclear.
* Feature tweaks
    o Drop commands for persistent collections to reclaim storage for  
reuse.
    o Expanded support for nested aggregates in serializer and  
migrate (i.e. an
      array of persistent objects will be properly migrated, whereas  
before only
      btree collections of persistent objects were properly copied).
    o Better error handling during object creation, change class  
operations, etc.
    o Better error checking during cross-store operations.
    o Persistent instances passed to print-object print their oid by  
default
      to create a recognizable signature
    o Loading directly via ele-bdb.asd and ele-clsql.asd is now  
supported as well
      as the 2-phase load
    o And many bug fixes...
* Performance enhancements
    o Option to increase cache size for BDB backend
    o Improve contention performance while mapping btrees
    o And much more...

Testing and Platforms:

Prior to tagging the CVS tree tests were run successfully on the  
following configurations.

Mac OS / Allegro / BDB -- green
Mac OS / Allegro / SQlite -- green
Mac OS / SBCL / BDB -- green
Mac OS / SBCL / SQlite -- green
Mac OS / Lispworks / BDB -- green
Mac OS / Lispworks / SQLite -- green
Mac OS / OpenMCL / BDB -- green (1 failing test -- see errata)
Linux / SBCL / BDB -- green
Linux / SBCL / SQLite -- green
Linux / SBCL / Postgresql -- green
Linux / Lispworks / BDB -- green
Linux / Lispworks / SQLite -- green
Windows / Lispworks / BDB -- green
Windows / Lispworks / SQLite -- green
Windows / Allegro / BDB -- green
Windows / Allegro / SQlite -- green

(NOTE: Several small changes to the loading process were made after  
these tests and only a subset of the platform combinations were  
retested after, but this included all OS's and all but OpenMCL.  It  
is possible that something slipped through that we will have to fix  
in the final release).

Errata:

There are only two known issues with this release:

* OpenMCL 1.0 has 1 known problem: redefinition of classes do not  
always result in indices being properly updated.  This results from a  
known problem with the OpenMCL 1.0 MOP implementation. No workaround  
is currently known, but in practice you can evaluate the defclass  
form again and manually call (ccl:finalize-inheritance <pclass>) or  
change the indexing state manually using the API. This will probably  
not get fixed in this release.

* The :deadlock-detect option for the BDB data store is not working  
in Lispworks.  This will be fixed for the formal release.


Ian Eslick and Robert Read





More information about the elephant-devel mailing list