Hi Eliot,
What about super sends ?

Object>>beNasty
    ^self

Collection>>beNasty
     self addLast; 1.
     super beNasty.

OrderedCollection>>beNasty
     self addLast; 1.
     super beNasty.

Do you think you can remove OrderedCollection>>beNasty ?

Nicolas

2010/5/19 Stéphane Ducasse <[email protected]>:
> Elliot I think that we already took into changes made by nicolas.
>
> Stef
>
> On May 19, 2010, at 2:35 AM, Eliot Miranda wrote:
>
>> Hi Lukas,
>>
>> On Tue, May 18, 2010 at 8:17 AM, Lukas Renggli <[email protected]> wrote:
>> > Same method in different classes do not  equal eachother though, if I've 
>> > not made a mistake in:
>> >
>> > |mrtCp|
>> > mrtCp := (InstructionClient>>#methodReturnTop) copy.
>> > mrtCp literalAt: 2 put: #ContextPart->ContextPart.
>> > (InstructionClient>>#methodReturnTop) = mrtCp
>>
>> For methods that send super the behavior changes if you change the
>> class binding. That's probably why it is not ignored for #=.
>>
>> In fact I would suggest to #= from compiled method altogether, in most
>> cases it doesn't do what one would expect in a given context anyway.
>> There are too many and possibility completely different
>> interpretations of #= for CompiledMethod. #== is the only decent
>> implementation for this class.
>>
>> I sympathise but I think there is a reasonable default interpretation of #= 
>> for CompiledMethod that is what most people want.  The intent is to answer 
>> whether two methods have the same execution semantics and same method tags & 
>> properties, e.g. if one were to compile the same source code in two 
>> different classes that had the same inst var offsets for the inst vars in 
>> the methods, then one would want those methods to be #=.  This allows tests 
>> such as
>> - checking whether a subclass has a method that is #= to a superclass, and 
>> is hence redundant.
>> - checking whether a set of sourceless methods are equivalent so that they 
>> may be shared under different selectors (e.g. think auto-generated accessor 
>> methods which can be cached and shared)
>> So for this informal definition the selector and the class are irrelevant, 
>> but bytecodes and literals (apart from the selector and method class 
>> literals) are relevant.  Its almost a short-cut comparison of error-free 
>> decompilation, although there are differences in the bytecode that wouldn't 
>> show in decompilation (e.g. using long branches for short branches).
>>
>> The current definition serves for compiler hackers as it tells you 
>> accurately whether a compiler change has an effect on the bytecode, can be 
>> used to test whether compilation followed by decompilation followed by 
>> recompilation has an effect, etc.  While it may not be a universal code 
>> comparison method it has met my needs throughout the closure compiler so at 
>> least I'm pretty happy with it.
>>
>> (pleading for CompiledMethod>>#= to stay the same as the current Squeak 4.1 
>> definition, which ever since Nichoas Celier's float compilation changes, is 
>> pretty darned good).
>>
>> best
>> Eliot
>>
>>
>>
>>
>>
>> Lukas
>>
>> >
>> > At the very least, the branches of
>> > index = 1 and: [ #(117 120) includes: self primitive ])
>> >                                        ifTrue: [
>> >
>> > REALLY deserve some comments...
>> >
>> > Cheers,
>> > Henry
>> >
>> >
>> >
>> > _______________________________________________
>> > Pharo-project mailing list
>> > [email protected]
>> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>> >
>>
>>
>>
>> --
>> Lukas Renggli
>> www.lukas-renggli.ch
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to