Problems with Win32/WinCE VMs - backing out of changes

Marcel Weiher marcel at system.de
Wed Sep 1 13:41:18 UTC 1999


> From: "Peter Smet" <peter.smet at flinders.edu.au>
>
> From: Dick Karpinski <dick at cfcl.com>
>
> >A second mystery to me is why Filein operations are irreversable.  
 What's
> >the problem?  I know how to write the reversing instructions when  
I do the
> >damage in other systems.  Why do people put up with being unable to 
> retreat?
>
>
> Ever tried a clean uninstall of just about anything on Windows?  
90% of the
> time
> I find the uninstallers require manual help ie:
>
> "some files could not be removed"
>
> So, you could force developers to write uninstall code, as occurs for 
> Windows, but
> this doesn't seem to be terribly successful.

The comparison with the Windows mess is really quite illuminating,  
because it shows that the current situation is not really adequate (  
"hey, it's just like Windoze!" ).

I tried protected projects and they didn't really work for me (I  
ended up with a hosed image and strange change-sets).  I don't have a  
clear analysis of what happened because I was delibaretely not  
careful about it.  After all, if this protection only works if you're  
really, really careful, then it's not very useful protection.   
Wether this is fixable, I don't know.  I suspect it isn't without  
much effort because the problems seems to have been approached from  
the wrong angle, IMHO.

Anyway, the mutable-image problem is probably the second biggest  
obstacle to my actually using Squeak for productive, right after the  
integration problems.

The way I work around it now is to have throw-away images to work on  
risky code-bases.  Not exactly an optimal solution, but the only at  
least partially workable one I've found so far, and I think I am not  
alone.  Of course, many of the advantages of the integrated image  
approach are lost in this way.

I guess it wouldn't be quite as bad if images were much smaller.   
After all, it really is rather silly to have 5 or more copies of the  
image, which are probably 99% identical.

The obvious way to solve this (for me anyway) is to share copies of  
the image, using some sort of copy-on-write technique that is  
constructed in such a way that it is impossible to modify the shared  
copy (for that warm, fuzzy feeling).  Instead of a large mutable  
image with smaller chunks that can be stored separately or protected  
(more or less), you have a large protected section and small, mutable  
'images'.

With a well implemented copy-on-write scheme, this doesn't have to  
have any impact on 'image-style' development.  It can also be the  
starting point for a more complete implementation (Hans Martin's  
Collage).

Marcel





More information about the Squeak-dev mailing list