<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 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>