[squeak-dev] broken updateStream

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


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/20170407/3bc7a86b/attachment.html>


More information about the Squeak-dev mailing list