[squeak-dev] Re: Package unload status

Sean Glazier sglazier at comcast.net
Mon Jan 4 06:08:06 UTC 2010


Hey,
Happy new year. I hope all is well with you and yours :-)



Sent from my iPhone
Sean Glazier
Live with Passion


On Jan 3, 2010, at 7:58 PM, Eliot Miranda <eliot.miranda at gmail.com>  
wrote:

>
>
> On Sun, Jan 3, 2010 at 7:49 AM, Andreas Raab <andreas.raab at gmx.de>  
> wrote:
> Mariano Martinez Peck wrote:
> As a "repeater offender" you will probably don't answer be. But  
> anyway... we were discussing a couple of days ago with the Pharo  
> guys about unloading and the biggest problem we found were the  
> overrides of the packages. Do you handle this situation?
>
> Sure: Don't use overrides. Overrides are a necessary evil when you  
> can't change the underlying system to use proper means of composing  
> the desired behavior. However, if you are in control it's plain  
> insanity to use overrides. Why in the lord's name would you use  
> overrides unless you absolutely, positively had to?
>
> Because one is experimenting.  I agree with you Andreas that  
> overrides are evil and that in a well-designed system they can be  
> eliminated by well-designed extensibility conventions.  However, in  
> experimentation phases before such extensibility schemes have been  
> engineered or been justified economically, good support for  
> overrides are a reasonable substitute, and as you admit, necessary.   
> The problem with Monticello's overrides is simply with their  
> implementation above method versions.  As we've discussed recently  
> an alternative implementation of a dictionary from overridden item  
> (method reference or class definition reference) to a dictionary  
> from package name to version in that package, along with a global  
> package load order, would allow the system to compute all the  
> overridden items reliably at any time, and compute the most recent  
> previous version when unloading a package that overrides.  The  
> modifications to Monticello would be minimal - maintain a global  
> load order, enter overridden definitions into the override map on  
> load, and remove entries from the override map on unload.
>
> I know, code speaks louder than words.  I'll see what I can do in my  
> copious spare time ;)
>
>
> Cheers,
>  - Andreas
>
> On Sun, Jan 3, 2010 at 3:09 PM, Andreas Raab <andreas.raab at gmx.de <mailto:andreas.raab at gmx.de 
> >> wrote:
>
>    Folks -
>
>    I've been going through various packages, and we're actually  
> capable
>    of unloading quite a bit of them cleanly by now. I've attached my
>    unload script which (on a most recent updated trunk image with no
>    additional packages loaded) will be able to unload the following
>    packages:
>    - ReleaseBuilder, ScriptLoader
>    - 311Deprecated, 39Deprecated
>    - Universes, SMLoader, SMBase, Installer-Core
>    - VersionNumberTests, VersionNumber
>    - Services-Base, PreferenceBrowser, Nebraska
>    - CollectionsTests, GraphicsTests, KernelTests, MorphicTests
>    - MultilingualTests, NetworkTests, ToolsTests, TraitsTests
>    - XML-Parser, Traits
>    After these packages been unloaded there are no Undeclared
>    references or obsolete behaviors or modified MC packages. There are
>    several more candidate packages, some of which I could use some  
> help
>    with:
>
>    * Tests: The tests package is currently not unloadable because it
>    includes ClassTestCase which is used from several other places.
>    There is a fundamental question here whether we should aim for
>    making all tests as well as SUnit unloadable or not. If the former,
>    then we need to move tests out of packages like Files, System or MC
>    in order to make them unloadable. If we're not shooting for making
>    SUnit unloadable it may be worthwhile to promote ClassTestCase up  
> to
>    SUnit so that the Tests package becomes unloadable. Comments?
>
>    * Morphic-Extras: I don't understand the intent of this package.  
> The
>    name implies to me that it includes "extras" which I'd expect to be
>    optional content that should be unloadable at will but the reality
>    is that even attempting to unload it (I foolishly tried) blows up
>    left and right. Question: Is the intention of Morphic-Extras to
>    contain unloadable content? If so, it's not doing its job  
> currently.
>    If that's not the intention of Morphic-Extras, I'd appreciate a
>    heads-up of what the rationale for the structure is.
>
>    * ST80: This is still a bit off but we're getting there. It can
>    actually be unloaded but there are still several Undeclared
>    variables and obsolete behaviors after unloading MVC. But the good
>    news is that the system is still functioning (!) instead of  
> horribly
>    dying as it used to be. We could use a bit of additional help from
>    people with an interest in this area.
>
>    Cheers,
>     - Andreas
>
>
>
>
>
> --- 
> ---------------------------------------------------------------------
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100104/25668c7d/attachment.htm


More information about the Squeak-dev mailing list