This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Storable 3.00: u64 strings, arrays and hashes >2G
authorReini Urban <rurban@cpanel.net>
Tue, 29 Mar 2016 15:50:09 +0000 (17:50 +0200)
committerTony Cook <tony@develop-help.com>
Thu, 8 Feb 2018 02:34:10 +0000 (13:34 +1100)
commit1cb8a344aa3ff4a6c8e6c40299815d8fa31240de
treefde0c1d7250d7e8d48d84d459126b90d7f49e34a
parentec4c87747930b1ba81d2c4d1d103e66a62975441
Storable 3.00: u64 strings, arrays and hashes >2G

via a new LOBJECT tag. This is for 32bit systems and lengths
between 2GB and 4GB (I32-U32), and 64bit (>I32).
Use SSize_t array and hash lengths, see [cperl #123].

Even for hashes, which we cannot iterate over.
This is a upstream limitation in the HvAUX struct and API.
We can store >2G keys though, which is fully supported
in subsequent cperl commits for #123, but not perl5 upstream.

Add several helper functions for strings and hash entries,
removed a lot of duplicate code.

Reformat consistently (tabs: 8)

Modernize:
* get rid of main'dump
* get rid of *FILE typeglob, replace with lexical filehandle
* fix parallel tests, use unique filenames.
* fixed many instances of 2arg open,
* keep backcompat default handling for XS functions, handle the flag
  default there.
* remove default $Storable::flags settings in the tests
* fix some too short I32 len types in the XS

Conflicts:
dist/Storable/Storable.pm
dist/Storable/Storable.xs
dist/Storable/t/attach_errors.t
dist/Storable/t/blessed.t
dist/Storable/t/destroy.t
dist/Storable/t/testlib.pl
20 files changed:
dist/Storable/ChangeLog
dist/Storable/README
dist/Storable/Storable.xs
dist/Storable/__Storable__.pm
dist/Storable/t/attach_errors.t
dist/Storable/t/attach_singleton.t
dist/Storable/t/blessed.t
dist/Storable/t/circular_hook.t
dist/Storable/t/code.t
dist/Storable/t/compat06.t
dist/Storable/t/destroy.t
dist/Storable/t/forgive.t
dist/Storable/t/huge.t
dist/Storable/t/lock.t
dist/Storable/t/malice.t
dist/Storable/t/retrieve.t
dist/Storable/t/st-dump.pl
dist/Storable/t/store.t
dist/Storable/t/testlib.pl
dist/Storable/t/weak.t