[Vm-dev] Something weird with prim 83/84/100

Boris Shingarov boris at shingarov.com
Fri Oct 21 13:54:15 UTC 2022


Dear fellow VM hackers:
There is something about the #perform: prims I do not understand.

If I send #perform: not giving it enough arguments, I would expect the 
primitive to fail through to the Smalltalk code in 
Object>>perform:withArguments:inSuperclass:.

But, sometimes it's indeed what happens and sometimes it's not what 
happens.  In the attached test , if you run testDirect (in this 
morning's Squeak6) you will end up in the debugger (expected), but if 
you wrap in an extra send such as testIndirect, the prim will pass nil 
for the missing argument (to me this is unexpected).  I also tested in 
last night's build of Cuis, and in Pharo8 (in the latter, the behavior 
is even weirder: if you replace the fail code to answer #somethingElse, 
you get #(somethingElse false false) instead of the #(false false false) 
in Squeak).

Anyone has any thoughts on this?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CurriedPerformTest.st
Type: application/squeak-changeset
Size: 626 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20221021/89ae7ff1/attachment.bin>


More information about the Vm-dev mailing list