What's a POS??
Chris Bitmead uid(x22068)
Fri, 09 May 1997 17:21:05 +1000
>>Either object level granuluarity or page level depending on the
>>implementation, where a page is dependant on hardware size of pages.
> Not size granularity, but frequency granularity. Some data needs to
>be "commited" as soon as it's created. Email for instance. Other data
>I only want "commited" once in a while. Other data, I NEVER want
Frequency is as often as you type (commit).
Someone suggested that as an option, you might want objects to be
automatically written back by the gc.
Someone else suggested that the disk is the memory, and the RAM is
only cache. Sounds interesting. Needs some deep thought.
You get the idea I think.
>>It is persistent if it is connected to something else that is
>>persistent. There is a single *root* that everything persistent is
>>ultimately connected to.
> I don't want EVERYTHING to be persistent. That's as bad as nothing
>being persistent. With everything being saved, I now have to go around
>and make sure all of the temporary objects I've created get
>disconnected so that they'll get GCed instead of saved.
Presumably your temporaries are stored in local variables and won't be
>>>or can I tell the POS system to "save" any ole object?
> How do I tell it if it's doing this all transparently?
You attach it to something else which is known to be persistent. Your
home "directory" for example.
>importantly, how do I keep it from doing it?
You connect it to a local variable in your program. When the function
returns, it will be gc'ed all in good time.
>>There might be an option to say that a certain slot of this particular
>>CLOS class is not saved. That is not the normal case however.
> That's why it's broken. Your version of a POS makes the assumption
>that most things are "valuable" and should be saved. That's just the
>opposite of the actual case in a lisp developement environment, which
>is the case I care about. So, to answer your question in the "Testing
>the waters" thread, "You don't want a POS?" No, I don't! I'd much
>rather have an object oriented database that allows me to decide what
>gets saved and when it gets saved.
You do decide! Where do you get the idea that you don't?
Also, the OOFS does not make the assumption that most things are
valuable. You make the *decision* that it is valuable by storing a
reference to the object in a "repositry". A repositry is defined as
any object which is persistent. A persistent object is any object
which is in a repositry. The ultimate repositry is *root*.