Hi Levente,<div><br></div><div>    try out the latest VMs.  They don&#39;t fix the bugs, but do change the symptoms.  e.g. in</div><div><br></div><div><div>c := [ 3 + PartialContinuationNotification signal ]</div><div>        on: PartialContinuationNotification</div>
<div>        do: [ :not | not continuation ].</div><div>c value: 4. &quot;==&gt; 7&quot;</div></div><div><br></div><div>there is now an MNU of #+ since 3 has been replaced by a MethodContext.</div><div><br></div><div>So if I could ask you could dig in again, that would help.</div>
<div><br></div><div>thanks!</div><div><br></div><div>best,</div><div>Eliot<br><br><div class="gmail_quote">2011/4/25 Levente Uzonyi <span dir="ltr">&lt;<a href="mailto:leves@elte.hu">leves@elte.hu</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
 <br>On Sun, 24 Apr 2011, Eliot Miranda wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Great catch Levente.  I&#39;ll try and track this down asap.<br>
</blockquote>
<br>
Great, thanks. I found that primitive 148 (#shallowCopy) doesn&#39;t copy the pc and the temporaries (indexable fields). But there are some other interesting cases, where the number of indexable fields are different. To reproduce this issue, replace ContextPart &gt;&gt; #copyTo: with the following:<br>

<br>
copyTo: aContext<br>
        &quot;Copy self and my sender chain down to, but not including, aContext.  End of copied chain will have nil sender.&quot;<br>
<br>
        | copy |<br>
        self == aContext ifTrue: [ ^nil ].<br>
        copy := self copy.<br>
        &quot;Cog doesn&#39;t copy the pc, so copy it here.&quot;<br>
        copy pc: pc.<br>
        copy basicSize = self basicSize ifFalse: [ self halt ].<br>
        sender ifNotNil: [ copy privSender: (sender copyTo: aContext) ].<br>
        ^copy<br>
<br>
Then evaluate<br>
<br>
c := [ 3 + [ :k | k ] shift ] reset.<br>
<br>
in the workspace in the image I prepared. Two halts will appear after each other (proceed after the first). In the first case the size of the copy is smaller than the original, in the second case it&#39;s larger.<br>
<br>
<br>
Levente<br></blockquote></div><br></div>