#= and Dictionary, etc.

Patrick Logan patrickl at servio.gemstone.com
Tue Jan 20 19:55:00 UTC 1998


A few people here at Gemstone just finished a hallway discussion on
what #= should do for Dictionary. In particular should the values as
well as the keys be #= or should they be #== in order for the
Dictionary to be #=?

Squeak derives Dictionary from Set and uses Set>>= which means values
as well as keys only have to be #= and not #==.

VisualWorks and VisualAge never redefine #= so a Dictionary is #= to
another iff it is #==.

I would be interested in some historical perspective or the
perspective of other Squeakers.

BTW Gemstone has the same behavior as Squeak, although it does not
derive Dictionary from Set. This led to practical problems of
cycles between values and the dictionaries that contain them. Squeak
has the same problem. So Gemstone has to resolve the issue to
avoid stack overflows.

I personally would define Dictionary>>= to test for equality of keys
but identity of values.

The ANSI proposal does not say anything about #= in its definition of
<AbstractDictionary> protocol. (Likely due to the various behaviors of
the current vendors.)

-- 
Patrick Logan                 mailto:patrickl at gemstone.com
Voice 503-533-3365            Fax   503-629-8556
Gemstone Systems, Inc         http://www.gemstone.com





More information about the Squeak-dev mailing list