PropListDoc.tioga
Copyright © 1992, 1993 by Xerox Corporation. All rights reserved.
Created by: Christian Jacobi, April 15, 1992 4:54:32 pm PDT
Last edited by: Christian Jacobi, July 4, 1993 5:52 pm PDT
PropList, UnsafePropList, UnsafeFreeList
Abstract: Implementations for property lists. Usefull primitive for free lists.
Justification: Similar to Atom, but uses less memory and is faster.
Created by: Christian Jacobi
Keywords: properties, key value pairs.
We do recommend reading the interfaces for detailed instructions.
PropList, UnsafePropList.
PropList
A simple package directly exporting a property list abstraction. By explicit indirection to a property list type, a richer functionality can be provided. In particular, the interface has a useful set of multi threading primitives.
UnsafePropList
Package which allows applications to support property lists to its clients. The idea is to use UnsafePropList to implement property lists but to hide usage of UnsafePropList and support application specific safe access procedures. (This is how PropList was implemented).
Both packages are aimed at asynchronous clients. PutProp and GetProp are considered very light weight. E.g. a general Update procedure has been ommited, just to keep PutProp and GetProp fast.
UnsafeFreeList.
"Template module" to handle free-lists of client data blocks.
This is a quite simple task. However, by using an extra module more detailed care is given to this problem then any single user likely would invest. It is probably worth being fast since the garbage collector provides nicer functionality in any case were speed or fragmentation doesn't matter. It is aimed at multi-threaded applications; single threaded applications don't need fancy locking like UnsafeFreeList. This package is not defying garbage collection; quite the opposite is true. Due to garbage collection it makes sense to utilize many but quite short free-lists.
Similar packages
Atom
Of course. Atoms have the advantage of being standard and ubiquitous. Atoms have the disadvantage of using more storage.
Properties,
RProperties
Older packages. For new application these packages are no more recommended. RProperties used to reorder properties and therefore might still have few clients.
Prop
Immutable, sharable property lists. Have obviously a big functional advantage, but are more geared to slightly heavier weight applications