<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Here are some of the old messages. I haven't yet found a proposal.<br><br><br>https://mail.elegosoft.com/pipermail/m3devel/2007-July/000323.html<br>https://mail.elegosoft.com/pipermail/m3devel/2007-July/<br>https://mail.elegosoft.com/pipermail/m3devel/<br><br>You have to allow the exception for the certificate.<br><br><br> - Jay<br><br><br><br><hr id="stopSpelling">From: jay.krell@cornell.edu<br>To: rodney_bates@lcwb.coop; m3devel@elegosoft.com<br>Date: Fri, 8 Jan 2010 01:58:33 +0000<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 don't believe currently "10" is assignable<br>
(or comparable) to LONGINT.<br>
You have to use 10L.<br>
 <br>
 <br>
I do believe any INTEGER or CARDINAL expression should be assignable<br>
to LONGINT, but I don't think it is implemented that way currently.<br>
 <br>
 <br>
And, then, I wonder if subranges are all we need, no LONGINT.<br>
But I don't understand the language well enough.<br>
 <br>
 <br>
 - Jay<br><br> <br>> Date: Thu, 7 Jan 2010 19:37:39 -0600<br>> From: rodney_bates@lcwb.coop<br>> To: m3devel@elegosoft.com<br>> Subject: Re: [M3devel] what to do about file sizes being 32bits?<br>> <br>> <br>> <br>> Tony Hosking wrote:<br>> > On 7 Jan 2010, at 06:22, Jay K wrote:<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 <br>> >> start.<br>> >> It seems to me I shouldn't have o use VAL(i, LONGINT) to convert an <br>> >> INTEGER to a LONGINT, as all INTEGER values fit.<br>> >> Similarly I should be able to compare a LONGINT to 0 directly, instead <br>> >> of 0L.<br>> > <br>> > Again, I discourage this as not in the spirit of the Modula-3 type <br>> > system which abhors implicit casts.<br>> > <br>> Indeed, Modula-3 has no implicit casts at all. But it does have something<br>> that sometimes accomplishes the same result in a way that is far simpler<br>> to define and represents a higher level of abstraction, namely, the<br>> concept of assignability. A value, e.g. 10, can be in the value set of<br>> many types (INTEGER, many of its subranges, and now LONGINT and many if<br>> its subranges too). If so, it can in certain carefully specified cases,<br>> be assigned from one of these types to another, without any syntactically<br>> explicit notation required of the programmer.<br>> <br>> This represents the more abstract view that 10 is 10, as opposed to the<br>> usual view that 10 sitting in a byte is not the same as 10 in a word.<br>> Of course, at the machine level. they are not the same, but in Modula-3,<br>> that is only a representation matter that the compiler must take care of,<br>> not a high-level language matter that needs pages of rules to define.<br>> <br>> It took me years to fully understand the implications of replacing implicit<br>> type conversions by the assignability concept, but I now consider it one<br>> of Modula-3's great ideas, even if it is a small thing.<br>                                        </body>
</html>