[squeak-dev] unloadReloadablePackages

Tobias Pape Das.Linux at gmx.de
Sun Dec 29 20:13:28 UTC 2013


On 29.12.2013, at 21:02, Frank Shearar <frank.shearar at gmail.com> wrote:

> On 29 December 2013 19:34, Tobias Pape <Das.Linux at gmx.de> wrote:
>> Dear Squeakers
>> 
>> I give up.
>> For roughly 6 hours I try to shrink my image using
>>        Smalltalk unloadReloadablePackages
>> 
>> It simply does not work currently.
>> I have the said trunk image (Squeak4.5-13148#712) (NameVersion-Update#CIJob)
>> but with the obsoletes removed as I explained a few emails ago.
>> 
>> But to no avail.
>> * Sometimes (!) ReleaseBuilder retains some obsoletes.
>>  (removing the Obsoletes some time later with fixObsoleteReferences works, but
>>   mostly not during unload)
>> * same for VersionNumber-bla
>> * SMLoader always retains obsoletes
>> * Services-Base itches itself:
>>  When its ServiceRegistry's #isInteractive was unloaded,
>>  ServiceRegistry gets called again and calls #isInteractive
>>  on its current, resulting in an DNU.
>>  Issuing
>>        Smalltalk at: #SystemChangeNotifier ifPresent: [:scn | scn
>>                uniqueInstance noMoreNotificationsFor: ServiceRegistry].
>>  manually works, but not as a #preambleOfRemoval.
> 
> So it sounds like some packages' unload/reloads aren't being tested,
> which is why they've now broken. I realise you've now given up :), but
> did your explorations lead you through any #unload implementations?

ServiceRegistry has none, and on my way Exploring, I got confused, when
all this is called. The problem is here:
The unloading works via Monticello with will:
* Create an unloading path by comparing the package to an empty one
* That way, It gets all necessary removal.
* It then carries out the removals.
* However:
  * The method removals come first
  * then the class removal
  * then categories..

The #unload is executed during the class removal phase, which means
that even if ServiceRegistry had an #unload, it won't be triggered
in time. I tried that just now:

* add
ServiceRegistry class>>#unload
   1 halt.

Unload ServiceRegistry. > DNU.


> 
>> And now I gave up. If someone has, pleas send me a stripped image.
>> Tanks.
> 
> If I get anywhere on the problem, you'll be the first to know!

:)

Best
	-Tobias

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 1665 bytes
Desc: Message signed with OpenPGP using GPGMail
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20131229/f8957606/signature.pgp


More information about the Squeak-dev mailing list