On Wed, Oct 12, 2011 at 10:26 AM, Mariano Martinez Peck < [email protected]> wrote:
> > > > On Wed, Oct 12, 2011 at 6:44 PM, Eliot Miranda <[email protected]>wrote: > >> >> >> >> On Wed, Oct 12, 2011 at 8:38 AM, Levente Uzonyi <[email protected]> wrote: >> >>> On Wed, 12 Oct 2011, Clara Allende wrote: >>> >>> Hi guys, >>>> >>>> I'm wondering, why? >>>> >>>> ProtoObject>> ~~ anObject >>>> "Answer whether the receiver and the argument are not the same object >>>> (do not have the same object pointer)." >>>> >>>> self == anObject >>>> ifTrue: [^ false] >>>> ifFalse: [^ true] >>>> >>>> Instead of: >>>> ProtoObject>> ~~ anObject >>>> "Answer whether the receiver and the argument are not the same object >>>> (do not have the same object pointer)." >>>> >>>> ^(self == anObject) not >>>> >>>> And why? >>>> Object >> ~= anObject >>>> "Answer whether the receiver and the argument do not represent the >>>> same object." >>>> >>>> ^self = anObject == false >>>> >>>> Instead of >>>> Object>> ~= anObject >>>> "Answer whether the receiver and the argument do not represent the >>>> same object." >>>> >>>> ^(self = anObject) not. >>>> >>>> Is there any particular reason for this that I'm missing? >>>> >>> >>> Performance. >>> >> >> But better still is to add a ~~ primitive. I did this for VisualWorks. >> e.g. primitive 150 is free. why don't we use that for 1.4/4.3? >> >> > > with or without special bytecode associated? > Initially without. Dynamic frequency is low, and primitive adds significant performance over the non-primitive version. One could use the blockCopy: special bytecode but I'd wait until doing a complete bytecode set redesign. > > > >> >>> >>> Levente >>> >>> Thanks in advance! >>>> -- >>>> >>>> "*Most good programmers do programming not because they expect to get >>>> paid >>>> or get adulation by the public, but because it is fun to program.*" >>>> >>>> Linus Torvalds >>>> >>>> >>> >> >> >> -- >> best, >> Eliot >> >> >> > > > -- > Mariano > http://marianopeck.wordpress.com > > > -- best, Eliot
