[squeak-dev] Re: DoIts in Deltas - give us feedback please

Göran Krampe goran at krampe.se
Thu Sep 10 09:55:44 UTC 2009


Hi!

Andreas Raab wrote:
> Göran Krampe wrote:
>> Mmm, my point was probably that if you set a Delta to record doIts and 
>> then just file it out without looking at it you will be bringing lots 
>> of garbage along...
> 
> Well, then don't do that! ;-) No, seriously, what is the use case for 
> setting a DS for recording doIts? Are you trying to replace the changes 
> file as well? I can see how this might be appealing but I think that's 
> bit of a distraction at this point. What the (Squeak) world needs isn't 
> really a better changes file. What it needs is a better change set 
> mechanism. I think that by not recording doIts by default you're not 
> loosing any value in the near term and you are avoiding issues that you 
> may not be ready to address yet.

I am all with ya, and it will not be set to true per default. :) So 
that's fine.

>> 1. If we record doIts they are NOT marked to executeOnApply. To 
>> prevent accidental replaying of a log. You can then use the UI, select 
>> such a doIt and just use a menu choice to mark it as executeOnApply if 
>> you like to.
> 
> See above. I would just say that for the time being you need to add 
> doIts explicitly, they don't get recorded. Just like change sets. It's a 
> simple model that people already understand.

Sure, it will be false per default :)

>> 2. If you *add* a doIt using the UI for Deltas (which probably will be 
>> the reasonable way to add doIts anyway, just like with 
>> preamble/postscripts today) then the default will be executeOnApply = 
>> true. A second pane will be available for the antiDoit.
> 
> Sounds good.
> 
>> 3. Skip the warning on distribution, better to make sure the UI shows 
>> that a Delta includes doIts that has executeOnApply = true. Fair?
> 
> Sounds good.
> 
>> 4. Let the applier contain the class initialization logic. We do not 
>> add any Changes specifically for that. And let's make it predictable. 
>> I still would like to see a proposal for that logic. AFAICT it is a 
>> bit tricksy, especially regarding class ivars and inherited class side 
>> #initialize.
> 
> I'd say that the general rules of thumb should be: Superclasses are 
> initialized before subclasses. Otherwise initialization occurs strictly 
> in alphabetical order. The applier probably needs to do that at the end 
> of the application / reversal of the delta stream and should do it 
> whenever the initialize method was touched.

Ah, ok, finally some proposed logic. :) Excuse me for being dumb here, but:
- Do we only send initialize to classes that implement it?
- Do we only trigger it by touching the method? What about shape 
changes? (as in changed class vars, pools (?) or class ivars)

I am presuming you have spent tons of more thought on this - that is why 
I am picking your brain.

regards, Göran




More information about the Squeak-dev mailing list