Namespace, Package, Classbox and Local Rebinding

Lex Spoon lex at cc.gatech.edu
Fri Apr 23 16:19:53 UTC 2004


Hey Alexandre, just one quick comment, because we agree on so much else.
 It's neat work!

Alexandre Bergel <bergel at iam.unibe.ch> wrote:
> > As a small example, if you load Celeste then you want the "open" menu to
> > display a new option.  While this sounds innocuous, it is certainly a
> > change; if 8-bit characters are used in the display name this could even
> > crash the image.
> 
> Okay but I do not see this as related to a global change. Basically you would treat this issue using a registration mechanism. And not by recompiling a method...
> 

Well that's just an indirect mechanism of invoking whatever routines are
paying attention to the registry in question.  The point is, there are
some downright innocuous ways that merely *loading* a package will cause
changes in the rest of the system.

Those changes, if you are unlucky, can in fact cause the image to crash
just as thoroughly as if you actually overwrote methods.

It's probably too paranoid to worry about this, but that gets back to
the idea that you want to prevent *common* errors of this class of
errors, not to prevent *all* errors of this kind.  You probably want to
aim that loading a class box doesn't change the rest of the system *very
much*, not that it doesn't change it at all.



> Most of the work need to be done on the tools support. And I do not have the force for doing it.
> 

Oh, now, Smalltalk tools are fast to write.  Don't despair!  I bet it
goes very quickly once you dive into it.


-Lex



More information about the Squeak-dev mailing list