Why multiple change files?

Trygve Reenskaug trygver at ifi.uio.no
Mon Mar 8 09:17:09 UTC 2004


Hi Dan,
Long time no see.

I use the changes for two things:
1)
To pick up stuff that I had discarded earlier. Example: I want to use very 
large Arial fonts for talks. One way to install fonts is to use 
TTFontDescription>>addFromTTFile: . Another is to 
use  TTFontReader>>installTTF:asTextStyle:sizes:. There is also a bugfix 
suggested in e-mail http://minnow.cc.gatech.edu/squeak/2235 from Kris 
Gybels 2002-02-04. Suggesting that the depth should be set to one in 
TTGlyph>>asFormWithScale:ascender:descender:.  I thought my font project 
was completed, but discovered a flaw that made me want to retrack my steps 
to try something else. Not wanting to reinvent debugged code, I searched 
the change files until I found what I needed.

2)
To experiment. For example, when I wanted to discover how a balloon help is 
activated, or more precisely why it wasn't activated in a certain case, I 
examined the stack at different points in the process. At the crucial 
state, the stack was 29 activations deep, many of them reentrant and all of 
them obscure (to me). I had frequent crashes during this work, and used to 
changes file to recreate the situation up to, but not including, the last 
step. And then examine that step, modify it, and try again.

The reason why my work process is erratic is that I find it effective. I 
follow a main theme, but is happy to digress to improve my tools or to 
explore some niche in the system.

--------------------

I do not need the changes file to keep 'finished' packages etc. for my 
daily work. I keep them in my image. This is the best library there is, 
IMO. (Shipped products are still being generated by stripping the main 
image). If I start from a new release image, I use the workspace log to 
build a new system creation process. This is not automatic; I have to 
consider every step carefully to make sure my stuff will work properly in 
the new environment. So Monticello or an automatic versioning system would 
not help me. They overlap the information in my image.

I do see that the current change file scheme may be effective in some 
cases. I do not see why it is enforced deep down and wide around in the 
system. VW supports a maximum of 32 source files, the Squeak encoding seems 
to support exactly two. So that's that. I may remove the binding between 
image and changes names, however, but not today.

Best regards
--Trygve





At 07.03.2004 16:07, you wrote:


>Also for the record, this is precisely what internalizeChangeLog does, or 
>did 8 years ago.  I dreamed this up as a way to keep changes 
>well-supported while moving from one file system (Mac Toolbox) to another 
>(Squeak cross-platform) in the earliest days of Squeak.  Scott implemented 
>it, and it has occasionally been of great value.  It is the only way to 
>fly when files are not available for one reason or another.
>
>This gives you all the benefits of a changes log *except one*:   namely 
>the security of changes written on the disk and not lost if you 
>crash.  Therefore if you use this mechanism in serious development, you 
>must remember "Never to play for more than you can afford to lose" or, in 
>other words, to save often.
>
>         Dan


-- 

Trygve Reenskaug      mailto: trygver at ifi.uio.no
Morgedalsvn. 5A       http://heim.ifi.uio.no/~trygver
N-0378 Oslo           Tel: (+47) 22 49 57 27
Norway





More information about the Squeak-dev mailing list