Fri Jun 20 10:56:30 EDT 2008  gtarcea@umich.edu
  * doc-patch-1

Sun Jun 29 11:59:30 EDT 2008  gtarcea@umich.edu
  * doc-update-june29v1

New patches:

[doc-patch-1
gtarcea@umich.edu**20080620145630] {
hunk ./doc/installation.texinfo 17
+* Multiple Versions:: Running multiple versions of Elephant
hunk ./doc/installation.texinfo 254
+The Berkeley DB interface includes a number of defaults that are configured
+in the my-config.sexp file. Some of these defaults can also be overridden
+when opening the store. Below is a list of the BDB related defaults you
+will find in your my-config.sexp along with a short explanation.
+@itemize
+@item @code{:berkeley-db-map-degree2} - Improve the efficiency of cursor traversals
+  in the various mapping functions.  Defaults to true, meaning a value
+you just read while mapping may change before the traversal is done.
+So if you operate only on the current cursor location, you are
+guaranteed that it's value is stable.
+@item @code{:berkeley-db-cachesize} - Change the size of the buffer cache
+for Berkeley DB to match your working set.  Default is 10MB, or about
+twenty thousand indexed class objects, or 50k standard persistent
+objects.  You can save memory by reducing this value.
+@item @code{:berkeley-db-deadlock} - This is the path to the BDB deadlock utility
+(db_deadlock). For more information on using this utility please consult the BDB
+documentation.
+@item @code{:berkeley-db-max-objects} - Configures the maximum number of objects that
+can be locked at any one time (see set_lk_max_objects in the BDB documentation).
+@item @code{:berkeley-db-max-locks} - Configures the number of locks that can
+be allocated at any given time in the lock table (see set_lk_max_locks in the BDB
+documentation). This parameter along with the preceding parameter will control how
+many transactions you can group together. For optimal performance you will need to
+configure this parameter and the berkeley-db-max-objects parameter to ensure your
+application doesn't run out of locks.
+@end itemize
+
hunk ./doc/installation.texinfo 289
-((:berkeley-db-include-dir . "/usr/local/BerkeleyDB.4.5/include")
- (:berkeley-db-lib-dir . "/usr/local/BerkeleyDB.4.5/lib")
- (:berkeley-db-lib . "/usr/local/BerkeleyDB.4.5/lib/libdb.so")
+((:compiler . :gcc)
+ (:berkeley-db-version . "4.5")
+ (:berkeley-db-include-dir . "/usr/local/BerkeleyDB.4.5/include/")
+ (:berkeley-db-lib-dir . "/usr/local/BerkeleyDB.4.5/lib/")
+ (:berkeley-db-lib . "/usr/local/BerkeleyDB.4.5/lib/libdb-4.5.so")
hunk ./doc/installation.texinfo 295
- (:pthread-lib . nil)
- (:clsql-lib . "/usr/local/share/common-lisp/")
- (:compiler . :gcc))
+ (:berkeley-db-cachesize . 20971520)
+ (:berkeley-db-max-locks . 2000)
+ (:berkeley-db-max-objects . 2000)
+ (:berkeley-db-map-degree2 . t)
+ (:clsql-lib-paths . nil)
+ (:prebuilt-libraries . nil))
hunk ./doc/installation.texinfo 464
+@node Multiple Versions
+@comment node-name, next, previous, up
+@section Using Multiple Versions of Elephant
+
+New version of Elephant aren't always backward compatible with older versions.
+Migrating to a newer release may require moving your data over to a new format
+data store. You can easily run multiple versions of Elephant in one environment.
+This allows you to keep your current production system while simultaneously
+testing out the newest release of Elephant.
+
+While not an Elephant feature, ASDF allows you to control which environment
+is loaded. Changing the version of Elephant that is loaded simply requires
+telling ASDF to load Elephant from a different path. You can do this manually
+in your code, or in a startup file for your Lisp environment. For example
+if you are using SBCL you can modify the .sbclrc file to load different
+versions of Elephant.
+
+The following example demonstrates the ASDF commands needed to switch
+Elephant load paths:
+
+@lisp
+(setf asdf:*central-registry*
+   '(*default-pathname-defaults*
+     #p"/usr/local/new-elephant-version"))
+@end lisp
+
+Changing the ASDF @code{*central-registry*} allows you to choose
+the version of Elephant to load and use in your environment.
+
hunk ./doc/scenarios.texinfo 112
-(defmethod (setf system-state) :after (state (sys system-state))
+(defmethod (setf system-state) :after (state (sys system-object))
hunk ./doc/scenarios.texinfo 115
-(defmethod initialize-instance :after ((sys system-state) &rest rest)
+(defmethod initialize-instance :after ((sys system-object) &rest rest)
hunk ./doc/user-guide.texinfo 648
+@subsection Using Cached Slots
+Fill in information here
+
+@subsection Using Indexed Slots
+Fill in information here
+
+@subsection Using Derived Indexed Slots
+Was this deprecated?
+
+@subsection Using Set Valed Slots
+Fill in information here
+
+@subsection Using Association Slots
+Assocation slots allow you to create relationships between objects in your system.
+In the following set of examples two classes are created, a 'job' class and a
+'person' class. These classes are related in that each person can only be associated
+with one job, but a job might have multiple people associated with it. To capture
+this relationship in Elephant you can use Association slots.
+
+@lisp
+(defpclass job()
+ ((title :initarg :title :accessor title-of :index t)
+  (company :initarg :company :accessor company-of :index t)
+  (people :accessor job-holders :associate (person job))))
+@end lisp
+
+The job class has a virtual slot people. This virtual slot is associated with objects
+of class 'person. In this case instances 'person are associated with this instance of 'job
+where the 'person instance references the 'job in the 'person instances 'job slot.
+
+To see this more clearly here is the definition of the 'person class.
+
+@lisp
+(defpclass person()
+ ((name :initarg :name :accessor name-of :index t)
+  (job :initarg :job :accessor job-of :associate job)))
+@end lisp
+
+Here providing the @code{:associate job} key informs the 'person class that the
+slot 'job contains instances of class 'job and to maintain an association
+to 'job instances. Notice how the @code{:associate} key was specified differently
+between the 'job class and the 'person class.
+
+If you want to create many-to-many relationships between 'job and 'person then
+you would define the classes as follows:
+@lisp
+(defpclass job()
+ ((title :initarg :title :accessor title-of :index t)
+  (company :initarg :company :accessor company-of :index t)
+  (people :accessor job-holders :associate (person job) :many-to-many t)))
+
+(defpclass person()
+ ((name :initarg :name :accessor name-of :index t)
+  (jobs :accessor jobs-of :associate (job people) :many-to-many t))
+@end lisp
+
+You can add and access elements using the normal Lisp/CLOS accessors, eg
+@lisp
+(setf (jobs-of joe) janitor)
+(job-holders janitor) ; => joe
+@end lisp
+
hunk ./doc/user-guide.texinfo 1546
+@item @strong{@code{:cache-size}} tells Berkeley DB what size of cache to use. This overrides
+the default value configured in my-config.sexp file (@code{:berkeley-db-cachesize}).
+The cache size will impact your applications performance - the bigger the cache the smaller
+the amount of disk I/O.
+@item @strong{@code{:max-locks}} tells Berkeley DB the maximum number of locks to allocate. 
+This overrides the default value in my-config.sexp (@code{:berkeley-db-max-locks}).
+@item @strong{@code{:max-objects}} tells Berkeley DB the maximum number of objects that can
+be locked. This overrides teh default value configured the my-config.sexp file (@code{:berkeley-db-max-objects}).
hunk ./doc/user-guide.texinfo 1556
+You can specify these parameters directly in a call to open-store. For example:
+@lisp
+(open-store '(:BDB "/tmp/tdb") :max-locks 5000 :max-objects 5000)
+@end lisp
+
+The above code overrides the defaults configured in my-config.sexp by setting both
+max-locks and max-objects to 5000.
+
hunk ./doc/user-guide.texinfo 1645
+@item @code{:berkeley-db-max-locks} - Configures the number of locks the
+system supports. The default is 2000.
+@item @code{:berkeley-db-max-objects} - Configures the maximum number of objects
+that can be simultaneously locked. The default is 2000. This parameter and the
+one above it control how large your transactions can be.
hunk ./doc/user-guide.texinfo 1652
+For additional information on configuring Berkeley DB please refer to the 
+Berkeley DB documentation. Berkeley DB has a number of parameters that can be 
+set. Elephant supports setting the most commonly used BDB parameters. See the 
+Berkeley DB documentation on DB_CONFIG for additional parameters. The DB_CONFIG 
+file will let you override the Elephant settings, and to gain access to other 
+BDB performance parameters. Using DB_CONFIG is beyond the scope of this 
+documentation and is not required by most applications.
+
}

[doc-update-june29v1
gtarcea@umich.edu**20080629155930] {
hunk ./doc/user-guide.texinfo 648
-@subsection Using Cached Slots
-Fill in information here
-
hunk ./doc/user-guide.texinfo 652
-Was this deprecated?
-
-@subsection Using Set Valed Slots
hunk ./doc/user-guide.texinfo 654
+@subsection Using Set Valued Slots
+Set valued slots allow you to create slots that hold persistent collections
+as slot values. These slots provide a simpler interface to using PSETs 
+(see the section titled 'Using PSets'). Because Set Valued slots integrate directly into the slot 
+handling mechanism used in Elephant it is expected that most application 
+developers will use these slots rather than using PSETs.
+
+The following example shows how to use set valued slots.
+
+@lisp 
+(defpclass my-set ()
+  ((set-slot :accessor set-slot :initform nil :set-valued t)))
+@end lisp
+
+The above defines a persistent class with one slot, set-slot. This slot is
+a Set Valued slot. All items that are added to this slot will automatically
+be persisted.
+
+@lisp
+CL-USER> (setf myset (make-instance 'my-set))
+CL-USER> (set-insert 'a myset 'slot-set)
+CL-USER> (setf (set-slot myset) 'b)
+@end lisp
+
+In the above example we create an instance of the my-set class and add 'a and 'b
+to its slot set. The example shows two different ways to add items to the slot. The
+first command uses @code{set-insert}. The second example uses the @code{setf set-slot}
+accessor.
+
+You can list the members of the set:
+
+@lisp
+CL-USER> (set-list myset 'set-slot)
+(B A)
+@end lisp
+
+In the example above we didn't use the @code{set-slot} accessor. To see why
+look at the example below:
+@lisp
+CL-USER> (set-slot myset)
+#<DEFAULT-SLOT-SET oid:205>
+@end lisp
+
+The @code{set-slot} accessor returns the object in the slot, not the set
+of items added into the set.
+
+For simple elements Elephant will keep track of the set items and won't
+add duplicates. Continuing the example above:
+
+@lisp
+CL-USER> (set-insert 'a myset 'slot-set)
+CL-USER> (set-list myset 'set-slot)
+(B A)
+@end lisp
+
+Items can easily be removed from the using @code{set-remove}.
+
+@lisp
+CL-USER> (set-remove 'a myset 'set-slot)
+CL-USER> (set-list myset 'set-slot)
+(B)
+@end lisp
+
+If the items in your set are composed of more complex data structures
+you will need to keep track of the items yourself if you need the items
+in the set to reflect changes you make to the items. Below is a more 
+complicated example using @code{defstruct}.
+
+@lisp
+CL-USER> (defstruct my-struct a-slot b-slot)
+CL-USER> (setf s1 (make-my-struct :a-slot 1 :b-slot 1))
+CL-USER> (set-insert s1 myset 'set-slot)
+CL-USER> (setf (set-slot myset) s1)
+CL-USER> (set-list myset 'set-slot)
+(#S(MY-STRUCT :A-SLOT 1 :B-SLOT 1))
+@end lisp
+
+In the above example we attempted to add s1 to the set twice, but there
+is only one instance of it in the set. The example above uses both the
+@code{set-insert} and @code{setf slot-set} accessor functions.
+
+However, if a change is made to s1 and then s1 is added in to the set
+Elephant will treat this as a new element.
+
+@lisp
+CL-USER> (setf (my-struct-a-slot s1) 2)
+CL-USER> (set-insert s1 myset 'set-slot)
+CL-USER> (set-list myset 'set-slot)
+(#S(MY-STRUCT :A-SLOT 3 :B-SLOT 1) #S(MY-STRUCT :A-SLOT 2 :B-SLOT 1))
+@end lisp
+
+Set valued slots greatly simplify the handling of persistent collections.
+These persistent collections do not need to contain the same type of data.
+In the examples above we could have mixed in the @code{(defstruct)} items
+and the fundamental values such as 'A and 'B. In that case your set would
+have looked like:
+
+@lisp
+CL-USER> (ele:set-list myset 'set-slot)
+(#S(MY-STRUCT :A-SLOT 3 :B-SLOT 1) #S(MY-STRUCT :A-SLOT 2 :B-SLOT 1) B A)
+@end lisp
+
}

Context:

[Fixed a set of typos that were generating warnings; catch errors when a schema was already uncached due to new shutdown protocol
eslick@common-lisp.net**20080628001232] 
[Adding sql-dup-btree support
read@robertlread.net**20080621213302] 
[Fix set slot init bug; remove old pset when assigning pset to set slot
eslick@common-lisp.net**20080619222436] 
[set-valued-slot update; add macros
eslick@common-lisp.net**20080619185546] 
[Export association functions, some better error messages
eslick@common-lisp.net**20080618204731] 
[Schema evolution bug fix
eslick@common-lisp.net**20080618013744
 
 Ensure that all cached controller schemas in class objects are reclaimed at close-store time 
 
] 
[Association patches
eslick@common-lisp.net**20080618013235
 
 Added initarg support for :ref type association slots
 Fixed setf slot-value bug where old values were not overridden on M:1 slots
 Significant bug fixing for adding/removing association pairs
 Explicit association API addition
 Allow association indices to be used by get-instances via map-inverted-index
 
 Misc:
 Fix a test that fails on postmodern due to assumptions about dup-btree value ordering
 
 
] 
[Fix spurious conflict comment
eslick@common-lisp.net**20080615203903] 
[CL-SQL changes unrecorded in main repository
read@robertlread.net*-20080517232122] 
[one more race condition in serializer2
alex.mizrahi@gmail.com**20080604142449] 
[Fix MAKE-LOCAL-NAME so it produces keywords instead of randomly package-scoped reader-interned symbols.
polzer@gnu.org**20080430121024] 
[race condition in memutil
alex.mizrahi@gmail.com**20080530141323] 
[postmodern: new stuff support
alex.mizrahi@gmail.com**20080604114551] 
[postmodern: dup-btree
alex.mizrahi@gmail.com**20080604114415] 
[Fix btree/dup-btree as nil creation problem
eslick@common-lisp.net**20080602200807] 
[Changed drop-pobject API to drop-instances.  Removed old files.
eslick@common-lisp.net**20080601233329] 
[Fix config restart typo, add type specifiers to collection test, remove metaclass specification from dup-btree in bdb-collections
eslick@common-lisp.net**20080601212641] 
[Initial support for BDB 4.7 / some allegro unicode performance sketches / a few optimization related tweaks
eslick@common-lisp.net**20080601111117] 
[Add restart to create a default my-config.sexp
eslick@common-lisp.net**20080601111042] 
[Alex's serializer patch; unicode performance improvements; serializer hash optimization
eslick@common-lisp.net**20080528124832] 
[Some changes to rucksack experimental backend
eslick@common-lisp.net**20080517161742] 
[finalize-inheritance-sbcl-fix
gtarcea@umich.edu**20080518211854
 sbcl 1.0.16 fails when doing mop introspection on some classes, with the error
 The slot SB-PCL::%CLASS-PRECEDENCE-LIST is unbound in the object #<STANDARD-CLASS ELEPHANT:SLOT-SET>
 
 The function texinfo-inferred-body was modified to include a call to finalize-inheritance.
] 
[CL-SQL changes unrecorded in main repository
read@robertlread.net**20080517232122] 
[Object level management of cached slots (green on Allegro/BDB)
eslick@common-lisp.net**20080517210939] 
[Remove type check in serializer; fix typo in BDB patch
eslick@common-lisp.net**20080517005738] 
[Fix for non-acl lisps on class creation checkpoint
eslick@common-lisp.net**20080516200249] 
[Class creation from schemas snapshot
eslick@common-lisp.net**20080516194129] 
[Fixup indexed-slots.lisp
read@robertlread.net**20080516194030] 
[Issue with repository sync
eslick@common-lisp.net**20080516192306] 
[Added per-store options for locks & cache sizes
eslick@common-lisp.net**20080516191747] 
[Add max lock configuration to BDB
eslick@common-lisp.net**20080516185155] 
[cleaned up merge junk; some query sketching; make indexed-p universal
eslick@common-lisp.net**20080514214227] 
[open controller for bdb accepts a pathname spec
Ryszard Szopa <ryszard.szopa@gmail.com>*-20080513133356] 
[open controller for bdb accepts a pathname spec
Ryszard Szopa <ryszard.szopa@gmail.com>**20080513133356] 
[elephant-db-path-test
Ryszard Szopa <ryszard.szopa@gmail.com>**20080513213222] 
[MakingCLBUILDReady
read at robertlread.net**20080514043740
 This is an attempt to make Elephant ready for CLBUILD
] 
[MakingCLBuildReady
read at robertlread.net**20080514043654] 
[MakingElephantCLBUILDReady
read at robertlread.net*-20080514031922] 
[SubmittedPatchForABug
read at robertlread.net**20080514032031
 Sorry, I forgot who submitted this bug fix.
] 
[MakingElephantCLBUILDReady
read at robertlread.net**20080514031922] 
[Fixed bug in persistent class verification, abstracted verification
eslick@common-lisp.net**20080513152913] 
[Pathname argument to db-bdb open-controller patch
eslick@common-lisp.net**20080513135855] 
[Add *default-retries* to elephant transaction model; wrap delete pobj in txn
eslick@common-lisp.net**20080513110539] 
[Fix map-btree failure to check iif first value in a range map is out of range
eslick@common-lisp.net**20080512182955] 
[Default to non-inherited index, added :inherit slot option - push :elephant onto *featuress**
eslick@common-lisp.net**20080510224745] 
[cl-sql implementing Ian's major features
read at robertlread.net**20080504230520
 Although this is all green, it is certainly not perfect.
 I am checking in it in hopes it will help the postmodern
 guys, though in hindsight I doubt it will, much. I'm also
 starting to think the cl-sql backend should be deprecated.
 
] 
[Move dependencies on bordeaux threads to elephant-tests
eslick@common-lisp.net**20080503140450] 
[Code reorg, warning remove, bug fix in change-class
eslick@common-lisp.net**20080503140234] 
[Add support for bulk reads; fix a few small bugs; transient to persistent change cclass support
eslick@common-lisp.net**20080503122110] 
[un-disabled tests for SBCL
alex.mizrahi@gmail.com**20080410070805] 
[db-postmodern: sync-cache type handling fix
alex.mizrahi@gmail.com**20080326222018] 
[test concurrency extended
alex.mizrahi@gmail.com**20080326203147] 
[transaction restart support plus extended features
alex.mizrahi@gmail.com**20080326203005] 
[db-postmodern: transaction retry handling, serializable isolation
alex.mizrahi@gmail.com**20080318155444] 
[db-postmodern: small sync cache fix
alex.mizrahi@gmail.com**20080318155129
 cache was discarded in empty txn
] 
[Disabling threading tests for SBCL
Robert L. Read**20080410015544] 
[Chun Tian's conditional for lispworks slot-definition-allocation
sross@common-lisp.net**20080416161010] 
[spelling errors
Robert L. Read**20080408140049] 
[DB-POSTMODERN: remove DBPM-ERROR; don't attempt to remove an already prepared statement (pointless since the txn is aborted at the time); defer all errors to txn handler (but warn and print the offending statement)
polzer@gnu.org**20080317171254] 
[Changed erroneous statement in tutorial that index comparison uses EQUALP.
polzer@gnu.org**20080226123252] 
[DB-POSTMODERN: support transaction retries; handle deadlock; add savepoint utility functions; add warnings to help debugging problematic conditions.
polzer@gnu.org**20080306124528] 
[added BORDEAUX-THREADS dependency and changed PM controller to use it instead of SB-THREAD stuff.
polzer@gnu.org**20080306124512] 
[added concurrency test cases.
polzer@gnu.org**20080306124407] 
[DB-POSTMODERN: reap old connections when a new one is requested.
polzer@gnu.org**20080227150322] 
[Remove old files
eslick@common-lisp.net**20080325150618] 
[add slot-unbound test
eslick@common-lisp.net**20080325120520] 
[Add schema-evolution.lisp
eslick@common-lisp.net**20080325025517] 
[SBCL compatibility fixes; migration fixes; small bug fixes
eslick@common-lisp.net**20080323143427] 
[Derived index slots; support migrate/upgrade; fix schema evolution bugs
eslick@common-lisp.net**20080322205953] 
[Better explicit vs. slot association test
eslick@common-lisp.net**20080321104648] 
[Fix bug in map oids
eslick@common-lisp.net**20080321104611] 
[Add to load system
eslick@common-lisp.net**20080320181119] 
[Add association test file; fix association bugs
eslick@common-lisp.net**20080320180929] 
[API proposal for association slots
eslick@common-lisp.net**20080320022141] 
[Implement associations; fix some indexing-related bugs; 2 failing tests left
eslick@common-lisp.net**20080320010955] 
[Fix metaprotocol errors, some code reorg and fixing the change-class test to match MOP spec
eslick@common-lisp.net**20080318041749] 
[Finish and add simple query interpreter
eslick@common-lisp.net**20080311155419] 
[Patch serializer for unbound slot error for now; add :index as valid initarg
eslick@common-lisp.net**20080311155156] 
[Fixed a myriad of problems in schema evolution
eslick@common-lisp.net**20080311050915
 
 Schema chains are properly maintained
 Schema ids properly updated in instance-table
 Indexed slots populated on upgrade (indexes are incoherent if lazy updating!)
 map-class adjusted to work with and upgrade prior instances
 ensure proper initialization of values
 speed up transactions for persistent instance creation 
 
] 
[Massive upgrade of new schema-evolution functionality; bug fixes
eslick@common-lisp.net**20080311034317
 
 Features:
 Partially working support for change-class, redefine-class, update-instance-*
 Support for store synchronization and evolution of db instances and storage
 Lots of little integration issues and refactoring
 
 Bugs:
 Added unbound slot edits
 Fixed little bugs hiding in serializer, btree implementation, btree mapping functions, 
 Fixed some little bugs hiding in bdb
 Added tests for dup-btrees and to test for btree bugs from before
 
 
] 
[More efficient get-con functionality; ensure finalized class when registering a schema
eslick@common-lisp.net**20080307070348] 
[Various fixes to indexing, set-valued slots, etc and fixes to indexing tests
eslick@common-lisp.net**20080307061330] 
[Implement cached slots; basic indexed slots; some work on indexed tests
eslick@common-lisp.net**20080307053429] 
[Fix serializer bugs for lexical eq; bdb default cid bug
eslick@common-lisp.net**20080307053109] 
[Fix bugs related to indexed classes; drop-instances
eslick@common-lisp.net**20080306213952] 
[Fix delete in dup btree
eslick@common-lisp.net**20080306191427] 
[Fix bdb-controller initialization for indexed btrees
eslick@common-lisp.net**20080306185601] 
[Association edits, dup btree fixes, remove test harness stuff
eslick@common-lisp.net**20080306160214] 
[Fix BDB comparison fn and add key vs value comparisons
eslick@common-lisp.net**20080306155932] 
[Added set-valued slots, fixed bug in map-class, handle set-valued slot inits
eslick@common-lisp.net**20080305212109] 
[Initial reorg to support 0.9.2 feature set; some working features
eslick@common-lisp.net**20080304223501
 
 Hierarchical class indexing
 Class schemas
 Duplicate btrees
 Lazy deserialization support
 
 
] 
[Check for unbound slot; potential fix for a compiler error
eslick@common-lisp.net**20080226195839] 
[Fix test dependence for ff-index-test
eslick@common-lisp.net**20080226151654] 
[Improve berkeley DB version agnostic code
eslick@common-lisp.net**20080226151453
 
 Added an error message to configure my-config.sexp and made sure we load
 it directly from my-config.sexp so that we get it right at load time.
 Prior patch didn't override default until after load time.
 
] 
[Support for multiple BDB versions
eslick@common-lisp.net**20080226150114] 
[db-bdb updated to BerkeleyDB 4.6
kazennikov@gmail.com**20071230140731
 Changed only BDB constants as upgrade 4.5 -> 4.6 they were
 changed.
 A kind of hack perhaps. But it works. The testing was not excessive,
 but it works well for my project.
] 
[add test for STRING types (as opposed to SIMPLE-STRING types)
polzer@gnu.org**20080222081256] 
[Refactor UTF{16,32}LE serializers.
polzer@gnu.org**20080222084824] 
[Enable multiple process connections to a BDB data-store via DB_REGISTER option
eslick@common-lisp.net**20080225222713] 
[Enable multi-store indexed classes
eslick@common-lisp.net**20080223184504] 
[Change semantics of transaction :retry-count from tries to retries
eslick@common-lisp.net**20080221031015] 
[Minor edits, fixed a comment, fixed a db-lisp out of date error
eslick@common-lisp.net**20080221024151] 
[Alex's patch for 8.3
read@robertlread.net**20080217223512
 I entered here the patch from Alex of 2088/02/16
 which apparently makes this compatible with Postgres 8.3.
 It is green for me on all tests on Posgres 8.1, so 
 I am committing it.
] 
[mtype change in dcm
read@robertlread.net**20080215135054] 
[moved cache-instance into initial-persistent-setup
alex.mizrahi@gmail.com**20080120142436
 because it was bypassed by recreate-instance otherwise
] 
[accessor name in tests change
alex.mizrahi@gmail.com**20080116222405] 
[db-postmodern: pm-btree initialization fixed
alex.mizrahi@gmail.com**20080116222316] 
[recreate-instance stuff improved
alex.mizrahi@gmail.com**20080116220138] 
[db-postmodern: removed specialized map-index
alex.mizrahi@gmail.com**20080107134012
 because pure cursor version works fine and is more robust
] 
[cursor-duplicate removed from db-postmodern
Henrik Hjelte<henrik@evahjelte.com>*-20071124163701] 
[db-postmodern fix map-index optimization bug
Henrik Hjelte <henrik.hjelte@stix.to>**20080104151644] 
[db-postmodern: cursors re-implemented
alex.mizrahi@gmail.com**20071215191805] 
[controller-doc-improvement
read@robertlread.net**20080210155716] 
[tutorial
read@robertlread.net**20080203161532] 
[non-keyword-accessors
sross@common-lisp.net**20080113173616
 allows lispworks to run tests.
] 
[function-call-key-form
sross@common-lisp.net**20080113173547] 
[documentation type fix
read@robertlread.net**20080111151124] 
[Fix the use of internal symbol of sb-kernel in memutils
Leonardo Varuzza <varuzza@gmail.com>**20071230000120
 
 memutil.lisp use the functions sb-kernel::copy-*-from-system-area, which
 aren't exported in the latest version of sbcl.
 
 Fix it adding the :: when appropriate
 
] 
[db-bdb bugfix: when bdb key comparison compared only the first half of utf16 strings
kazennikov@gmail.com**20071230141055] 
[Fix instance deserialization to bypass initialization protocol
sross@common-lisp.net*-20071214141938] 
[db-postmodern: optimized map-index for -by-value case
alex.mizrahi@gmail.com**20071207195402] 
[db-postmodern: optimized form-slot-key for persistent-slot-reader
alex.mizrahi@gmail.com**20071207200835
 it uses SBCL internal function now, for other implementation it's less optimized.
] 
[db-postmodern: small example update
alex.mizrahi@gmail.com**20071207200630] 
[added sh script for flushing logs sample
alex.mizrahi@gmail.com**20070920095806] 
[db-postmodern removed possiblity of using NIL as a key in btrees
Henrik Hjelte<henrik@evahjelte.com>**20071124163828] 
[cursor-duplicate removed from db-postmodern
Henrik Hjelte<henrik@evahjelte.com>**20071124163701] 
[removed a little compiler warning (typo)
Henrik Hjelte<henrik@evahjelte.com>**20071122151929] 
[remove kind-hints parameter from add-index
Henrik Hjelte<henrik@evahjelte.com>**20071122151046
 Probably a coming feature from Ian, but
 right now it breaks the generic function add-index
 and thus postmodern, so I removed it for now.
] 
[Ensure set-db-synch is defined before pset is loaded
sross@common-lisp.net**20071214145041] 
[Fix instance deserialization to bypass initialization protocol
sross@common-lisp.net**20071214141938] 
[Fix to from-end traversal of new map-index
eslick@common-lisp.net**20071130223524] 
[New map-index implementation
eslick@common-lisp.net**20071130222620] 
[Cheaper get-instance-by-value
eslick@common-lisp.net**20071130222520] 
[TAG ELEPHANT-0-9-1
ieslick@common-lisp.net**20071116153634] 
Patch bundle hash:
38ce8c554ea820be973166f4c56b0dbc1f28374e
