On Fri, 10 Dec 2004, Martin Maechler wrote:

I'm diverting to R-devel,  where this is really more
appropriate.

In the future, we really might want to have a new type,
some "long integer" or "index" which would be used both in R
and C's R-API for indexing into large objects where 32-bit
integers overflow.
I assume, we will keep the    R "integer" == C "int" == 32-bit int
forever, but need something with more bits rather sooner than later.
But in any, case by then, some things might have to change in
R (and C's R-API) storage type of indexing.

Indeed. Assuming that seq() will always produce one type to pass to C code is dangerous. Not so long ago someone asked why an R call had as.integer around a length, as ?length says the result is integer.
I replied that


1) This was liable to change and
2) Methods for generic functions were not forced to return the same thing as the documentation for the default method.


We are compelled to keep R "integer" == C "int" == Fortran "integer" as 32-bit by backwards compatibility, as that is what all known 64-bit platforms do and hence what external libraries (notably libm/libc and Fortran support libraries) use. This limits the length of R vectors to 2^31-1, and that will start to bite fairly soon. We do already have people using larger objects (as measured in bytes), and for example the return type of object.size got changed from int to double to accommodate such. The C code has a type R_len_t that will eventually be used for
index and length computations, at least in C code. The widespread use of Fortran for e.g. matrix computations limits what we can do.


Note that this was until recently only an issue for 64-bit operating systems, as the 32-bit OS 4Gb limit on a block of memory bites first except for raw vectors.

--
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to