Hi Bert,<br><br><div class="gmail_quote">On Tue, Feb 26, 2013 at 3:26 PM, Bert Freudenberg <span dir="ltr">&lt;<a href="mailto:bert@freudenbergs.de" target="_blank">bert@freudenbergs.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 <br><div style="word-wrap:break-word"><br><div><div>On 2013-02-26, at 23:23, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt; wrote:</div><br><blockquote type="cite">
<br><br><div class="gmail_quote">On Tue, Feb 26, 2013 at 11:44 AM, Bert Freudenberg <span dir="ltr">&lt;<a href="mailto:bert@freudenbergs.de" target="_blank">bert@freudenbergs.de</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">

* I downloaded Squeak4.4-12327.zip from <a href="http://ftp.squeak.org/current_stable/" target="_blank">http://ftp.squeak.org/current_stable/</a><br>
* in preferences, change Update URL to trunk<br>
* load updates<br>
* Cog crashes (last log entry is Compiler-nice.256)<br>
* Interpreter does not crash<br>
<br>
This is on Mac with current Cog 4.0.2692.<br></blockquote><div><br></div><div>Phhh, is there any way to load a specific update?  What&#39;s the update number/id?  Of course I&#39;m too late to this party to debug the VM crash :(</div>
</div></blockquote><br></div><div>Before updating, in MCMcmUpdater class&gt;&gt;updateListFor: insert this before the return:</div><div><br></div><div><span style="white-space:pre-wrap">        </span>updateList := updateList reject: [:ea | ea key &gt; 222].</div>
<div><br></div><div>Then update - crash.</div></div></blockquote><div> </div><div>Thank you kindly.</div><div><br></div><div>Here&#39;s what I think is happening. </div></div><br clear="all"><div>The system is loading an update that reshapes the parser, causing it to lose some inst vars.</div>
<div>There is an activation of Parser&gt;&gt;parse:cue:noPattern:ifFail: on the stack.  It contains the statement</div><div><br></div><div>methNode := self method: noPattern context: cue context</div><div><br></div><div>The system crashes on the send of #context since the code to access the inst var cue is reading off the end of the parser and returns an invalid object (a header field from the next object in memory).   I think this is happening because Parser is getting reshaped during running.  When parse:cue:noPattern:ifFail: is jitted Parser&#39;s cue inst var is the 25th inst var. When the code is executed before the crash Parser only has 23 inst vars.  Boom.</div>
<div><br></div><div>I&#39;ll look at this more later on, but right now it looks like a phase issue with the parser being used during its own reshaping.</div><div><br></div><div>Here&#39;s the call stack.   The ? is simply that the version of #parse:cue:noPattern:ifFail has been replaced by a new one so the VM can&#39;t find the selector for it (it doesn&#39;t know that a method&#39;s penultimate literal can be its selector; it searches method dictionaries until it finds the method and uses the matching selector; because #parse:cue:noPattern:ifFail has been recompiled, there isn&#39;t a matching selector).</div>
<div><br></div><div><div>0xbffe0e34 M [] in Parser&gt;? 0x148bbf68: a(n) Parser</div><div>0xbffe0e50 M BlockClosure&gt;on:do: 0x148be774: a(n) BlockClosure</div><div>0xbffe0e7c M Parser&gt;? 0x148bbf68: a(n) Parser</div><div>
0xbffe0ea4 M Compiler&gt;translate:noPattern:ifFail: 0x148bbe98: a(n) Compiler</div><div>0xbffe0ec8 M Compiler&gt;compile:in:classified:notifying:ifFail: 0x148bbe98: a(n) Compiler</div><div>0xbffe0ef4 M Compiler&gt;compile:in:notifying:ifFail: 0x148bbe98: a(n) Compiler</div>
<div>0xbffe0f28 M Metaclass(Behavior)&gt;recompile:from: 0x148bb968: a(n) Metaclass</div><div>0xbffe15cc M Metaclass(ClassDescription)&gt;recompile:from: 0x148bb968: a(n) Metaclass</div><div>0xbffe15f0 M [] in Metaclass(Behavior)&gt;compileAllFrom: 0x148bb968: a(n) Metaclass</div>
<div>0xbffe1618 M MethodDictionary&gt;keysDo: 0x145ce2f8: a(n) MethodDictionary</div><div>0xbffe163c I Metaclass(Behavior)&gt;selectorsDo: 0x145ce2d8: a(n) Metaclass</div><div>0xbffe165c M Metaclass(Behavior)&gt;compileAllFrom: 0x148bb968: a(n) Metaclass</div>
<div>0xbffe168c I ClassBuilder&gt;privateNewSubclassOf:from: 0x148b8710: a(n) ClassBuilder</div><div>0xbffe16bc I ClassBuilder&gt;newSubclassOf:type:instanceVariables:from: 0x148b8710: a(n) ClassBuilder</div><div>0xbffe1730 I [] in ClassBuilder&gt;name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:unsafe: 0x148b8710: a(n) ClassBuilder</div>
<div>0xbffe2e14 M BlockClosure&gt;ensure: 0x148bb1ec: a(n) BlockClosure</div><div>0xbffe2e4c I ClassBuilder&gt;name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:unsafe: 0x148b8710: a(n) ClassBuilder</div>
<div>0xbffe2e90 I ClassBuilder&gt;name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category: 0x148b8710: a(n) ClassBuilder</div><div>0xbffe2ed8 I [] in MCClassDefinition&gt;createClass 0x1486daec: a(n) MCClassDefinition</div>
<div>0xbffe2ef4 M BlockClosure&gt;on:do: 0x148b8694: a(n) BlockClosure</div><div>0xbffe2f30 I MCClassDefinition&gt;createClass 0x1486daec: a(n) MCClassDefinition</div><div>0xbffe5d70 M MCClassDefinition&gt;load 0x1486daec: a(n) MCClassDefinition</div>
<div>0xbffe5d8c M [] in MCPackageLoader&gt;basicLoad 0x14877b2c: a(n) MCPackageLoader</div><div>0xbffe5da8 M BlockClosure&gt;on:do: 0x148b8530: a(n) BlockClosure</div><div>0xbffe5dc8 M [] in MCPackageLoader&gt;basicLoad 0x14877b2c: a(n) MCPackageLoader</div>
<div>0xbffe5e00 M [] in OrderedCollection(Collection)&gt;do:displayingProgress:every: 0x14877dbc: a(n) OrderedCollection</div><div>0xbffe5e20 M OrderedCollection&gt;do: 0x14877dbc: a(n) OrderedCollection</div><div>0xbffe5e50 M [] in OrderedCollection(Collection)&gt;do:displayingProgress:every: 0x14877dbc: a(n) OrderedCollection</div>
<div>0xbffe5e78 M [] in MorphicUIManager&gt;displayProgress:at:from:to:during: 0x14182b80: a(n) MorphicUIManager</div><div>0xbffe5e94 M BlockClosure&gt;on:do: 0x1487bd30: a(n) BlockClosure</div><div>0xbffe5ec0 M [] in MorphicUIManager&gt;displayProgress:at:from:to:during: 0x14182b80: a(n) MorphicUIManager</div>
<div>0xbffe5ee0 M BlockClosure&gt;ensure: 0x1487bc9c: a(n) BlockClosure</div><div>0xbffe5f04 M MorphicUIManager&gt;displayProgress:at:from:to:during: 0x14182b80: a(n) MorphicUIManager</div><div>0xbffe5f30 M ProgressInitiationException&gt;defaultResumeValue 0x1487b8fc: a(n) ProgressInitiationException</div>
</div><div><br></div><div>HTH</div>-- <br>best,<div>Eliot</div>