<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Is it really just me who finds the choices all fairly obvious?<BR>
You do the math in the wider type. Is that really surprising?<BR>
Am I just, like, brain washed with years of assumptions?<BR>
That's what Rodney's proposal said.<BR>
In the case of MOD and DIV, you can pause for thought<BR>
and maybe make them return a narrower type, but<BR>
if you just want to be simple and stay wide, that's ok.<BR>
<BR>
- Jay<BR><BR><BR> <BR>
<HR id=stopSpelling>
From: hosking@cs.purdue.edu<BR>Date: Sun, 10 Jan 2010 16:06:06 -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>
<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 face="'Gill Sans'"><SPAN style="FONT-SIZE: medium" class=ecxApple-style-span>Consider the following: + is overloaded to perform both INTEGER and LONGINT addition. When invoking + we choose the appropriate operation based on its operand types. Why do you think it is reasonable to assume that LONGINT+INTEGER should perform LONGINT + instead of INTEGER +? It is an *arbitrary* choice that you make which should give us pause in imposing that arbitrary choice in the language because it violates the principle of least surprise. Don't impose arbitrary choices that may confuse the programmer.</SPAN></FONT></DIV>
<DIV><FONT class=ecxApple-style-span color=#0000ff face="'Gill Sans'"><SPAN style="FONT-SIZE: medium" class=ecxApple-style-span>Prohibiting mixed-operand operations prevents bugs arising when one programmer inadvertently assumes that his personal arbitrary choice is not the one that the language actually implements.</SPAN></FONT></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></DIV></SPAN></SPAN></DIV>
<DIV><BR class=ecxwebkit-block-placeholder></DIV>
<DIV>Assignability is different in that the assignment operation is unambiguously tied to the type of its left-hand-side. Assignment forces a value into a particular representation -- that of the pre-allocated "storage" designated by the LHS. If the value is not compatible with that representation then we can raise a run-time error.</DIV><BR>
<DIV>
<DIV>On 10 Jan 2010, at 15:53, 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>(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=ecxstopSpelling>
From:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>To:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</A><BR>Date: Sun, 10 Jan 2010 20:45:23 +0000<BR>CC:<SPAN class=ecxApple-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><BR>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=ecxecxstopSpelling>
From:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</A><BR>Date: Sun, 10 Jan 2010 09:30:00 -0500<BR>To:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>CC:<SPAN class=ecxApple-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><BR>I still want to see the patch...<BR>
<DIV><BR class=ecxecxecxwebkit-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=ecxecxecxApple-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=ecxecxecxApple-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=ecxecxecxApple-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=ecxecxecxApple-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=ecxecxecxApple-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=ecxecxecxApple-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=ecxecxecxApple-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=ecxecxecxApple-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=ecxecxecxApple-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=ecxecxecxApple-style-span>
<DIV><FONT class=ecxecxecxApple-style-span color=#0000ff><FONT class=ecxecxecxApple-style-span face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxecxApple-style-span>Antony Hosking</SPAN></SPAN></FONT></FONT><FONT class=ecxecxecxApple-style-span face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxecxApple-style-span><SPAN class=ecxecxecxApple-converted-space> </SPAN>|<SPAN class=ecxecxecxApple-converted-space> </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxecxApple-style-span>Associate Professor</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxecxApple-style-span> | Computer Science | Purdue University</SPAN></SPAN></FONT></DIV>
<DIV><FONT class=ecxecxecxApple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxecxApple-style-span>305 N. University Street | West Lafayette | IN 47907 | USA</SPAN></FONT></DIV>
<DIV><FONT class=ecxecxecxApple-style-span color=#0000ff face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxecxApple-style-span>Office</SPAN></SPAN></FONT><FONT class=ecxecxecxApple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxecxApple-style-span><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxecxApple-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> <SPAN class=ecxApple-converted-space> </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=ecxApple-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: +17654946001 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 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_2 class=skype_v3_tb_imgA title="Skype actions" skypeid="2" 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_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 494 6001 </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 494 6001</SKYPE:SPAN> <SPAN class=ecxApple-converted-space> </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: +17654946001 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 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_3 class=skype_v3_tb_imgA title="Skype actions" skypeid="3" 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_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 494 6001 </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 494 6001</SKYPE:SPAN> <SPAN class=ecxApple-converted-space> </SPAN>|<SPAN class=ecxecxecxApple-converted-space> </SPAN></SPAN></SPAN></FONT><FONT class=ecxecxecxApple-style-span color=#0000ff face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxecxApple-style-span>Mobile</SPAN></SPAN></FONT><FONT class=ecxecxecxApple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxecxApple-style-span><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxecxApple-style-span><SPAN class=ecxecxecxApple-converted-space> </SPAN> <SKYPE:SPAN id=softomate_v3_highlight_4 class=skype_v3_tb_injection title=Call this phone number in United States of America with Skype: +17654275484 type=".flex" skypeid="4" 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_4 class=skype_v3_tb_imgA title="Skype actions" skypeid="4" 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_f4 class=skype_v3_tb_imgFlag></SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_s4 class=skype_v3_tb_imgS></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_text4 class=skype_v3_tb_injectionIn><SKYPE:SPAN id=skype_v3_tb_innerText4 class=skype_v3_tb_innerText> +1 765 427 5484 </SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_r4 class=skype_v3_tb_imgR></SKYPE:SPAN></SKYPE:SPAN> <SKYPE:SPAN id=softomate_v3_print_4 class=skype_v3_tb_injection_print context="">+1 765 427 5484</SKYPE:SPAN> <SPAN class=ecxApple-converted-space> </SPAN><SKYPE:SPAN id=softomate_v3_highlight_5 class=skype_v3_tb_injection title=Call this phone number in United States of America with Skype: +17654275484 type=".flex" skypeid="5" 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_5 class=skype_v3_tb_imgA title="Skype actions" skypeid="5" 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_f5 class=skype_v3_tb_imgFlag></SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_s5 class=skype_v3_tb_imgS></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_text5 class=skype_v3_tb_injectionIn><SKYPE:SPAN id=skype_v3_tb_innerText5 class=skype_v3_tb_innerText> +1 765 427 5484 </SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_r5 class=skype_v3_tb_imgR></SKYPE:SPAN></SKYPE:SPAN> <SKYPE:SPAN id=softomate_v3_print_5 class=skype_v3_tb_injection_print context="">+1 765 427 5484</SKYPE:SPAN> <SPAN class=ecxApple-converted-space> </SPAN> <SKYPE:SPAN id=softomate_v3_highlight_6 class=skype_v3_tb_injection title=Call this phone number in United States of America with Skype: +17654275484 type=".flex" skypeid="6" 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_6 class=skype_v3_tb_imgA title="Skype actions" skypeid="6" 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_f6 class=skype_v3_tb_imgFlag></SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_s6 class=skype_v3_tb_imgS></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_text6 class=skype_v3_tb_injectionIn><SKYPE:SPAN id=skype_v3_tb_innerText6 class=skype_v3_tb_innerText> +1 765 427 5484 </SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_r6 class=skype_v3_tb_imgR></SKYPE:SPAN></SKYPE:SPAN> <SKYPE:SPAN id=softomate_v3_print_6 class=skype_v3_tb_injection_print context="">+1 765 427 5484</SKYPE:SPAN> <SKYPE:SPAN id=softomate_v3_highlight_7 class=skype_v3_tb_injection title=Call this phone number in United States of America with Skype: +17654275484 type=".flex" skypeid="7" 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_7 class=skype_v3_tb_imgA title="Skype actions" skypeid="7" 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_f7 class=skype_v3_tb_imgFlag></SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_s7 class=skype_v3_tb_imgS></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_text7 class=skype_v3_tb_injectionIn><SKYPE:SPAN id=skype_v3_tb_innerText7 class=skype_v3_tb_innerText> +1 765 427 5484 </SKYPE:SPAN></SKYPE:SPAN><SKYPE:SPAN id=skype_v3_tb_img_r7 class=skype_v3_tb_imgR></SKYPE:SPAN></SKYPE:SPAN> <SKYPE:SPAN id=softomate_v3_print_7 class=skype_v3_tb_injection_print context="">+1 765 427 5484</SKYPE:SPAN> </SPAN></SPAN></FONT></DIV>
<DIV><FONT class=ecxecxecxApple-style-span face=GillSans-Light><BR class=ecxecxecxkhtml-block-placeholder></FONT></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN><BR class=ecxecxecxApple-interchange-newline></SPAN></DIV></SPAN></SPAN><BR class=ecxecxecxApple-interchange-newline></DIV><BR>
<DIV>
<DIV>On 10 Jan 2010, at 04:10, Jay K wrote:</DIV><BR class=ecxecxecxApple-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=ecxecxecxApple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=ecxecxecxhmmessage>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=ecxecxecxstopSpelling>
From:<SPAN class=ecxecxecxApple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>To:<SPAN class=ecxecxecxApple-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=ecxecxecxecxstopSpelling>
From:<SPAN class=ecxecxecxApple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>To:<SPAN class=ecxecxecxApple-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=ecxecxecxecxecxstopSpelling>
From:<SPAN class=ecxecxecxApple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>To:<SPAN class=ecxecxecxApple-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></DIV></SPAN><BR class=ecxApple-interchange-newline></BLOCKQUOTE></DIV><BR> </body>
</html>