
New patches:

[Call SLOT-UNBOUND instead of signaling UNBOUND-SLOT. Provided a default method of SLOT-UNBOUND for persistent metaclasses that makes already instantiated objects catch up to slot additions by assigning the initform. Added a test named SLOT-UNBOUND for this.
polzer@gnu.org**20080403110230] {
hunk ./src/db-bdb/bdb-slots.lisp 39
-	  #+cmu
-	  (error 'unbound-slot :instance instance :slot name)
-	  #-cmu
-	  (error 'unbound-slot :instance instance :name name)))))
+        (unbound-slot (class-of instance) instance name)))))
hunk ./src/db-clsql/sql-controller.lisp 775
-	(error  'unbound-slot :instance instance :name name))))
+	(slot-unbound (class-of instance) instance name))))
hunk ./src/db-postmodern/pm-controller.lisp 281
-          (error 'unbound-slot :instance instance :name name)))))
+          (slot-unbound (class-of instance) instance name)))))
hunk ./src/elephant/metaclasses.lisp 110
+
+
+;; handle new slots in already existing instances
+(defmethod initform-for ((class class) (slot-name symbol))
+  (dolist (sd (class-slots class))
+    (when (eq slot-name (slot-definition-name sd))
+      (print (slot-definition-initform sd)))))
+
+(defmethod initform-for ((class-name symbol) (slot-name symbol))
+  (initform-for (find-class class-name) slot-name))
+
+(defmethod slot-unbound ((class persistent-metaclass) instance slot-name)
+  (setf (slot-value instance slot-name) (initform-for class slot-name))
+  instance)
+
hunk ./tests/mop-tests.lisp 258
+(deftest slot-unbound
+    (progn
+      (defclass pineapple () ()
+        (:metaclass persistent-metaclass))
+      (let ((fruit (make-instance 'pineapple)))
+        (defclass pineapple ()
+          ((tree :initform 1))
+            (:metaclass persistent-metaclass))
+        (values (slot-value fruit 'tree))))
+    1)
+
}

Context:

[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] 
[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:
5d3c54c68129d17fecbd3c7b53704df3081b1442
