in reply to 2GB limit to vecs

perl 5.10.0 source says
Perl_do_vecget(pTHX_ SV *sv, I32 offset, I32 size)
I32 is perl type alias for 32 bit signed integers.

I don't know if there is any reason to be using I32 for indexes instead of IVs (native ints or bigger). Vectors are not the unique data structure with that limitation, the I32 type is used pervasively inside perl code for index values, for instance, arrays or substr also use 32 bit indexes.

The work around is to create your own XS vector module with support for 64bit indexes, but anyway, fill a bug report with perlbug, and it may be fixed for 5.12!

Replies are listed 'Best First'.
Re^2: 2GB limit to vecs
by Anonymous Monk on Jun 20, 2008 at 09:25 UTC
    or sooner ( 5.10.1)
      Eliminating all the I32 indexes on the interpreter would break binary compatibility, so it would be very unlikely to happen on the 5.10 branch. Though, just fixing vec could be.
        It happened in 5.8.1, 5.8.2, 5.8.7, appears its no big deal to p5p anymore