About squeak image compatibility (3.6/7/8)

Cees De Groot cdegroot at gmail.com
Mon Jan 9 11:02:45 UTC 2006


On 1/9/06, Blake <blake at kingdomrpg.com> wrote:
> My immediate interest in this is that I was planning to use Alice to teach
> my kids about 3D graphics. I'd hate to see it go. At the same time, I'm
> not sure I, personally, can salvage it.
>
You don't need to do it alone - you could rally to get some
like-minded people together and share the burden (which shouldn't be
too big - mostly keeping in sync with whatever Squeak distro you want
to load it into, or even build your own Squeak distro around it).

> But I gotta wonder: whence all this frangibility? Isn't that really the
> bugaboo of modern programming? Or is it precisely because the whole system
> is available to everyone to hack that everyone makes code dependent on
> details of implementation?
>
Yup :-)

That, and the lack of formal specification of course. Andreas is right
complaining about the changes in the innards (one of the things he was
referring to, I think, was the refactoring job around
SystemDictionary), but without a specification we're free to do
this...

But, again, we've got the tools. Maybe we should start using them. A
refactoring that is visible to external parties could come with a
rewrite specification. Sometimes, the RB can spit this out, sometimes,
it needs to be hand-generated. Wouldn't it be cool if you load your
code on a newer Squeak, it is automatically refactored to reflect the
new environment? Most of what we need is already there - a "packaged"
image has MC uuid's to reflect the environment, and it wouldn't be too
hard to add a list of all MC uuid's that were present to an .mcz file
(in fact, that would probably be very useful for many purposes). It
wouldn't be too hard either to add 'upgrade annotations' either in the
form of rewrite tool patterns. With these, your .mcz file could be
upgraded on-the-fly when loading for many cases where incompatible
changes in the environment are made. Maybe for the rest of cases, a
search pattern could be added so that at the very least you get a
notifier when loading code so you can manually change code.



More information about the Squeak-dev mailing list