<div dir="ltr">Bad news I&#39;m afraid.  Found a serious bug in the final release candidate.<div><br></div><div>To reproduce, start up Squeak4.5-13680.image, download the current version of Collections to the package-cache (Collections-ul.564.mcz), and load it from the package-cache.  There&#39;s an infinite recursion apparently due to WriteStream&gt;&gt;nextPutAll: being not understood (!!).  For some reason the load decides to remove nextPutAll:.  Here&#39;s part of the stack:</div>
<div><br></div><div><div>0x142d5508 s WriteStream(Object)&gt;doesNotUnderstand: nextPutAll:</div><div>0x142ed7e4 s WriteStream&gt;nextPutAll:</div><div>0x142ed840 s ByteSymbol(Symbol)&gt;storeOn:</div><div>0x142ed89c s [] in ByteSymbol(Object)&gt;storeString</div>
<div>0x142ed8f8 s String class(SequenceableCollection class)&gt;new:streamContents:</div><div>0x142ed954 s String class(SequenceableCollection class)&gt;streamContents:</div><div>0x142d5378 s ByteSymbol(Object)&gt;storeString</div>
<div>0x142ed9b0 s SmalltalkImage&gt;event:</div><div>0x142eda0c s [] in WeakMessageSend&gt;valueWithArguments:otherwise:</div><div>0x142d5300 s WeakMessageSend&gt;withEnsuredReceiverAndArgumentsDo:otherwise:</div><div>0x142d5288 s WeakMessageSend&gt;valueWithArguments:otherwise:</div>
<div>0x142d520c s [] in WeakActionSequenceTrappingErrors&gt;valueWithArguments:startingFrom:</div><div>0x142d5564 s BlockClosure&gt;on:do:</div><div>0x142d512c s WeakActionSequenceTrappingErrors&gt;valueWithArguments:startingFrom:</div>
<div>0x142ed3f4 s WeakActionSequenceTrappingErrors&gt;valueWithArguments:</div><div>0x142ed450 s SystemEventManager(Object)&gt;triggerEvent:withArguments:</div><div>0x142ed4ac s SystemEventManager(Object)&gt;triggerEvent:with:</div>
<div>0x142ed508 s RemovedEvent(AbstractEvent)&gt;trigger:</div><div>0x142ed564 s SystemChangeNotifier&gt;trigger:</div><div>0x142ed5c0 s SystemChangeNotifier&gt;methodRemoved:selector:inProtocol:class:</div><div>0x142d4e7c s Stream class(ClassDescription)&gt;removeSelector:</div>
<div>0x142d4ed8 s MCMethodDefinition&gt;removeSelector:fromClass:</div><div>0x142ecf28 s MCMethodDefinition&gt;unload</div><div>0x142ecf84 s [] in MCPackageLoader&gt;basicLoad</div><div>0x142ecfe0 s OrderedCollection&gt;do:</div>
<div>0x142cc7ec s [] in MCPackageLoader&gt;basicLoad</div><div>0x142ed03c s [] in MorphicUIManager&gt;displayProgress:at:from:to:during:</div><div>0x142d56d0 s BlockClosure&gt;on:do:</div><div>0x142cc6e0 s [] in MorphicUIManager&gt;displayProgress:at:from:to:during:</div>
<div>0x142ed098 s BlockClosure&gt;ensure:</div><div>0x142cc64c s MorphicUIManager&gt;displayProgress:at:from:to:during:</div><div>0x142cc430 s ProgressInitiationException&gt;defaultResumeValue</div><div>0x142cc3d4 s ProgressInitiationException(Exception)&gt;resume</div>
<div>0x142ec780 s ProgressInitiationException&gt;defaultAction</div><div>0x142ec7dc s UndefinedObject&gt;handleSignal:</div><div>0x142ec838 s MethodContext(ContextPart)&gt;handleSignal:</div><div>0x142ec894 s MethodContext(ContextPart)&gt;handleSignal:</div>
<div>0x142ec8f0 s MethodContext(ContextPart)&gt;handleSignal:</div><div>0x142cc31c s ProgressInitiationException(Exception)&gt;signal</div><div>0x142cc378 s ProgressInitiationException&gt;display:at:from:to:during:</div><div>
0x142ec94c s ProgressInitiationException class&gt;display:at:from:to:during:</div><div>0x142ec9a8 s ByteString(String)&gt;displayProgressAt:from:to:during:</div><div>0x142eca04 s ByteString(String)&gt;displayProgressFrom:to:during:</div>
<div>0x142cc1f0 s [] in MCPackageLoader&gt;basicLoad</div><div>0x142cc24c s BlockClosure&gt;on:do:</div><div>0x142cc168 s [] in MCPackageLoader&gt;basicLoad</div></div><div><div>0x142cc10c s BlockClosure&gt;on:do:</div><div>
0x142cc098 s CurrentReadOnlySourceFiles class&gt;cacheDuring:</div><div>0x142cc01c s [] in MCPackageLoader&gt;basicLoad</div><div>0x142ec3ec s BlockClosure&gt;ensure:</div><div>0x142cbf94 s [] in MCPackageLoader&gt;basicLoad</div>
<div>0x142ec448 s BlockClosure&gt;ensure:</div><div>0x142cbf20 s RecentMessages&gt;suspendWhile:</div><div>0x142cbeac s MCPackageLoader&gt;basicLoad</div><div>0x142ec4a4 s [] in MCPackageLoader&gt;loadWithNameLike:</div><div>
0x142ec500 s BlockClosure&gt;ensure:</div><div>0x142cbcf0 s MCPackageLoader&gt;useChangeSetNamed:during:</div><div>0x142ec55c s MCPackageLoader&gt;useNewChangeSetNamedLike:during:</div><div>0x142cb6ec s MCPackageLoader&gt;loadWithNameLike:</div>
<div>0x14200910 s MCVersionLoader&gt;load</div><div>0x1420096c s MCVersionLoader class&gt;loadVersion:</div><div>0x142009c8 s MCVersion&gt;load</div></div><div><br></div><div>The 0x142d4ed8 s MCMethodDefinition&gt;removeSelector:fromClass: activation is indeed trying to unload Stream&gt;&gt;nextPutAll:, but why?</div>
<div><br></div><div>I don&#39;t have much time to investigate over the weekend but someone else with more Monticello smarts may figure this out..</div><div><div class="gmail_extra"><br>BTW, it may be related to hashing.  When I try the same thing in a Spur-ised Squeak4.5-13680.image (where I&#39;m loading a patched version of Collections-ul.564.mcz to restore source to the changed methods in Character that have no source after the bootstrap) it locks up at a similar point but die to a deadlock in preference access.  So I suspect that there&#39;s some instability in Monticello loading that&#39;s affected by the different identityHashes obtained in Spur and SqueakV3.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">I had hoped to use the release candidate on Spur before using it on SqueakV3 but hit this bug.  Hubris :-(   ... ;-)</div><div class="gmail_extra"><br><div class="gmail_quote">
On Thu, Feb 20, 2014 at 10:59 AM, Chris Muller <span dir="ltr">&lt;<a href="mailto:asqueaker@gmail.com" target="_blank">asqueaker@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><a href="http://ftp.squeak.org/4.5alpha/Squeak4.5-13680.zip" target="_blank">http://ftp.squeak.org/4.5alpha/Squeak4.5-13680.zip</a><br>


<br>
Changes since 13675:<br>
<br>
- Fix cloning MessageSet&#39;s.<br>
- Pointer-chaser, display the id-hash of Morph&#39;s in the path to chased object.<br>
- Sending basicNew to CompiledMethod may crash the VM, so don&#39;t do that.<br>
- Fix incorrect display of underscore and caret in case of WideString<br>
displayed in DejaVu sans Strike fonts.<br></blockquote></div><div><br></div>-- <br>best,<div>Eliot</div>
</div></div></div>