Slime inspector customization

Hello, Here follows Common Lisp code, using a datastore library named bknr.datastore (ql:quickload :bknr.datastore) (defclass userdata (bknr.datastore:store-object) ((email :initarg :email :index-type bknr.indices:unique-index :index-values all-users) (name :initarg :name)) (:metaclass bknr.datastore:persistent-class)) (let ((object-subsystem (make-instance 'bknr.datastore:store-object-subsystem))) (make-instance 'bknr.datastore:store :directory *default-pathname-defaults* :subsystems (list object-subsystem))) (make-instance 'userdata :email "m@b.com" :name "Maria") (make-instance 'userdata :email "k@g.com" :name "Katerina") (setf (slot-value (first (all-users)) 'name) "Elena") ; Attempt to modify persistent slot NAME of #<USERDATA ID: 0> outside of a transaction ; [Condition of type BKNR.DATASTORE::PERSISTENT-SLOT-MODIFIED-OUTSIDE-OF-TRANSACTION] (bknr.datastore:with-transaction () (setf (slot-value (first (all-users)) 'name) "Elena")) ; runs successfully, the above wrap in with-transaction () is necessary I use the Slime inspector to view the datastore, so in the minibuffer after C-c C-I Inspect value (evaluated): I input (all-users) I can see the data but not edit it in the slime inspector, because the same condition is thrown as above. Can the slime inspector be customized in a way that it wraps calls to setf inside transactions? PS: if you run the above code, a directory named "current" will be created in your lisp's working directory. It saves the datastore on disk. Thank you, Christos Gitsis

Can the slime inspector be customized in a way that it wraps calls to setf inside transactions?
an example that we made for another persistency layer: http://hub.darcs.net/hu.dwim/hu.dwim.perec/browse/integration/swank.lisp (for the actual layout/customization details it assumes our customized slime, but it's not relevant for the base idea) -- • attila lendvai • PGP: 963F 5D5F 45C7 DFCD 0A39 -- “If we have the truth, it cannot be harmed by investigation. If we have not the truth, it ought to be harmed.” — J. Reuben Clark (1871–1961)
participants (2)
-
Attila Lendvai
-
Gitsis Christos