Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!decwrl!pa.dec.com!src.dec.com!hudson@yough.ucc.umass.edu From: hudson@yough.ucc.umass.edu (Rick Hudson) Newsgroups: comp.lang.modula3 Subject: Typefinger printing in SRC M3 Message-ID: <9102111538.AA24105@yough.ucc.umass.edu> Date: 11 Feb 91 15:38:39 GMT Reply-To: Hudson@cs.umass.edu Lines: 17 In-Reply-To: saber.com!wyant@saber.COM's message of Mon, 4 Feb 91 09:36:37 EST <9102041436.AA28682@riposte> To: saber.com!wyant@saber.com Cc: m3 My surface impression from scanning the sources is that works as follows. Each type (scalar or constructed) has an operation to return a textual type name. When fingerprinting a constructed type (esp. an object/record) a string is constructed containing the recursive enumeration of all scalar type names used in that constructed type. This string is then treated as input to the "poly" function to compute a 64-bit fingerprint. Is this reasonably accurate or am I way out in left field >> This was my impression of how SRC M3 works also. It is a reasonable probabilistic approach to the problem. A non-probabilistic approach would be to use the fingerprint only for determining if types were *not* equivalent and actually compare structures before deciding if they were equivalent. - Rick