[M3commit] CVS Update: cm3 (64 bit integers...)
Tony Hosking
hosking at cs.purdue.edu
Sun Aug 26 17:28:49 CEST 2007
On Aug 26, 2007, at 8:08 AM, j k wrote:
> Here is the change:
>
> < TYPE T = BITS 64 FOR [ -16_7fffffffffffffffL-1L ..
> 16_7fffffffffffffffL ];
>
> > (*TYPE T = BITS 64 FOR [ -16_7fffffffffffffffL-1L ..
> 16_7fffffffffffffffL ];*)
> > TYPE T = BITS BITSIZE(LONGINT) FOR [ FIRST(LONGINT) .. LAST
> (LONGINT) ];
This should be OK.
> Otherwise you get a compile error when the constants overflow at
> compile time.
You only get the compiler error for NT386, for which LONGINT is 32-
bits because the non-gcc backend can handle only 32-bit integers.
What we really need is for NT386 to use a back-end that is capable of
64 bits. NT386GNU may be the easiest route to this.
> I still think all this stuff is a little wierd. Can we write off
> ALPHA_OSF, assert that INTEGER is 32 bits, and introduce a new type
> that is the same size as a pointer?
No way. INTEGER is intended to be abstract -- as defined in the
language spec.
> Again I think the types you want are:
> INT8, INT16, INT32, INT64 -- signed types with exact sizes, the
> same on all platforms (INT64 yet missing on Win32)
> UINT8, UINT16, UINT32, UINT64 -- unsigned types with exact
> sizes, the same on all platforms (UINT64 yet missing on Win32)
> SIZE_T, ?SSIZE_T? or ?PTRDIFF_T?-- unsigned and signed types for
> storing addresses, or sizes of arrays, or array indices, or the
> differences thereof, PERHAPS guaranteed to be 32 bits or 64 bits
> INTEGER -- same as SSIZE_T ?or? INT32??
> What's the pickle story? Are pickles interchangable beteen
> Alpha and non-Alpha?
> Should probably be equiv to SSIZE_T. That's what Alpha has.
> LONGINT -- same as INT64
This leads us into the swamp, full of nightmares and dragons.
>
> - Jay
>
>
> > Date: Sun, 26 Aug 2007 13:43:01 +0000
> > To: m3commit at elegosoft.com
> > From: jkrell at elego.de
> > Subject: [M3commit] CVS Update: cm3
> >
> > CVSROOT: /usr/cvs
> > Changes by: jkrell at birch. 07/08/26 13:43:01
> >
> > Modified files:
> > cm3/m3-libs/libm3/src/types/: Int64.i3
> >
> > Log message:
> > Fix it to compile for Win32's temporary 32 bit Int64.
> > Is this correct? I think so.
> >
>
> Messenger Café — open for fun 24/7. Hot games, cool activities
> served daily. Visit now.
More information about the M3commit
mailing list