[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]

integerRegion problems

Date: Wed, 25 Apr 90 11:27:37 PDT
   From: tribble (Eric Dean Tribble)

   'IntegerRegion allIntegers distinctions' breaks!

   IntegerRegion isEqual: assumed that MuTables (pointed to as
   ScruTables) compare based on content.  As a result, 'IntegerRegion make
   isEqual: IntegerRegion make' returns false!  I made a fix for this that
   compares element by element.  (Does hashForEqual do the right thing?).


This is a long-standing moose in the table code. MuTables & MuSets should
implement isEqual and hashForEqual based on EQ, since they might
change after they've been used as a table key (for example). In the
current image, Scru implements isEqual by comparing content, then Mu
overrides to do EQ comparison. This is confusing. I suggest the
following solution:

	-- add isEquivalent: and hashForEquivalent messages to Scru
	protocol that are defined to compare contents

	-- have Immu redefine isEqual and hashForEqual to use
	equivalence, and have Mu explicitly define them to be EQ

Since you raised the issue, do you want to do it? (I don't think it
will take very long).