<html><body bgcolor="#FFFFFF"><div>To repeat myself: you can reason about + via assignability, sort of. Of the two input types, you see which is assignable to which, and conceptually assign the inputs to two temporaries of that type. Assuming longint *not* assignable to integer, done. If it is assignable, pick the type that can guaranteeably hold all values of the two inputs. </div><div><br></div><div>In terms of implict vs. explict..I fallback to my usual claim: what people already probably think of as simple very often is not. The "red flag" of "complexity", I find, is raised very quickly, when people just don't like something. </div><div><br></div><div>I think there might be another way though. What if rd/wr users had to change *lots* of types from integer and cardinal to longint..and index by longint allowed? Maybe maybe that'd have a "pleasant" outcome. But still, given that NUMBER returns CARDINAL, still must end up mixing somehow, either via implicit or explicit conversion/assignment.</div><div><br></div><div><br></div><div>Btw are C's rules really so different or complicated? Don't they look like "assignability" too? The one problem I know of is in comparison if "full range" unsigned types with signed types. There are two equally good/bad options: I think called "sign preserving" and "magnitude preserving" aka "magnitude losing" and "sign losing". Either a large positive number becomes negative or a negative number becomes a large positive. I believe avoidance of this problem is why CARDINAL is "half range".</div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "> </span><br></div><div><br> - Jay (phone<span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.231373); -webkit-composition-frame-color: rgba(77, 128, 180, 0.231373); ">)</span></div><div><br>On Jan 10, 2010, at 2:02 PM, Jay K <<a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>> wrote:<br><br></div><div></div><blockquote type="cite"><div>
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: <a href="mailto:hosking@cs.purdue.edu"><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a></a><br>Date: Sun, 10 Jan 2010 16:06:06 -0500<br>To: <a href="mailto:jay.krell@cornell.edu"><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a></a><br>CC: <a href="mailto:m3devel@elegosoft.com"><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a></a><br>Subject: Re: [M3devel] what to do about file sizes being 32bits?<br><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" 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"><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a></a><br>To:<span class="ecxApple-converted-space"> </span><a href="mailto:hosking@cs.purdue.edu"><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a></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"><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a></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"><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a></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"><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a></a><br>CC:<span class="ecxApple-converted-space"> </span><a href="mailto:m3devel@elegosoft.com"><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a></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"> <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"><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a></a><br>To:<span class="ecxecxecxApple-converted-space"> </span><a href="mailto:m3devel@elegosoft.com"><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a></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"><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a></a><br>To:<span class="ecxecxecxApple-converted-space"> </span><a href="mailto:m3devel@elegosoft.com"><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a></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"><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a></a><br>To:<span class="ecxecxecxApple-converted-space"> </span><a href="mailto:m3devel@elegosoft.com"><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a></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>
</div></blockquote></body></html>