Hi guys,
some years ago, its been a long discussion on squeak mailing list about that..
imo association should compare keys. not values.
But self-referencing data structures is and will be a problem. And
there is no easy solution:
a := Array new: 1.
a at:1 put: a.
a = a
--
On 9 December 2012 17:20, Sven Van Caekenberghe <sven@stfx.eu> wrote:
> I am not pro, see my comments in the issue tracker.
>
> For example,
>
> | a |
> a := Association key: #foo.
> (a value: (Array with: a)) = (a value: (Array with: a)).
>
> would still loop.
>
> Loops like that cannot be prevented locally.
>
> See my other mail about prevent stack overflow.
>
> On 09 Dec 2012, at 16:32, St�phane Ducasse <stephane.ducasse@inria.fr> wrote:
>
>> Hi guys
>>
>> what is the impact on method =?
>> Any ideas?
>>
>> Stef
>> On Dec 8, 2012, at 5:57 PM, Ciprian Teodorov wrote:
>>
>>> It seems that this issue can be fixed by modifying the = method in Association.
>>>
>>> Association>>= anAssociation
>>> � � �^ super = anAssociation
>>> � � � � � � �and: [
>>> � � � � � � � � � � �value == anAssociation value
>>> � � � � � � � � � � � � � � �ifTrue: [ true ]
>>> � � � � � � � � � � � � � � �ifFalse: [ value = anAssociation value ] ]
>>>
>>> Cheers...
>>>
>>> On Sat, Dec 8, 2012 at 5:35 PM, Benoit St-Jean <bstjean@yahoo.com> wrote:
>>> Same behavior in Squeak 4.2 btw
>>>
>>> -----------------
>>> Benoit St-Jean
>>> Yahoo! Messenger: bstjean
>>> A standpoint is an intellectual horizon of radius zero.
>>> (Albert Einstein)
>>> From: Ciprian Teodorov <ciprian.teodorov@gmail.com>
>>> To: Pharo-project@lists.gforge.inria.fr
>>> Sent: Saturday, December 8, 2012 11:11:44 AM
>>> Subject: Re: [Pharo-project] strange == behavior
>>>
>>> by the way, we have the same thing in 1.0, 1.1, 1.3.
>>>
>>> On Sat, Dec 8, 2012 at 5:10 PM, Ciprian Teodorov <ciprian.teodorov@gmail.com> wrote:
>>> Hi guys,
>>>
>>> Playing with some recursive data-structure I have found some strange piece of behavior in Pharo.
>>>
>>> If in an workspace we try to evaluate:
>>>
>>> a := Association new.
>>> a key: 3.
>>> a value: a.
>>> a == a value.
>>>
>>> the first time we get "true", the second we get an infinite loop...
>>>
>>> A simple workaround is to declare "a":
>>>
>>> |a|
>>> a := Association new.
>>> a key: 3.
>>> a value: a.
>>> a == a value.
>>>
>>> My question now is: Is this a bug or a feature ?
>>> By the way the same thing happens in 1.4 and 2.0 equally.
>>>
>>> By the way, in Pharo 2.0 doing cmd + . erases the lines selected in the workspace replacing them by "."
>>>
>>> Cheers,
>>> --
>>> Dr. Ciprian TEODOROV
>>> Ing�nieur D�veloppement CAO
>>>
>>> t�l : 06 08 54 73 48
>>> mail : ciprian.teodorov@gmail.com
>>> www.teodorov.ro
>>>
>>>
>>>
>>> --
>>> Dr. Ciprian TEODOROV
>>> Ing�nieur D�veloppement CAO
>>>
>>> t�l : 06 08 54 73 48
>>> mail : ciprian.teodorov@gmail.com
>>> www.teodorov.ro
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Dr. Ciprian TEODOROV
>>> Ing�nieur D�veloppement CAO
>>>
>>> t�l : 06 08 54 73 48
>>> mail : ciprian.teodorov@gmail.com
>>> www.teodorov.ro
>>
>>
>
>
Best regards,
Igor Stasenko.