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