On Tue, May 1, 2012 at 9:22 PM, Francisco Garau
<[email protected]>wrote:

> Your code snippet is comparing the associations. The below one evaluates
> to true:
>
> (Smalltalk globals associationAt: #ScriptLoader) value
>  ==
> ((SmalltalkImage >> #shrinkToCore) literalAt: 4) value
>
>
Yes, but the literals of CompiledMethod that refer to classes should have
the SAME association as Smalltalk globals. In fact, that's the reason why
we have:

Association >> #literalEqual: otherLiteral
    "Answer true if the receiver and otherLiteral represent the same
literal.
    Variable bindings are literally equals only if identical.
    This is how variable sharing works, by preserving identity and changing
only the value."
    ^self == otherLiteral

instead of the Object implementation.



> On 1 May 2012 17:52, Mariano Martinez Peck <[email protected]> wrote:
>
>> (Smalltalk globals associationAt: #ScriptLoader) == ((SmalltalkImage >>
>> #shrinkToCore) literalAt: 4)
>> gives false when it should be true.  If I do a Compiler recompileAll it
>> gets fixed. So, my question is, is that normal? how could that happen?
>> is there any real problem behind?
>>
>> anyway, can we do a recompileAll for the moment?
>>
>> thanks!
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>>
>


-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to