<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
I don't think they are the same.<BR>
 <BR>
TInt.EQ(Int{1,{16_FF}}, Int{2,{16_FF,16_FF}) => true, they are both -1<BR>
TWord.EQ(Int{1,{16_FF}}, Int{2,{16_FF,16_FF}) => false, they are 255 and 65535.<BR>
 <BR>
But maybe I'm confused. I should just test the above but not now.<BR>
I guess..it'd help if n was a constant, always 8.<BR>
Then TInt.EQ would work, and the CheckSign business would be gone/simpler.<BR>
Except then, we'd know, all other beings equal, initialization would be horribly broken.<BR>
 I don't fully understand that, but we need a 4 byte value.<BR>
 <BR>
 - Jay<BR> <BR>
<HR id=stopSpelling>
Subject: Re: [M3commit] CVS Update: cm3<BR>From: hosking@cs.purdue.edu<BR>Date: Wed, 10 Feb 2010 12:49:32 -0500<BR>CC: jkrell@elego.de; m3commit@elegosoft.com<BR>To: jay.krell@cornell.edu<BR><BR><BASE>But why do you need it.  Just use TInt.EQ.
<DIV><BR></DIV>
<DIV><BR>
<DIV><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxApple-style-span>
<DIV><FONT class=ecxApple-style-span color=#0000ff><FONT class=ecxApple-style-span face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxApple-style-span>Antony Hosking</SPAN></SPAN></FONT></FONT><FONT class=ecxApple-style-span face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxApple-style-span><SPAN class=ecxApple-converted-space> </SPAN>|<SPAN class=ecxApple-converted-space> </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxApple-style-span>Associate Professor</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxApple-style-span> | Computer Science | Purdue University</SPAN></SPAN></FONT></DIV>
<DIV><FONT class=ecxApple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxApple-style-span>305 N. University Street | West Lafayette | IN 47907 | USA</SPAN></FONT></DIV>
<DIV><FONT class=ecxApple-style-span color=#0000ff face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxApple-style-span>Office</SPAN></SPAN></FONT><FONT class=ecxApple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxApple-style-span><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxApple-style-span> +1 765 494 6001 |<SPAN class=ecxApple-converted-space> </SPAN></SPAN></SPAN></FONT><FONT class=ecxApple-style-span color=#0000ff face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxApple-style-span>Mobile</SPAN></SPAN></FONT><FONT class=ecxApple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxApple-style-span><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxApple-style-span><SPAN class=ecxApple-converted-space> </SPAN>+1 765 427 5484</SPAN></SPAN></FONT></DIV>
<DIV><FONT class=ecxApple-style-span face=GillSans-Light><BR class=ecxkhtml-block-placeholder></FONT></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN><BR class=ecxApple-interchange-newline></SPAN></DIV></SPAN></SPAN><BR class=ecxApple-interchange-newline></DIV><BR>
<DIV>
<DIV>On 10 Feb 2010, at 11:52, Jay K wrote:</DIV><BR class=ecxApple-interchange-newline>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=ecxhmmessage>xEQ should be EQ but I wasn't confident I wrote it correctly.<BR>So the actual EQ computes three values, including xEQ, asserts they are all the same, and returns one of them.<BR>Obviously a bit dumb, but I wasn't sure of myself and wanted something reasonably quickly so I could move on, and the obvious inefficiency wasn't/isn't a concern.<BR>It should be fairly clear from the code.<BR> <BR> - Jay<BR> <BR>> From:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</A><BR>> Date: Wed, 10 Feb 2010 10:23:08 -0500<BR>> To:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:jkrell@elego.de">jkrell@elego.de</A><BR>> CC:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:m3commit@elegosoft.com">m3commit@elegosoft.com</A><BR>> Subject: Re: [M3commit] CVS Update: cm3<BR>><SPAN class=ecxApple-converted-space> </SPAN><BR>> What does xEQ do exactly?<BR>><SPAN class=ecxApple-converted-space> </SPAN><BR>> PS You are stepping all over the work I have been doing to simplify TInt/TWord. So, be warned that your m3back code might break when I check things in.<BR>><SPAN class=ecxApple-converted-space> </SPAN><BR>> On 10 Feb 2010, at 14:46, Jay Krell wrote:<BR>><SPAN class=ecxApple-converted-space> </SPAN><BR>> > CVSROOT: /usr/cvs<BR>> > Changes by: jkrell@birch. 10/02/10 14:46:28<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > Modified files:<BR>> > cm3/m3-sys/m3middle/src/: TWord.m3<SPAN class=ecxApple-converted-space> </SPAN><BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > Log message:<BR>> > Just remove the size check in Extract.<BR>> > It appears it will just naturally treat the value as zero extended, which<BR>> > is reasonable and allows the rest to work.<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > This lets Tony's fix for initializing Longint work.<BR>> > To be reapplied shortly.<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > Deobfuscate Mask and Base here as well, like in TInt.<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > Cleanup my TWord.xEQ function (still could use further cleanup, clearly,<BR>> > once confidence is total)<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > Index: src/TWord.m3<BR>> > ===================================================================<BR>> > RCS file: /usr/cvs/cm3/m3-sys/m3middle/src/TWord.m3,v<BR>> > retrieving revision 1.10<BR>> > diff -u -r1.10 TWord.m3<BR>> > --- src/TWord.m3 8 Feb 2010 08:33:20 -0000 1.10<BR>> > +++ src/TWord.m3 10 Feb 2010 13:45:49 -0000<BR>> > @@ -16,8 +16,8 @@<BR>> > LShift = Word.LeftShift;<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > CONST<BR>> > - Mask = RShift (Word.Not (0), Word.Size - BITSIZE (IByte));<BR>> > - Base = Mask + 1;<BR>> > + Mask = 16_FF;<BR>> > + Base = 16_100;<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > (*------------------------------------------- unsigned integer operations ---*)<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > @@ -278,8 +278,8 @@<BR>> > BEGIN<BR>> > <*ASSERT n # 0*><BR>> > FOR i := n-1 TO 0 BY -1 DO<BR>> > - IF a.x[i] # b.x[i] THEN RETURN FALSE;<BR>> > - ELSIF a.x[i] # b.x[i] THEN RETURN FALSE;<BR>> > + IF a.x[i] # b.x[i] THEN<BR>> > + RETURN FALSE;<BR>> > END;<BR>> > END;<BR>> > FOR i := n TO a.n-1 DO IF a.x[i] # 0 THEN RETURN FALSE END END;<BR>> > @@ -449,10 +449,7 @@<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > PROCEDURE Extract (READONLY x: Int; i, n: CARDINAL; VAR r: Int): BOOLEAN =<BR>> > VAR w, b: INTEGER;<BR>> > - size := x.n * BITSIZE (IByte);<BR>> > BEGIN<BR>> > - IF i + n > size THEN RETURN FALSE; END;<BR>> > -<BR>> > RightShift (x, i, r);<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > w := n DIV BITSIZE (IByte);<BR>><SPAN class=ecxApple-converted-space> </SPAN><BR></DIV></SPAN></BLOCKQUOTE></DIV><BR></DIV>                                          </body>
</html>