You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Expected behavior: The primitive fails, and the string remains aaa. This is also what we are used to from primitive 61 (primitiveAtPut).
Actual behavior: The primitive fails, but the string slot has been changed to Character null.
(By the way, TruffleSqueak and SqueakJS show my expected behavior.)
Maybe there is some clever reasoning behind it, but a primitive that fails should not have any other side effects from my first impression. Is this a bug?
The text was updated successfully, but these errors were encountered:
The issue occurs with ByteString but not WideString, so "'aaa' asWideString tryPrimitive: 64 withArgs: {2. $b asciiValue}; yourself" does not show the problem, but "'aaa' copy tryPrimitive: 64 withArgs: {2. $b asciiValue}; yourself" shows the unexpected modification of the receiver.
Classic squeakvm also shows the expected behavior (the difference possibly related to Character not being immediate in the V3 object memory?).
But Cog VM with V3 image also shows the same problem, so it must not be directly related to V3 versus NewObjectMemory.
To reproduce, in Squeak, do this:
Expected behavior: The primitive fails, and the string remains
aaa
. This is also what we are used to from primitive 61 (primitiveAtPut).Actual behavior: The primitive fails, but the string slot has been changed to
Character null
.(By the way, TruffleSqueak and SqueakJS show my expected behavior.)
Maybe there is some clever reasoning behind it, but a primitive that fails should not have any other side effects from my first impression. Is this a bug?
The text was updated successfully, but these errors were encountered: