[M3devel] files larger than 2gig

Mika Nystrom mika at async.caltech.edu
Tue Jun 23 11:54:47 CEST 2009


Also, making file handling code depend on the presence of IEEE floating
point seems rather odd...  As far as I know there is nothing in Modula-3
that bans implementing REAL with single precision arithmetic?

By the way I think it's sad that Modula-3's wonderful floating-point
support has attracted so much bit rot.  I think it's better than just
about any other programming language (except maybe some Fortran
dialects?)

     Mika

Jay writes:
>
>Hm..I'm not sure.
>Integers have certain properties, like dividing an integer by an integer yield
>s an integer,
>that floating point doesn't. Integer division tends toward zero faster than fl
>oating point division.
>I can try getting it all to compile with LONGINT maybe instead.
>The current behavior is pretty lame.
>
> - Jay
>
>----------------------------------------
>> From: jay.krell at cornell.edu
>> To: m3devel at elegosoft.com
>> Date: Mon, 22 Jun 2009 12:58:17 +0000
>> Subject: [M3devel] files larger than 2gig
>>
>>
>> C:\dev2\cm3.2\m3-libs\libm3\src\os\Common\File.i3
>>
>>
>> TYPE
>> Status = RECORD
>> type: Type;
>> modificationTime: Time.T;
>> size: INTEGER;
>> END;
>>
>>
>> size: INTEGER causes exceptions when you use the Modula-3 gui
>> and browse to a directory with files larger than 2 gig.
>>
>>
>> I suggest size be changed to LONGREAL, which generally has a 53 bit mantissa
>> (out 64 bits total) and thus can represent integers very much larger than IN
>TEGER.
>>
>>
>> LONGINT is a tempting option but doesn't help on the current NT386 platform,
>> and I think 53 bits will last a very long time.
>>
>>
>> I'm just trying out such a change and I can see it is not source compatible:
>>
>>
>> "../src/rw/FileRd.m3", line 73: incompatible argument types: MIN
>> "../src/rw/FileRd.m3", line 140: types are not assignable
>> 2 errors encountered
>> "../src/rw/FileWr.m3", line 87: incompatible argument types: MIN
>> "../src/rw/FileWr.m3", line 103: incompatible argument types: MAX
>> 2 errors encountered
>>
>>
>> Nevertheless I think it should be done, probably even for this release.
>>
>>
>> - Jay



More information about the M3devel mailing list