CompiledMethod equivalence in the Tweak image

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

CompiledMethod equivalence in the Tweak image

Chris Muller-3
I'd like to begin looking into Tweak, but I want to make sure all my
test suites can pass in the image.

In the Tweak image, my ObjectSerializationTestCase failed on a
SortedCollections sortBlock's method (a CompiledMethod).  The Tweak
image has the new MethodProperties introduced with 3.9, but the
equivalence (#=) method is not updated like it is in the 3.9 image,
which excludes the last two literals:

In 3.9:

        (myLits := self literals allButLast: 2) = (otherLits := method
literals allButLast: 2) ifFalse:
                [myLits size = otherLits size ifFalse: [^ false].

In 3.8 / Tweak:

        (myLits := self literals) = (otherLits := method literals) ...

The second-to-last literal is a MethodProperties, which does not define #=.

3.8 doesn't have MethodProperties so my serialization tests pass with
the old equivalence check.  Tweak has the Method properties but the
3.8 code.

Is it safe to update my Tweak image with the equivalence check from 3.9?