If I recall correctly the Squeak Central people aren't in any great rush to be "ANSI compliant". Squeak is to be the "next" Smalltalk (in the tradition of Smalltalk-80, Smalltalk-78, Smalltalk-76, -74, and -72, where each newer version made its predecessor obsolete). Looking through the draft version of the standard I have available to me it looks like the Association class is not part of the standard. The following is used as the definition of the Dictionary class:
1.1.1 Protocol: <Dictionary> Conforms To <abstractDictionary> Revision History Draft 1: April 20, 1995 -- Brian M. Barry Initial draft 9/97 group review/revision at Aylmer meeting Description Represents an unordered collection whose elements can be accessed using an explicitly assigned external key. Key equivalence is defined as sending the #= message. Messages none
So it looks like Association is simply an implementation artifact, as is the definition of the #= message when sent to an Association. So it looks like they're all "conforming" implementation.
Bob Jarvis The Timken Company
-----Original Message----- From: John Clarke [SMTP:clarkej@cuug.ab.ca] Sent: Thursday, May 27, 1999 2:27 PM To: 'squeak@cs.uiuc.edu' Subject: RE: Comparing Associations
Pierre,
I'm not familiar with the ANSI Smalltalk standard, nor am I aware whether Squeak attempts to conform to it.
But perhaps that's why Association uses the definition for = it inherits from LookupKey, which simply matches the keys.
I checked several implementations and found the semantics for = split as follows:
VS 3.0 and Squeak require that only the keys match, while VA and VW 3.0 require that the values match as well.
(I'm assuming that VA and VW follow the ANSI definition.)
BTW, did you get a response to whether Thinglab has been ported to VW? If so, I must have missed it.
John Clarke
Pierre wrote:
Why method = is not redefined properly in class Associations?
squeak-dev@lists.squeakfoundation.org