[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
|