[elephant-devel] Set-Valued-Slots Documentation Update

Glenn Tarcea gtarcea at umich.edu
Sun Jun 29 16:11:03 UTC 2008


Attached is a set of patches for the Set-Valued-Slots. This patch  
also includes the changes from the last set of documentation patches  
(I had to do this to get the new set of changes included).

On top of the last set of document changes this new patch set  
includes the following 3 changes:

1. I removed the subsection on Cached Slots
2. I corrected the spelling for the Set-Valued slots sections (Valued  
was spelled Valed).
3. I included a write up on using set-valued-slots. All the examples  
in the section should work

I have not updated the API documentation to include the new calls and  
macros. I also did not include a write up on how to remove the sets  
from the DB.  At the moment I'm pondering documentation layout and  
will post some thoughts on some small changes to the layout (and  
didn't want to include these changes only to move them around). Also  
I'm trying to keep my patches small (which I assume will make it  
easier to review).

If there is a better/easier way for me to post the documentation  
changes let me know.

Thanks,

Glenn

-------------- next part --------------
A non-text attachment was scrubbed...
Name: doc-update-june29v1.patch
Type: application/octet-stream
Size: 28285 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/elephant-devel/attachments/20080629/9716db00/attachment.obj>
-------------- next part --------------


On Jun 29, 2008, at 11:54 AM, Ian Eslick wrote:

> 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 at common-lisp.net
>>>> http://common-lisp.net/mailman/listinfo/elephant-devel
>>>
>>> _______________________________________________
>>> elephant-devel site list
>>> elephant-devel at common-lisp.net
>>> http://common-lisp.net/mailman/listinfo/elephant-devel
>>>
>>>
>>
>> _______________________________________________
>> elephant-devel site list
>> elephant-devel at common-lisp.net
>> http://common-lisp.net/mailman/listinfo/elephant-devel
>
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel
>
>



More information about the elephant-devel mailing list