Smalltalk fixObsoleteReferences

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Smalltalk fixObsoleteReferences

Chris Muller-3
I want to experiment with Smalltalk #shrink but the stock
Squeak4.5-12641.image has AnObsoleteBindingTest and... one other
ObsoleteClass stuck in the image.  Not even Smalltalk
fixObsoleteReferences can get rid of it.

The reference is buried in Environment's 'exports' Dictionary.  I can
certainly remove it manually but how should we fix it in published
image?

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk fixObsoleteReferences

Edgar De Cleene


El 9/10/13 10:18 PM, "Chris Muller" <[hidden email]> escribió:

>I want to experiment with Smalltalk #shrink but the stock
>Squeak4.5-12641.image has AnObsoleteBindingTest and... one other
>ObsoleteClass stuck in the image.  Not even Smalltalk
>fixObsoleteReferences can get rid of it.
>
>The reference is buried in Environment's 'exports' Dictionary.  I can
>certainly remove it manually but how should we fix it in published
>image?


Yesterday I made the monthly update following trunk of my SqueakRosCore
and notice we don't have Smalltalk unloadAllKnownPackages now

My idea is
unloadReloadablePackages
 "Unload packages which can be reloaded."
  #( 'ReleaseBuilder' 'ScriptLoader'
  '311Deprecated' '39Deprecated'
  'Universes' 'SMLoader' 'SMBase' 'Installer-Core'
  'VersionNumberTests' 'VersionNumber'
  'Services-Base' 'PreferenceBrowser' 'Nebraska'
  'ToolBuilder-MVC' 'ST80'
  'CollectionsTests' 'GraphicsTests' 'KernelTests'  'MorphicTests'
  'MultilingualTests' 'NetworkTests' 'ToolsTests' 'TraitsTests'
  'SystemChangeNotification-Tests' 'FlexibleVocabularies'
  'EToys' 'Protocols' 'XML-Parser' 'Tests' 'SUnitGUI'
  'Help-Squeak' 'HelpSystem' 'SystemReporter' 'GetText' 'Environments'
 ) do: [:pkgName|
   (MCPackage named: pkgName) unload.
   MCMcmUpdater disableUpdatesOfPackage: pkgName.
   ].
 "Traits use custom unload"
 self
  at: #Trait
  ifPresent: [ : aClass | aClass unloadTraits ]


And we get rid of more packages.
 Of course we must be careful of go back to previous version of methods
concerningto Environments



Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk fixObsoleteReferences

Frank Shearar-3
On 11 September 2013 11:21, Edgar J. De Cleene <[hidden email]> wrote:

>
>
> El 9/10/13 10:18 PM, "Chris Muller" <[hidden email]> escribió:
>
>>I want to experiment with Smalltalk #shrink but the stock
>>Squeak4.5-12641.image has AnObsoleteBindingTest and... one other
>>ObsoleteClass stuck in the image.  Not even Smalltalk
>>fixObsoleteReferences can get rid of it.
>>
>>The reference is buried in Environment's 'exports' Dictionary.  I can
>>certainly remove it manually but how should we fix it in published
>>image?
>
>
> Yesterday I made the monthly update following trunk of my SqueakRosCore
> and notice we don't have Smalltalk unloadAllKnownPackages now
>
> My idea is
> unloadReloadablePackages
>  "Unload packages which can be reloaded."
>   #( 'ReleaseBuilder' 'ScriptLoader'
>   '311Deprecated' '39Deprecated'
>   'Universes' 'SMLoader' 'SMBase' 'Installer-Core'
>   'VersionNumberTests' 'VersionNumber'
>   'Services-Base' 'PreferenceBrowser' 'Nebraska'
>   'ToolBuilder-MVC' 'ST80'
>   'CollectionsTests' 'GraphicsTests' 'KernelTests'  'MorphicTests'
>   'MultilingualTests' 'NetworkTests' 'ToolsTests' 'TraitsTests'
>   'SystemChangeNotification-Tests' 'FlexibleVocabularies'
>   'EToys' 'Protocols' 'XML-Parser' 'Tests' 'SUnitGUI'
>   'Help-Squeak' 'HelpSystem' 'SystemReporter' 'GetText' 'Environments'
>  ) do: [:pkgName|
>    (MCPackage named: pkgName) unload.
>    MCMcmUpdater disableUpdatesOfPackage: pkgName.
>    ].
>  "Traits use custom unload"
>  self
>   at: #Trait
>   ifPresent: [ : aClass | aClass unloadTraits ]
>
>
> And we get rid of more packages.
>  Of course we must be careful of go back to previous version of methods
> concerningto Environments

Environments is a very low level package. It should be one of the
least unloadable packages (because of its nature). For instance, you
should need to remove 'Tools' before you can think of removing
Environments, because Squeak 4.5 is all about Environments, and making
the tools use them.

frank

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk fixObsoleteReferences

Chris Muller-3
We can't unload anything right now because unloading a package calls
#unloadCleanup, which calls #fixObsoleteReferences, which fails.

On Wed, Sep 11, 2013 at 5:43 AM, Frank Shearar <[hidden email]> wrote:

> On 11 September 2013 11:21, Edgar J. De Cleene <[hidden email]> wrote:
>>
>>
>> El 9/10/13 10:18 PM, "Chris Muller" <[hidden email]> escribió:
>>
>>>I want to experiment with Smalltalk #shrink but the stock
>>>Squeak4.5-12641.image has AnObsoleteBindingTest and... one other
>>>ObsoleteClass stuck in the image.  Not even Smalltalk
>>>fixObsoleteReferences can get rid of it.
>>>
>>>The reference is buried in Environment's 'exports' Dictionary.  I can
>>>certainly remove it manually but how should we fix it in published
>>>image?
>>
>>
>> Yesterday I made the monthly update following trunk of my SqueakRosCore
>> and notice we don't have Smalltalk unloadAllKnownPackages now
>>
>> My idea is
>> unloadReloadablePackages
>>  "Unload packages which can be reloaded."
>>   #( 'ReleaseBuilder' 'ScriptLoader'
>>   '311Deprecated' '39Deprecated'
>>   'Universes' 'SMLoader' 'SMBase' 'Installer-Core'
>>   'VersionNumberTests' 'VersionNumber'
>>   'Services-Base' 'PreferenceBrowser' 'Nebraska'
>>   'ToolBuilder-MVC' 'ST80'
>>   'CollectionsTests' 'GraphicsTests' 'KernelTests'  'MorphicTests'
>>   'MultilingualTests' 'NetworkTests' 'ToolsTests' 'TraitsTests'
>>   'SystemChangeNotification-Tests' 'FlexibleVocabularies'
>>   'EToys' 'Protocols' 'XML-Parser' 'Tests' 'SUnitGUI'
>>   'Help-Squeak' 'HelpSystem' 'SystemReporter' 'GetText' 'Environments'
>>  ) do: [:pkgName|
>>    (MCPackage named: pkgName) unload.
>>    MCMcmUpdater disableUpdatesOfPackage: pkgName.
>>    ].
>>  "Traits use custom unload"
>>  self
>>   at: #Trait
>>   ifPresent: [ : aClass | aClass unloadTraits ]
>>
>>
>> And we get rid of more packages.
>>  Of course we must be careful of go back to previous version of methods
>> concerningto Environments
>
> Environments is a very low level package. It should be one of the
> least unloadable packages (because of its nature). For instance, you
> should need to remove 'Tools' before you can think of removing
> Environments, because Squeak 4.5 is all about Environments, and making
> the tools use them.
>
> frank
>

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk fixObsoleteReferences

Chris Muller-3
In reply to this post by Edgar De Cleene
Edgar, unloadAllKnownPackages was recently renamed.

On Wed, Sep 11, 2013 at 5:21 AM, Edgar J. De Cleene
<[hidden email]> wrote:

>
>
> El 9/10/13 10:18 PM, "Chris Muller" <[hidden email]> escribió:
>
>>I want to experiment with Smalltalk #shrink but the stock
>>Squeak4.5-12641.image has AnObsoleteBindingTest and... one other
>>ObsoleteClass stuck in the image.  Not even Smalltalk
>>fixObsoleteReferences can get rid of it.
>>
>>The reference is buried in Environment's 'exports' Dictionary.  I can
>>certainly remove it manually but how should we fix it in published
>>image?
>
>
> Yesterday I made the monthly update following trunk of my SqueakRosCore
> and notice we don't have Smalltalk unloadAllKnownPackages now
>
> My idea is
> unloadReloadablePackages
>  "Unload packages which can be reloaded."
>   #( 'ReleaseBuilder' 'ScriptLoader'
>   '311Deprecated' '39Deprecated'
>   'Universes' 'SMLoader' 'SMBase' 'Installer-Core'
>   'VersionNumberTests' 'VersionNumber'
>   'Services-Base' 'PreferenceBrowser' 'Nebraska'
>   'ToolBuilder-MVC' 'ST80'
>   'CollectionsTests' 'GraphicsTests' 'KernelTests'  'MorphicTests'
>   'MultilingualTests' 'NetworkTests' 'ToolsTests' 'TraitsTests'
>   'SystemChangeNotification-Tests' 'FlexibleVocabularies'
>   'EToys' 'Protocols' 'XML-Parser' 'Tests' 'SUnitGUI'
>   'Help-Squeak' 'HelpSystem' 'SystemReporter' 'GetText' 'Environments'
>  ) do: [:pkgName|
>    (MCPackage named: pkgName) unload.
>    MCMcmUpdater disableUpdatesOfPackage: pkgName.
>    ].
>  "Traits use custom unload"
>  self
>   at: #Trait
>   ifPresent: [ : aClass | aClass unloadTraits ]
>
>
> And we get rid of more packages.
>  Of course we must be careful of go back to previous version of methods
> concerningto Environments
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk fixObsoleteReferences

Edgar De Cleene
In reply to this post by Chris Muller-3


El 9/11/13 11:38 AM, "Chris Muller" <[hidden email]> escribió:

>We can't unload anything right now because unloading a package calls
>#unloadCleanup, which calls #fixObsoleteReferences, which fails.
>

Not in my image.
MCPackageManager flushObsoletePackageInfos is working.
At which point in the trunk fail?
So I take a lookŠ

Edgar
>



Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk fixObsoleteReferences

Edgar De Cleene
In reply to this post by Chris Muller-3


El 9/11/13 11:39 AM, "Chris Muller" <[hidden email]> escribió:

>Edgar, unloadAllKnownPackages was recently renamed.

Thanks, I discover this.
Now we have
 
 shrink

And

unloadReloadablePackages

Now I rebuilding all from Squeak 4.2 and collect troubles for feedback here

Cheers

Edgar