<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
(Actually the first didn't build quite the whole tree, but very nearly;<BR>
a small number of packages remained to be fixed).<BR>
 <BR>
I avoided hijacking a different thread, so I'll say it here instead:<BR>
  I'm surprised we are ok with the runtime checks of INTEGER := LONGINT<BR>   but not the very natural INTEGER + LONGINT => LONGINT.<BR>
   You first find what all the expression terms are assignable to, do the math<BR>
    there, and that is the result. You can even adopt that simple rule for MOD,<BR>
    though MOD is a "very reducing" function and it is statically knowable<BR>
    I believe that widening isn't really needed.<BR>
 <BR>
 - Jay<BR> <BR>
<HR id=stopSpelling>
From: jay.krell@cornell.edu<BR>To: hosking@cs.purdue.edu<BR>Date: Sun, 10 Jan 2010 20:45:23 +0000<BR>CC: m3devel@elegosoft.com<BR>Subject: Re: [M3devel] what to do about file sizes being 32bits?<BR><BR>
<STYLE>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Verdana;}
</STYLE>
I've sent various patches.<BR>I believe the first had no compiler changes and built the whole tree.<BR>The second had maximum compiler changes (except for FOR) and built the whole tree.<BR>The third had only assignability and built just libm3.<BR>  To build the whole tree you'd pretty much add all of the first diff. A few lines<BR>   could be saved but not much. Assignability doesn't buy very much.<BR>   I can do that if you want: assignability and build the whole tree.<BR>   But we do know just about what it looks like.<BR> <BR> - Jay<BR><BR><BR> <BR>
<HR id=ecxstopSpelling>
From: hosking@cs.purdue.edu<BR>Date: Sun, 10 Jan 2010 09:30:00 -0500<BR>To: jay.krell@cornell.edu<BR>CC: m3devel@elegosoft.com<BR>Subject: Re: [M3devel] what to do about file sizes being 32bits?<BR><BR><BASE>I still want to see the patch...<BR>
<DIV><BR class=ecxecxwebkit-block-placeholder></DIV>
<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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-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=ecxecxApple-style-span>
<DIV><FONT class=ecxecxApple-style-span color=#0000ff><FONT class=ecxecxApple-style-span face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxApple-style-span>Antony Hosking</SPAN></SPAN></FONT></FONT><FONT class=ecxecxApple-style-span face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxApple-style-span><SPAN class=ecxecxApple-converted-space> </SPAN>|<SPAN class=ecxecxApple-converted-space> </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxApple-style-span>Associate Professor</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxApple-style-span> | Computer Science | Purdue University</SPAN></SPAN></FONT></DIV>
<DIV><FONT class=ecxecxApple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxApple-style-span>305 N. University Street | West Lafayette | IN 47907 | USA</SPAN></FONT></DIV>
<DIV><FONT class=ecxecxApple-style-span color=#0000ff face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxApple-style-span>Office</SPAN></SPAN></FONT><FONT class=ecxecxApple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxApple-style-span>  <?XML:NAMESPACE PREFIX = SKYPE /><SKYPE:SPAN id=softomate_v3_highlight_0 class=skype_v3_tb_injection title=Call this phone number in United States of America with Skype: +17654946001 type=".flex" rtl="1" skypeid="0" skypeaction="call" nof="" isfax="" freecall="" fwidth=".w16" mode=".compat" path="file://C:/Users/jay/Temp/__SkypeIEToolbar_Cache/e70d95847a8f5723cfca6b3fd9946506/static/" durex2="%DADDYHEIGHT%" durex="%DADDYWIDTH%" context="+1 765 494 6001"><SKYPE:SPAN id=skype_v3_tb_img_r0 class=skype_v3_tb_imgR></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_text0 class=skype_v3_tb_injectionIn><SKYPE:SPAN id=skype_v3_tb_innerText0 class=skype_v3_tb_innerText> +1 765 494 6001 </SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_s0 class=skype_v3_tb_imgS></SKYPE:SPAN><SKYPE:SPAN style="BACKGROUND-IMAGE: url(file://C:/Users/jay/Temp/__SkypeIEToolbar_Cache/e70d95847a8f5723cfca6b3fd9946506/static/inactive_a.compat.flex.w16.gif)" id=skype_v3_tb_droppart_0 class=skype_v3_tb_imgA title="Skype actions" skypeid="0" skypeaction="drop" skypesms="0"><SKYPE:SPAN style="BACKGROUND-IMAGE: url(file://C:/Users/jay/Temp/__SkypeIEToolbar_Cache/e70d95847a8f5723cfca6b3fd9946506/static/famfamfam/US.gif)" id=skype_v3_tb_img_f0 class=skype_v3_tb_imgFlag></SKYPE:SPAN></SKYPE:SPAN></SKYPE:SPAN> <SKYPE:SPAN id=softomate_v3_print_0 class=skype_v3_tb_injection_print context="">+1 765 494 6001</SKYPE:SPAN>   <SKYPE:SPAN id=softomate_v3_highlight_1 class=skype_v3_tb_injection title=Call this phone number in United States of America with Skype: +17654946001 type=".flex" skypeid="1" skypeaction="call" nof="" isfax="" freecall="" fwidth=".w16" mode=".compat" path="file://C:/Users/jay/Temp/__SkypeIEToolbar_Cache/e70d95847a8f5723cfca6b3fd9946506/static/" durex2="%DADDYHEIGHT%" durex="%DADDYWIDTH%" context="+1 765 494 6001"><SKYPE:SPAN style="BACKGROUND-IMAGE: url(file://C:/Users/jay/Temp/__SkypeIEToolbar_Cache/e70d95847a8f5723cfca6b3fd9946506/static/inactive_a.compat.flex.w16.gif)" id=skype_v3_tb_droppart_1 class=skype_v3_tb_imgA title="Skype actions" skypeid="1" skypeaction="drop" skypesms="0"><SKYPE:SPAN style="BACKGROUND-IMAGE: url(file://C:/Users/jay/Temp/__SkypeIEToolbar_Cache/e70d95847a8f5723cfca6b3fd9946506/static/famfamfam/US.gif)" id=skype_v3_tb_img_f1 class=skype_v3_tb_imgFlag></SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_s1 class=skype_v3_tb_imgS></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_text1 class=skype_v3_tb_injectionIn><SKYPE:SPAN id=skype_v3_tb_innerText1 class=skype_v3_tb_innerText> +1 765 494 6001 </SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_r1 class=skype_v3_tb_imgR></SKYPE:SPAN></SKYPE:SPAN> <SKYPE:SPAN id=softomate_v3_print_1 class=skype_v3_tb_injection_print context="">+1 765 494 6001</SKYPE:SPAN>  |<SPAN class=ecxecxApple-converted-space> </SPAN></SPAN></SPAN></FONT><FONT class=ecxecxApple-style-span color=#0000ff face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxApple-style-span>Mobile</SPAN></SPAN></FONT><FONT class=ecxecxApple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxApple-style-span><SPAN class=ecxecxApple-converted-space> </SPAN> <SKYPE:SPAN id=softomate_v3_highlight_2 class=skype_v3_tb_injection title=Call this phone number in United States of America with Skype: +17654275484 type=".flex" skypeid="2" skypeaction="call" nof="" isfax="" freecall="" fwidth=".w16" mode=".compat" path="file://C:/Users/jay/Temp/__SkypeIEToolbar_Cache/e70d95847a8f5723cfca6b3fd9946506/static/" durex2="%DADDYHEIGHT%" durex="%DADDYWIDTH%" context="+1 765 427 5484"><SKYPE:SPAN style="BACKGROUND-IMAGE: url(file://C:/Users/jay/Temp/__SkypeIEToolbar_Cache/e70d95847a8f5723cfca6b3fd9946506/static/inactive_a.compat.flex.w16.gif)" id=skype_v3_tb_droppart_2 class=skype_v3_tb_imgA title="Skype actions" skypeid="2" skypeaction="drop" skypesms="1"><SKYPE:SPAN style="BACKGROUND-IMAGE: url(file://C:/Users/jay/Temp/__SkypeIEToolbar_Cache/e70d95847a8f5723cfca6b3fd9946506/static/famfamfam/US.gif)" id=skype_v3_tb_img_f2 class=skype_v3_tb_imgFlag></SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_s2 class=skype_v3_tb_imgS></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_text2 class=skype_v3_tb_injectionIn><SKYPE:SPAN id=skype_v3_tb_innerText2 class=skype_v3_tb_innerText> +1 765 427 5484 </SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_r2 class=skype_v3_tb_imgR></SKYPE:SPAN></SKYPE:SPAN> <SKYPE:SPAN id=softomate_v3_print_2 class=skype_v3_tb_injection_print context="">+1 765 427 5484</SKYPE:SPAN>   <SKYPE:SPAN id=softomate_v3_highlight_3 class=skype_v3_tb_injection title=Call this phone number in United States of America with Skype: +17654275484 type=".flex" skypeid="3" skypeaction="call" nof="" isfax="" freecall="" fwidth=".w16" mode=".compat" path="file://C:/Users/jay/Temp/__SkypeIEToolbar_Cache/e70d95847a8f5723cfca6b3fd9946506/static/" durex2="%DADDYHEIGHT%" durex="%DADDYWIDTH%" context="+1 765 427 5484"><SKYPE:SPAN style="BACKGROUND-IMAGE: url(file://C:/Users/jay/Temp/__SkypeIEToolbar_Cache/e70d95847a8f5723cfca6b3fd9946506/static/inactive_a.compat.flex.w16.gif)" id=skype_v3_tb_droppart_3 class=skype_v3_tb_imgA title="Skype actions" skypeid="3" skypeaction="drop" skypesms="1"><SKYPE:SPAN style="BACKGROUND-IMAGE: url(file://C:/Users/jay/Temp/__SkypeIEToolbar_Cache/e70d95847a8f5723cfca6b3fd9946506/static/famfamfam/US.gif)" id=skype_v3_tb_img_f3 class=skype_v3_tb_imgFlag></SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_s3 class=skype_v3_tb_imgS></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_text3 class=skype_v3_tb_injectionIn><SKYPE:SPAN id=skype_v3_tb_innerText3 class=skype_v3_tb_innerText> +1 765 427 5484 </SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_r3 class=skype_v3_tb_imgR></SKYPE:SPAN></SKYPE:SPAN> <SKYPE:SPAN id=softomate_v3_print_3 class=skype_v3_tb_injection_print context="">+1 765 427 5484</SKYPE:SPAN>  </SPAN></SPAN></FONT></DIV>
<DIV><FONT class=ecxecxApple-style-span face=GillSans-Light><BR class=ecxecxkhtml-block-placeholder></FONT></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN><BR class=ecxecxApple-interchange-newline></SPAN></DIV></SPAN></SPAN><BR class=ecxecxApple-interchange-newline></DIV><BR>
<DIV>
<DIV>On 10 Jan 2010, at 04:10, Jay K wrote:</DIV><BR class=ecxecxApple-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=ecxecxApple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=ecxecxhmmessage>Just a note that the version with ORD and VAL sprinkled everywhere<BR>is compatible with every proposal, *except* removing LONGINT altogether.<BR>It is ugly and tedious, but it does seem to work.<BR> <BR>Can we go with it??<BR> <BR>Maybe "clean it up" afterward, if the compiler allows more?<BR>You basically just search for "LONGINT" or "VAL" across the tree...<BR> <BR> <BR> - Jay<BR> <BR>
<HR id=ecxecxstopSpelling>
From:<SPAN class=ecxecxApple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>To:<SPAN class=ecxecxApple-converted-space> </SPAN><A href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</A><BR>Subject: RE: [M3devel] what to do about file sizes being 32bits?<BR>Date: Thu, 7 Jan 2010 11:22:37 +0000<BR><BR>I'm working on this..<BR>Attached is what I have so far.<BR>Posix needs work.<BR>Most code continues to not work for files >4GB on 32bit, but it is a start.<BR>It seems to me I shouldn't have o use VAL(i, LONGINT) to convert an INTEGER to a LONGINT, as all INTEGER values fit.<BR>Similarly I should be able to compare a LONGINT to 0 directly, instead of 0L.<BR>I'm not sure if the ToProc/FromProc stuff should use INTEGER/CARDINAL or LONGINT.<BR><BR>This gets as far as:<BR><BR>== package C:\dev2\cm3.2\m3-obliq\obliqrt ==<BR><BR> +++ C:\cm3\bin\cm3.exe  -build -DROOT=C:/dev2/cm3.2 -DCM3_VERSION_TEXT=d5.8.2 -<BR>DCM3_VERSION_NUMBER=050802 -DCM3_LAST_CHANGED=2009-07-15 +++<BR>--- building in NT386 ---<BR><BR>ignoring ..\src\m3overrides<BR><BR>\cm3\bin\stubgen -v1 -sno ObValue.RemVar   -T.M3IMPTAB<BR>m3cfe: (Error) failed to find source or AST for interface 'WordRep'<BR>"\cm3\pkg\m3core\src/word\GenWord.ig[\cm3\pkg\m3core\src/word\Word.i3]": semanti<BR>c analysis suppressed due to import errors<BR>"\cm3\pkg\m3core\src/text\Text.i3", line 16,0: semantic analysis suppressed due<BR>to import errors<BR>m3cfe: (Error) failed to find source or AST for interface 'LongRep'<BR>"\cm3\pkg\m3core\src/word\GenWord.ig[\cm3\pkg\m3core\src/word\Long.i3]": semanti<BR>c analysis suppressed due to import errors<BR>"\cm3\pkg\m3core\src/float/IEEE\Real.i3", line 11,0: semantic analysis suppresse<BR>d due to import errors<BR>"\cm3\pkg\m3core\src/float/IEEE\LongReal.i3", line 10,0: semantic analysis suppr<BR><BR><BR>Which is probably some other problem?<BR><BR><BR> - Jay<BR><BR><BR>
<HR id=ecxecxecxstopSpelling>
From:<SPAN class=ecxecxApple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>To:<SPAN class=ecxecxApple-converted-space> </SPAN><A href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</A><BR>Date: Thu, 7 Jan 2010 09:47:07 +0000<BR>Subject: Re: [M3devel] what to do about file sizes being 32bits?<BR><BR>I think I can fix everything in the cm3 tree if size is changed to LONGINT.<BR>Including Index(), Length(), Seek().<BR>It involves *many* uses of VAL and ORD, and indeed, it would help if:<BR><BR><BR>INC(longint, integer) was legal, which seems perfectly ok.<BR>longint := integer ditto<BR><BR><BR>Most of the toplevel users will end up throwing in ORD, as they<BR>require files to fit in memory/addressspace.<BR><BR><BR>There is still the matter of this will break too much code out there.<BR><BR><BR> - Jay<BR><BR>
<HR id=ecxecxecxecxstopSpelling>
From:<SPAN class=ecxecxApple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>To:<SPAN class=ecxecxApple-converted-space> </SPAN><A href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</A><BR>Date: Thu, 7 Jan 2010 06:59:31 +0000<BR>Subject: [M3devel] what to do about file sizes being 32bits?<BR><BR>File.i3:<BR><BR><BR>  Status = RECORD<BR>    type: Type;<BR>    modificationTime: Time.T;<BR>    size: CARDINAL (* oops... *)<BR>  END;<BR><BR><BR>What to do?<BR>[0.. higher than 7FFFFFFF] doesn't "just work".<BR>   higher than 7FFFFFFFF is not legal on 32bit, unless you put "L" on the end,<BR>   which presumably has some relationship to turning it into a LONGINT, which<BR>   causes users to fail to compile<BR><BR><BR>LONGINT doesn't "just work"<BR>   causes users to fail to compile<BR><BR><BR>stale imports -> compiling ProcessPosixCommon.i3<BR>stale imports -> compiling ProcessPosixCommon.m3<BR>stale imports -> compiling ProcessPosix.m3<BR>stale imports -> compiling FileRd.i3<BR>missing version stamps -> compiling FileRd.m3<BR>"../src/rw/FileRd.m3", line 73: incompatible argument types: MIN<BR>"../src/rw/FileRd.m3", line 140: types are not assignable<BR>2 errors encountered<BR>stale imports -> compiling FileWr.i3<BR>missing version stamps -> compiling FileWr.m3<BR>"../src/rw/FileWr.m3", line 92: incompatible argument types: MIN<BR>"../src/rw/FileWr.m3", line 108: incompatible argument types: MAX<BR>2 errors encountered<BR>st<BR><BR><BR>Change it to LONGINT, fix all the callers, and hope the damage isn't too great outside the cm3 tree?<BR><BR><BR>Change it to LONGINT only for 32bit platforms, somehow author the cm3 tree to work either way,<BR>hope the damage isn't too great outside the cm3 tree?<BR><BR><BR>Change it to LONGREAL so that it works immediately on NT386.<BR>  Same issues as above, breaks existing users.<BR><BR><BR>Maybe relax the language some, so that e.g.<BR>a:INTEGER;<BR>b:LONGINT;<BR><BR>b := a;<BR><BR>just works, see if it helps make more code compile with the change?<BR><BR>a := b is problematic of course, but what is wrong with b := a?<BR><BR> - Jay<BR><BR></DIV></SPAN></BLOCKQUOTE></DIV><BR>                                      </body>
</html>