They should both stay, people may want access to the primitives (for example a set of sets) and there is no reason not to provide it.

Ian

On Jun 29, 2008, at 10:22 AM, Glenn Tarcea wrote:

Ian,

The set-valued-slots are very nice. I've been playing around with them to write the documentation and have found they will cleanup some code I had written using make-pset. One question: Should the write up on PSETs remain in the documentation, or should there be a write up to migrate people over to using the slot-valued-sets instead?

Thanks,

Glenn

On Jun 20, 2008, at 2:42 PM, Ian Eslick wrote:

Great stuff!

To answer a couple of questions:
- Cached slots aren't ready yet; I'll document when I can work out the kinks: - Indexed slots are the same as the existing indexed-slots descriptions, except for the :inherit slot option so you should be able to copy & paste existing content
 for these slots and for derived index slots
- Derived index slots are still pertinent and will remain

-----------------------
Set-valued Slots

src/elephant/set-valued-slots.lisp

Set-valued slots are a convenient shorthand to using PSETs as slot values to get persistent collections as slot values.

(slot-value object 'set-slot)
returns a SLOT-SET which implements the PSET interface as well as:
        map-slot-set - maps over the elements of the set
        drop-slot-set - drops the set from the DB
        slot-set-list - returns a list of the elements in the set

(setf (slot-value object 'slotname) foo)
adds foo to the SLOT-SET in slot named 'slotname
however, if foo is a slot-set object, it drops and replaces the existing slot-set

(slot-makunbound object 'slotname)
Make the slot unbound and drops the SLOT-SET from the DB.

Of course these work for accessors too (setf (accessor object) foo) => adds foo to slot set

There are a couple of helper macros to simplify expressions like:
        (slot-set-list (slot-value object 'set-slot))

(set-list object 'slotname)
(set-insert foo object 'slotname)
(set-remove foo object 'slotname)

I'm happy to rename these operators if anyone has opinions on better names...

Regards,
Ian


On Jun 20, 2008, at 11:17 AM, Glenn Tarcea wrote:

Attached are updates to the documentation. Specifically I updated:

1. Section: Setting Up Berkeley DB - to include the additional flags (:berkeley-db-max-locks and :berkeley-db-max-objects) along with their descriptions and updated the list of of parameters in the my-config.sexp

2. Added a new section under Installation titled "Using Multiple Versions Of Elephant" that describes how to use ASDF to allow multiple versions of Elephant to be installed on a single system

3. Made a change to one of the Scenarios where the class was system-object, but the methods were referring to system-state (Section: Persistent System Objects)

4. Put placeholders in for the different slot types, titled:
   Using Cached Slots
   Using Indexed Slots
   Using Derived Indexed Slots
   Using Set Valued Slots

5. Added a write up based on Ian's email on Association Slots titled "Using Association Slots"

6.  Updated the Section (4) titled "Berkeley DB Data Store":
  a. to include references to the new my-config.sexp parameters
b. Updated the open-store parameters to include :max- locks :cachesize and :max-objects c. Updated performance tuning to quickly describe what berkeley- db-max-locks, and objects do d. Show an example call to open-store using :max-locks and :max- objects e. Updated performance tuning to include a reference to the Berkeley-DB parameters that max-locks and max-objects refer to and to point the user at DB_CONFIG for additional information.

Can someone send me a quick example or jot down a few notes on using Cached and Set Valued slots?

Are Derived Indexed Slots still pertinent (I recall a lot of discussion regarding them but don't recall what the outcome was).

More documentation updates later.

Thanks,

Glenn

<doc-patch-1.patch>_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel



_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

Reply via email to