[BUG][FIX?] Discrepancies in Low Level Object Header tests

Andrew C. Greenberg werdna at gate.net
Thu Sep 2 04:41:38 UTC 1999


>On Wed 01 Sep, Andrew C. Greenberg wrote:
> > InterpreterProxy>>isIndexable: oop appears to operate inconsistently
> > with its ObjectMemory counterpart, operating directly on classes
> > rather than on instances of the classes, as do its counterparts
> > isWords, etc.
>It's certainly odd looking, but I suspect that noone has noticed any
>problem because it appears to not be used!

True that many plugins don't do comprehensive type checking or are 
tested using the interpreter.  I am presently finishing up a tool 
which I hope may change that.

>In general the proxy code needs to work as Smalltalk when simulated and yet
>keep the right name so that the translated sqVirtualMachine.c file will
>simply indirect #isIndexable straight to the isIndexable() function in the
>interp.c file. So the 'bug' you're looking at doesn't affect the VM at all!
>The other similar testing methods indirect to the oop's class, so your
>suggestion seems correct for the image code.

Understood that the generated code works correctly.  However, the 
Plugin under interpretation will not -- exiting with a message not 
found.  Alternatively, writing the code to suit the interpreter will 
break the VM test code.  Obviously, they should be consistent, and I 
think the proposed change was the intended function.  Comparing, for 
example, ObjectMemory>>isWords: with Interpreter>>isIndexable:, I 
believe that the breaking of symmetry was accidental, i.e., a 
bona-fide bug.

>Mind you, I can't find any ObjectMemory implementation of 
>#isIndexable, only an
>Interpreter one; you are looking at a 2.5 image? The method seems to be in
>'plugin support' category, rather than the more logical seeming place in
>ObjectMemory.

Correct, its in Interpreter.





More information about the Squeak-dev mailing list