<div>On Mon, Mar 1, 2021 at 16:05 David T. Lewis <<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>> wrote:<br></div><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"> <br>
On Mon, Mar 01, 2021 at 06:20:58PM +0100, <a href="mailto:stes@PANDORA.BE" target="_blank">stes@PANDORA.BE</a> wrote:<br>
>  <br>
> > Install primitiveArrayBecomeOneWayNoCopyHash as primitive 248<br>
> > replacing obsolete primitiveInvokeObjectAsMethod. <br>
> <br>
> Any news on this Tests-ObjectsAsMethods issue ?<br>
> <br>
> The purpose of those tests are not clear to me;<br>
> <br>
> Perhaps the change for the "primitives" which was made, can be reverted ?<br>
> <br>
> Possibly that creates a new problem for primitiveArrayBecomeOneWayNoCopyHash.<br>
> <br>
> David Stes<br>
><br>
<br>
You can consider this a bug in the most recent interpreter VMs. I had<br>
failed to notice that there is a hard coded reference to that primitive<br>
number within the VM itself, and this reference is now resulting in<br>
invocation of the wrong function.<br>
<br>
A trivial fix is to rearrange some primtive number assignments, but the<br>
correct thing to do is adopt the logic that Eliot uses in oscog so that<br>
the function is not invoked as a "primitive" at all.<br>
<br>
I'll try to follow up on this next week.<br>
<br>
Dave</blockquote><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">This test crashes SqueakJS, too. Could be the same primitive reassignment confusion. </div><div dir="auto"><br></div><div dir="auto">Can you describe this “hard coded reference”? Under what circumstances is a primitive being called without being an actual primitive?</div><div dir="auto"><br></div><div dir="auto">Vanessa</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)" dir="auto"></blockquote></div></div>