<div dir="ltr"><div>Ah, but thanks to my previous WeakIdentityDictionary changes, Undeclared holds weakly to its binding.<br></div>And after update 406, the references to MethodContext have already vanished.<br><div>So maybe a simple garbageCollect might help update 407 to proceed without any problem?<br></div><div><br></div><div>I've just tried that in a package above Kernel in the configuration map....<br></div><div>But it does not seems to work. I'll see tomorrow.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-04-07 23:07 GMT+02:00 Nicolas Cellier <span dir="ltr"><<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div>Hi,<br></div>I tried updating a relatively recent image from:<br><br><a href="http://files.squeak.org/6.0alpha/Squeak6.0alpha-16548-32bit/" target="_blank">http://files.squeak.org/6.<wbr>0alpha/Squeak6.0alpha-16548-<wbr>32bit/</a><br><br></div>What happens to me is an unhandled exception MNU Context>>terminateTo: during update 407.<br><br></div>Update 407 is loading Kernel.eem.1078 which is storing the new Kernel classes (Context rather than MethodContext)<br><br></div>Last change written in the change log is:<br><br>    Context removeSelector: #terminateTo:<br><br></div>Oh, but there's no such instruction in Kernel-eem.1078...<br></div>So what happens exactly which told the image to remove some just installed Context methods???<br><br></div>What happens before that is the boostrapContext in Kernel-eem.1077 preamble<br><br>    Smalltalk renameClassNamed: #MethodContext as: #Context<br><br></div>And what happens when we rename is in Environment>>renameClass:from:<wbr>to:<br><br>    oldBinding := self declarationOf: oldName.<br>    declarations removeKey: oldName.<br>    self binding: oldBinding removedFrom: self.<br>    " re-route now undeclared oldBinding "<br>    oldBinding value: aClass.<br><br></div>That means that we have an Undeclared #MethodeContext => Context.<br><br></div>And what happens when we ask to remove MethodContext class?<br></div>We start removing Context!!!<br><br></div>So what might be necessary is to purgeUndeclared in Kernel-eem.1078 preamble.<br></div>And it will work if and only if we removed all MethodContext references.<br><div><div><br><br><div><div><div><br><div><br><br></div></div></div></div></div></div></div>
</blockquote></div><br></div>