[V3dot10] Loading packages in 3.10beta 7143

Ralph Johnson johnson at cs.uiuc.edu
Sun Oct 7 13:40:51 UTC 2007


On 9/26/07, Keith Hodges <keith_hodges at yahoo.co.uk> wrote:

> This rather "gnarly" self modifying approach is common to most
> monticellos it is not exclusive to 3.10.

In fact, it is common to most code loading systems in Smalltalk (all
Smalltalks, not just Squeak), not just Monticello.  Spoon is one of
the exceptions, and there could be others.

The problem is that all Smalltalk code runs in the same image.  Thus,
code loading code runs in the same image as the code that it is
loading.  This makes it very easy to develop programming tools like
the browser, but it makes it hard to work on these code loading tools
once they become widely used.  For example, if you change the compiler
and you break something, your image is destroyed.  You can't run the
compiler to fix the compiler.  If you break the windowing system then
you might prevent popping up a debugger to fix it.

That is why the NewCompiler folks didn't call it Compiler, and why
Keith made new classes for Monticello 1.5.  Making a new system lets
you use the old while you are working on the old.  But small changes
to the old might conflict with each other.

-Ralph


More information about the V3dot10 mailing list