port of prevayler
mail at marco-paga.de
Mon Feb 17 13:17:46 UTC 2003
Thanks for you mail
Frank Sergeant wrote:
>Marco Paga <mail at marco-paga.de> wrote:
>>Is anybody out there who wants to port prevyler to squeak? I have a
>>version aviable, but that one is badly designed. You can't extend it in
>>So the next version NEEDS to be better.
>>If you are interested please let me know.
>How is your implementation licensed? From the heading of your 13 Oct
>2002 changeset, it looks like you are using GPL. If so, I think this is
>a terrible idea. If it is something for Squeak, why not use Squeak-L or
>something even more permissive? Is your implementation derived from the
>actual Prevayler code (which is LGPL)? I do not see how I can use GPL
The GPL is the license I like most. You can give your code away and you
know that it will stay free. If somebody wants to use my code S/he can
do it and give her changes back to the world. The rest of her
application doesn't interest me. When somebody has to extend the
functionality it is maybe heavy needed and nobody has to do the work twice.
I think when I code something without beeing paid I can say that others
can make profit of it without giving something back to the community.
>I like the "prevalence" ideas a lot. My quick summary:
> 1. The business objects are kept in RAM, yet protected from system
>crashes by the logging and recovery mechanisms.
> 2. When the application starts, the business objects are loaded from
>last night's snapshot and then updated from the log file if one exists
>(which it will not if the application terminated normally on its
> 3. While the application runs, changes to the business object are
>written to a log file.
> 4. When the application terminates normally, a new snapshot file is
>written and the log file is erased.
I would not erase the files because then you would loose the cange of
getting the system back in the correct state after one needed (the last)
was corrupted. I would implement a process has a schedule when files can
>So, there must be sufficient RAM to hold all the objects, which I think
>is very feasible (does feasibility have degrees?) today with many
Klaus Wüstefeld mentioned that problem in his FAQ.
>I have written from scratch an experimental version of the above in
>Dolphin and plan to port it to Squeak. I am using a rather too
>simplistic object serialization method to write the log and snapshot
>files and this can make start-up and shut-down times too long with a lot
>of objects, but this is still workable (and in use in production) when
>the objects to be persisted are few in number.
>My current serialization method is to write Smalltalk code to the file
>which will be evaluated (compiled and executed), line by line, when
>reloading the objects from the file. I expect to try some alternatives
>when I can find the time. I plan to publish it under Squeak-L or BSD
>when it is clean enough to be less embarrassing.
If you want another license for the implementation we could talk about
it. I just would like if there was a good prevayler for squeak (nearly
no matter the license)
>However, the license for the actual Prevayler code is LGPL (and of
>Marco's is GPL), which I am leery of. I just do not know how to comply
>with LGPL for a Smalltalk application without supplying all the source
>code for my application. So, I did not derive my implementation of the
>"prevalence" ideas from the Prevayler code. One of the main reasons I
>am posting this note now (rather than waiting until I can release
>working code) is to caution against deriving from the LGPL'd Prevayler
>code or from Marco's GPL'd code.
>Here are some "prevalence" links for your convenience:
> Main site <http://www.prevayler.org>
> and its wiki <http://www.prevayler.org/wiki.jsp>
> Kent Beck and others have coded something for Smalltalk (probably VW)
> And, here is a link to Marco's version.
More information about the Squeak-dev