Hi,
I have put together a little analysis and got to 684 problematic pairs in the Moose image:
allCompiledMethods := Object withAllSubclasses flatCollect: #methods. problematicCases := OrderedCollection new. allCompiledMethods allPairsDo: [ :a :b | [a = b] on: Error do: [ problematicCases add: a->b ] ]. FileSystem disk workingDirectory / 'problematicCompiledMethodsEquality.txt' writeStreamDo: [ :stream | problematicCases associationsDo: [ :each | stream nextPutAll: '(', each key printString, ') = (', each value printString, ')'; cr ] ]
It takes a while to run this, so I put the result in the attachment. There are quite a number of problematic comparisons that can be reproduced in the original Pharo image, too, so I think we found a bug.
Cheers, Doru
On Mar 28, 2013, at 6:59 AM, Tudor Girba tudor@tudorgirba.com wrote:
Hi,
One of the Moose test runs a visualization that manipulates CompiledMethods, and it runs into an error when trying to find an entry inside a dictionary that has compiled methods as keys. In the end, I managed to isolate the problem that can be reproduced by:
- Download the moose image:
https://ci.inria.fr/moose/job/moose-latest-dev-4.8/lastSuccessfulBuild/artif...
- Execute:
(MooseIncomingQueryResult>>#selectDependencies:) = (MooseOutgoingInvocationQueryResult>>#selectDependencies:).
It seems it is a Pharo problem, or something related to these particular methods. Would anyone be interested in looking into this?
Cheers, Doru
-- www.tudorgirba.com
"Obvious things are difficult to teach."
-- www.tudorgirba.com
"Don't give to get. Just give."