[squeak-dev] broken updateStream

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Fri Apr 7 22:21:06 UTC 2017


Ah, but thanks to my previous WeakIdentityDictionary changes, Undeclared
holds weakly to its binding.
And after update 406, the references to MethodContext have already vanished.
So maybe a simple garbageCollect might help update 407 to proceed without
any problem?

I've just tried that in a package above Kernel in the configuration map....
But it does not seems to work. I'll see tomorrow.

2017-04-07 23:07 GMT+02:00 Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com>:

> Hi,
> I tried updating a relatively recent image from:
>
> http://files.squeak.org/6.0alpha/Squeak6.0alpha-16548-32bit/
>
> What happens to me is an unhandled exception MNU Context>>terminateTo:
> during update 407.
>
> Update 407 is loading Kernel.eem.1078 which is storing the new Kernel
> classes (Context rather than MethodContext)
>
> Last change written in the change log is:
>
>     Context removeSelector: #terminateTo:
>
> Oh, but there's no such instruction in Kernel-eem.1078...
> So what happens exactly which told the image to remove some just installed
> Context methods???
>
> What happens before that is the boostrapContext in Kernel-eem.1077 preamble
>
>     Smalltalk renameClassNamed: #MethodContext as: #Context
>
> And what happens when we rename is in Environment>>renameClass:from:to:
>
>     oldBinding := self declarationOf: oldName.
>     declarations removeKey: oldName.
>     self binding: oldBinding removedFrom: self.
>     " re-route now undeclared oldBinding "
>     oldBinding value: aClass.
>
> That means that we have an Undeclared #MethodeContext => Context.
>
> And what happens when we ask to remove MethodContext class?
> We start removing Context!!!
>
> So what might be necessary is to purgeUndeclared in Kernel-eem.1078
> preamble.
> And it will work if and only if we removed all MethodContext references.
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20170408/0acc2247/attachment-0001.html>


More information about the Squeak-dev mailing list