[M3devel] INTEGER and LONGINT on 64-bit systems

Darko darko at darko.org
Wed Aug 8 15:30:22 CEST 2007


This might make sense as a platform option (ie where more than one  
platform config is available), where 32 bit integer performance is  
better, or you want to save memory. But INTEGERs are fairly  
fundamental. For instance, you might actually legitimately want to  
allocate an array bigger than 4Gb on a 64 bit machine, but NUMBER  
wouldn't work on it.

Will a integer subrange of a 64 bit INTEGER get handled by the back  
end as efficiently as a 'natively' defined 32 bit integer which is  
logically defined as a subrange?



On 08/08/2007, at 5:59 AM, Tony Hosking wrote:

> Now I've checked in the LONGINT extensions, I am wondering if we  
> shouldn't observe the following protocol for mapping INTEGER and  
> LONGINT to C types.   Currently, we have the following:
>
>
> 		32-bit targets			64-bit targets
>
> INTEGER		32 bits				64 bits
> LONGINT		64 bits				64 bits
> C long int	32 bits				32 bits
> C long long     64 bits				64 bits
>
> I wonder if we shouldn't simply identify INTEGER as 32-bit and  
> LONGINT as 64-bit on all targets.  That way, INTEGER=long int and  
> LONGINT=long long.
>
> Comments?
>




More information about the M3devel mailing list