<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>Olaf, this will fix your problem. Tony should speak to it probably before it is commited -- like if it works on AMD64_DARWIN.<BR>
 <BR>
Here is my reluctant proposal:<BR>
<BR>cvs diff: Diffing 32BITS<BR>Index: 32BITS/BasicCtypes.i3<BR>===================================================================<BR>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/C/32BITS/BasicCtypes.i3,v<BR>retrieving revision 1.10<BR>diff -c -r1.10 BasicCtypes.i3<BR>*** 32BITS/BasicCtypes.i3       13 Apr 2008 19:41:49 -0000      1.10<BR>--- 32BITS/BasicCtypes.i3       14 Apr 2008 07:20:59 -0000<BR>***************<BR>*** 13,21 ****<BR>    (* the four signed integer types *)<BR>    signed_char        = [-16_7f-1 .. 16_7f];<BR>    short_int          = [-16_7fff-1 .. 16_7fff];<BR>!   int                = [-16_7fffffff-1 .. 16_7fffffff];<BR>!   long_int           = [-16_7fffffff-1 .. 16_7fffffff];<BR>!   long_long          = [-16_7fffffffffffffffL-1L .. 16_7fffffffffffffffL];<BR>
    (* the four unsigned integer types *)<BR>    unsigned_char      = [16_0 .. 16_ff];<BR>--- 13,21 ----<BR>    (* the four signed integer types *)<BR>    signed_char        = [-16_7f-1 .. 16_7f];<BR>    short_int          = [-16_7fff-1 .. 16_7fff];<BR>!   int                = INTEGER;<BR>!   long_int           = INTEGER;<BR>!   long_long          = LONGINT;<BR>
    (* the four unsigned integer types *)<BR>    unsigned_char      = [16_0 .. 16_ff];<BR>cvs diff: Diffing 64BITS<BR>Index: 64BITS/BasicCtypes.i3<BR>===================================================================<BR>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/C/64BITS/BasicCtypes.i3,v<BR>retrieving revision 1.8<BR>diff -c -r1.8 BasicCtypes.i3<BR>*** 64BITS/BasicCtypes.i3       13 Apr 2008 19:44:02 -0000      1.8<BR>--- 64BITS/BasicCtypes.i3       14 Apr 2008 07:20:59 -0000<BR>***************<BR>*** 14,21 ****<BR>    signed_char        = [-16_7f-1 .. 16_7f];<BR>    short_int          = [-16_7fff-1 .. 16_7fff];<BR>    int                = [-16_7fffffff-1 .. 16_7fffffff];<BR>!   long_int           = [-16_7fffffffffffffff -1  .. 16_7fffffffffffffff ];<BR>!   long_long          = [-16_7fffffffffffffffL-1L .. 16_7fffffffffffffffL];<BR>
    (* the four unsigned integer types *)<BR>    unsigned_char      = [16_0 .. 16_ff];<BR>--- 14,21 ----<BR>    signed_char        = [-16_7f-1 .. 16_7f];<BR>    short_int          = [-16_7fff-1 .. 16_7fff];<BR>    int                = [-16_7fffffff-1 .. 16_7fffffff];<BR>!   long_int           = INTEGER;<BR>!   long_long          = LONGINT;<BR>
    (* the four unsigned integer types *)<BR>    unsigned_char      = [16_0 .. 16_ff];<BR>
<BR>Win64 might not be able to use this but I guess the other 64 bit systems can.<BR>
<BR>The bigger point is the 32bit fix to get NT386 compiling again.<BR>
<BR>Type "long" is just dumb imho.<BR>By corrolary LONGINT.<BR>
<BR>There should be the explicitly sized types<BR>  [u]int[8,16,32,64,more in the future]<BR>  and then unsigned and signed pointer sized types <BR>   aka<BR>   size_t, ptrdiff_t  <BR>   or size_t, ssize_t   <BR>   or Word.T, INTEGER  <BR>
<BR>I think it's unfortunate that Modula-3 followed C's lead here.<BR>This is one thing C definitely did wrong.<BR>You just know, 128 bit types are going to be called "long long long"..<BR>
When they should have been called like int128 and uint128 and possibly size_t, ssize_t.<BR>
Arguably "size_t" should be "word". "size_t" isn't the best name probably, but I'm not fighting that one. :)<BR>
(I'm not really fighting any of this; I lost already.)<BR>
<BR> - Jay<BR><BR><BR><BR>

<HR id=stopSpelling>
<BR>
> Date: Mon, 14 Apr 2008 09:18:35 +0200<BR>> From: wagner@elegosoft.com<BR>> To: m3devel@elegosoft.com<BR>> Subject: [M3devel] latest failure on NT386<BR>> <BR>> Just when I thought that I finally might be able to run a complete<BR>> regression on NT386, the compilation breaks with this:<BR>> <BR>> new source -> compiling Cstdlib.i3<BR>> "..\src\C\32BITS\BasicCtypes.i3", line 18: illegal based LONGINT <BR>> literal, zero used<BR>> "..\src\C\32BITS\BasicCtypes.i3", line 18: illegal based LONGINT <BR>> literal, zero used<BR>> "..\src\C\Common\Cstdlib.i3", line 13: imported interface contains <BR>> errors (Ctypes)<BR>> 3 errors encountered<BR>> new source -> compiling Csetjmp.i3<BR>> "..\src\C\NT386\Csetjmp.i3", line 13: imported interface contains <BR>> errors (Ctypes)<BR>> 1 error encountered<BR>> <BR>> Can anybody look into that?<BR>> <BR>> Olaf<BR>> -- <BR>> Olaf Wagner -- elego Software Solutions GmbH<BR>> Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany<BR>> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95<BR>> http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin<BR>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE16321419<BR>> <BR><BR></body>
</html>