Blame ChangeLog

Packit 14c646
2018-04-27 20:40:00 xsawyerx
Packit 14c646
    version 3.11
Packit 14c646
        * Fix Strawberry Perl build failures.
Packit 14c646
Packit 14c646
2018-04-21 22:00:00 xsawyerx
Packit 14c646
    Version 3.10
Packit 14c646
        * Fix binary artifacts from distribution.
Packit 14c646
Packit 14c646
2018-04-21 16:49:00 xsawyerx
Packit 14c646
    Version 3.09
Packit 14c646
        * Fix "provides" in metadata (META.yml/META.json) to use the Storable
Packit 14c646
          template instead of a small other file (which also didn't exist).
Packit 14c646
Packit 14c646
2018-04-21 11:23:00 xsawyerx
Packit 14c646
    Version 3.08
Packit 14c646
        * (perl #132849) try to disable core files when deliberatly segfaulting.
Packit 14c646
        * (perl #127743) don't probe Storable limits so much.
Packit 14c646
        * (perl #132893) don't probe for Storable recursion limits on old Win32.
Packit 14c646
        * (perl #132870) workaround VC2017 compiler bug.
Packit 14c646
        * (perl #127743) re-work for debugging builds with MSVC.
Packit 14c646
        * (perl #133039) dont build a Storable.so/.dll with a static perl build.
Packit 14c646
Packit 14c646
2018-02-07 15:08:00 tonyc
Packit 14c646
    Version 3.06
Packit 14c646
Packit 14c646
        * support large object ids.  The code in theory supported arrays
Packit 14c646
        with more than 2**32 elements, but references to the elements
Packit 14c646
        emitted at the end of the array with be retrieved as references to
Packit 14c646
        the wrong elements.
Packit 14c646
        * 32-bit object ids over 2**31-1 weren't correctly handled.
Packit 14c646
        * hook object id generation now supports 64-bit ids where needed
Packit 14c646
        * writing 64-bit lengths in network order now works
Packit 14c646
        * reading 64-bit lengths in network order now reads the components
Packit 14c646
        in the correct order.
Packit 14c646
        * retrieving large object tags are now only handled on 64-bit
Packit 14c646
        platforms, large object tags should only be emitted for objects
Packit 14c646
        that are too large for the 32-bit address space, so it was only
Packit 14c646
        wasted code.
Packit 14c646
        * reading 32-bit lengths for LSCALAR and LUTF8STR as unsigned
Packit 14c646
        (perl #131990)
Packit 14c646
        * reading flagged large object hashes didn't read the flags
Packit 14c646
        * treat the 32-bit size of hook data as unsigned, values over 2GB
Packit 14c646
        were treated as large (close to 2**64) parameters to NEWSV().
Packit 14c646
        (perl #131999)
Packit 14c646
        * added support for hook data over 4GB in size
Packit 14c646
        * zero length data receievd from STORABLE_freeze() no longer
Packit 14c646
        results in an invalid SV being passed to STORABLE_thaw/_attach()
Packit 14c646
        (perl #118551)
Packit 14c646
        * where practical, padding is now cleared when emitting a long
Packit 14c646
        double (perl #131136)
Packit 14c646
        * cache the value of $Storable::DEBUGME (since cperl enabled
Packit 14c646
        Storable TRACEME builds for all -DDEBUGGING builds)
Packit 14c646
        * no longer discard exceptions thrown by
Packit 14c646
        STORABLE_freeze/_thaw/attach() (perl #25933)
Packit 14c646
        * fix dependencies used to build Storable.pm from __Storable__.pm
Packit 14c646
        * add experimental support for freezing/thawing regular
Packit 14c646
        expressions (perl #50608)
Packit 14c646
        * re-work recursion limiting to store the limit in a perl variable
Packit 14c646
        instead of baked into Storable.$so.  This allows static Storable
Packit 14c646
        builds to work, and avoids the kind of circular reference on
Packit 14c646
        Storable.$so.
Packit 14c646
Packit 14c646
2017-07-24 13:57:13 rurban
Packit 14c646
    Version 3.05_13
Packit 14c646
Packit 14c646
        * mingw fix: use safe defaults, not segfaulting defaults.
Packit 14c646
        mingw fails on the stacksize binary search, leaving it empty.
Packit 14c646
Packit 14c646
Wed Apr 19 09:11:07 2017 +0200 Reini Urban <rurban@cpan.org>
Packit 14c646
    Version 3.05_12
Packit 14c646
Packit 14c646
        * enhance stack reserve from 8 to 16
Packit 14c646
        * fix LD_LIBRARY_PATH usage for CORE
Packit 14c646
        * fixed some coverity warnings and leaks
Packit 14c646
        * added a release make target
Packit 14c646
Packit 14c646
Wed Mar 29 21:04:28 2017 +0200 Reini Urban <rurban@cpan.org>
Packit 14c646
    Version 3.05_11
Packit 14c646
Packit 14c646
        * croak on sizes read > I32_MAX
Packit 14c646
        * simplify last_op_in_netorder
Packit 14c646
        * protect from empty retrieve_vstring
Packit 14c646
        * protect store_other error buf, potential static
Packit 14c646
        buffer overflow.
Packit 14c646
Packit 14c646
Tue Mar 14 09:52:20 2017 +0100 Reini Urban <rurban@cpan.org>
Packit 14c646
    Version 3.05_10
Packit 14c646
Packit 14c646
        * CORE-only improvements to stacksize
Packit 14c646
Packit 14c646
Thu Mar 9 19:20:19 2017 +0100 Reini Urban <rurban@cpan.org>
Packit 14c646
    Version 3.05_09
Packit 14c646
Packit 14c646
        * compute the stacksizes, improve cleanup within croak
Packit 14c646
        from stack exhaustion.
Packit 14c646
        * added stack_depth and stack_depth_hash getters.
Packit 14c646
Packit 14c646
Wed Mar  8 21:03:43 CET 2017 Reini Urban <rurban@cpan.org>
Packit 14c646
    Version 3.05_08
Packit 14c646
Packit 14c646
        * finetune the max stack limit, for C++, DEBUGGING and 32bit.
Packit 14c646
        * fix t/blessed.t for cperl5.22
Packit 14c646
Packit 14c646
Sun Mar 5 13:36:47 2017 +0100 Reini Urban <rurban@cpan.org>
Packit 14c646
    Version 3.05_07
Packit 14c646
Packit 14c646
        * Fixed a podchecker issue
Packit 14c646
Packit 14c646
Sun Mar 5 11:42:04 2017 +0100 Reini Urban <rurban@cpan.org>
Packit 14c646
    Version 3.05_06
Packit 14c646
Packit 14c646
        * Fixed wrong recursion depth error with large arrays containing
Packit 14c646
        another array.
Packit 14c646
	L<[cperl #257]|https://github.com/perl11/cperl/issues/257>
Packit 14c646
Packit 14c646
Thu Feb 2 12:40:44 2017 +0100 Reini Urban <rurban@cpanel.net>
Packit 14c646
    Version 3.05_05
Packit 14c646
Packit 14c646
        * Add leak tests for [cpan #97316], [perl #121928]
Packit 14c646
        * Limit the max recursion depth to 1200 on 32bit systems.
Packit 14c646
        We have no max_depth option yet, as in JSON::XS.
Packit 14c646
Packit 14c646
Thu Feb 2 11:59:21 2017 +0100 Reini Urban <rurban@cpanel.net>
Packit 14c646
    Version 3.05_04
Packit 14c646
Packit 14c646
        * Fix retrieve_tied_array which fails since 5.16
Packit 14c646
        [cpan #84705]
Packit 14c646
        * Improve t/blessed.t in the creation of sv_yes/sv_no
Packit 14c646
        with threaded perls.
Packit 14c646
Packit 14c646
Tue Jan 31 02:55:30 2017 +0100 Reini Urban <rurban@cpanel.net>
Packit 14c646
    Version 3.05_03
Packit 14c646
Packit 14c646
        * Tune t/recurse.t stack-overflow limit more.
Packit 14c646
Packit 14c646
Mon Jan 30 19:50:29 2017 +0100 Reini Urban <rurban@cpanel.net>
Packit 14c646
    Version 3.05_02
Packit 14c646
Packit 14c646
        * Tune t/recurse.t stack-overflow limit. Small 64bit systems overflow
Packit 14c646
        even with depth 3000, where 32bit are ok.
Packit 14c646
Packit 14c646
Mon Jan 30 15:13:38 2017 +0100 Reini Urban <rurban@cpanel.net>
Packit 14c646
    Version 3.05_01
Packit 14c646
Packit 14c646
        * Protect against stack overflows with nested arrays and hashes
Packit 14c646
        [cpan #97526]. This imposes a new limit to your nested structures,
Packit 14c646
        but JSON::XS has a limit of 512. We use a max_depth of 3000 for the
Packit 14c646
        typical stack limit of 8k.
Packit 14c646
Packit 14c646
Packit 14c646
Sun Jan 29 11:36:43 2017 +0100 Reini Urban <rurban@cpanel.net>
Packit 14c646
    Version 3.05
Packit 14c646
Packit 14c646
        * Protect against classname len overflow on the stack
Packit 14c646
        and 2x on the heap with retrieve_bless and retrieve_hook.
Packit 14c646
        A serious security issue with malcrafted storable files or buffers,
Packit 14c646
        but p5p accepts no CVE on Storable attacks. See RT #130635
Packit 14c646
        (reported by JD).
Packit 14c646
        * Fix NULL ptr SEGVs with retrieve_code and retrieve_other.
Packit 14c646
        See RT #130098 (reported and fixed by JD)
Packit 14c646
        * Fix wrong huge LOBJECT support, broken since 3.00c.
Packit 14c646
        Repro with `export PERL_TEST_MEMORY=8`
Packit 14c646
        * Fix the few remaining 2-arg open calls.
Packit 14c646
        * Portability and backport fixes back to 5.6.2
Packit 14c646
Packit 14c646
Sat Jan 7 09:01:29 2017 +0100 Reini Urban <rurban@cpanel.net>
Packit 14c646
    Version 3.04c
Packit 14c646
Packit 14c646
        * fix printf types and warnings, esp. for 32bit use64bitint
Packit 14c646
        * Change sv_setpvn(…, "…", …) to sv_setpvs(…, "…")
Packit 14c646
Packit 14c646
Tue Jul 26 11:49:33 2016 +1000 Tony Cook <tony@develop-help.com>
Packit 14c646
    Version 3.03c
Packit 14c646
Packit 14c646
        * remove . from @INC when loading optional modules
Packit 14c646
Packit 14c646
Sun Nov 20 18:06:45 2016 +0100 Reini Urban <rurban@cpanel.net>
Packit 14c646
    Version 3.02c
Packit 14c646
Packit 14c646
        * Fix -Wc++11-compat warnings, fix -Wchar-subscripts
Packit 14c646
Packit 14c646
Fri Sep 16 01:32:59 2016 +0200 Reini Urban <rurban@cpanel.net>
Packit 14c646
    Version 3.01c
Packit 14c646
Packit 14c646
        * Added warn_security("Movable-Type CVE-2015-1592 Storable metasploit attack")
Packit 14c646
          when detecting the third destructive metasploit vector,
Packit 14c646
          thawing bless \"mt-config.cgi", "CGITempFile".
Packit 14c646
Packit 14c646
Thu Mar 31 17:10:27 2016 +0200 Reini Urban <rurban@cpanel.net>
Packit 14c646
    Version 3.00c
Packit 14c646
Packit 14c646
        * Added support for u64 strings, arrays and hashes >2G
Packit 14c646
          via a new LOBJECT tag. This is for 32bit systems and lengths
Packit 14c646
          between 2GB and 4GB (I32-U32), and 64bit (>I32).
Packit 14c646
        * Bumped STORABLE_BIN_MINOR and STORABLE_BIN_WRITE_MINOR from 10 to 11
Packit 14c646
        * fix parallel tests, use unique filenames.
Packit 14c646
        * fixed 2 instances of 2arg open,
Packit 14c646
        * added optional flag arguments to skip tie and bless on retrieve/thaw,
Packit 14c646
        * added SECURITY WARNING and Large data support to docs
Packit 14c646
        * compute CAN_FLOCK at compile-time
Packit 14c646
        * reformat everything consistently
Packit 14c646
        * enable DEBUGME tracing and asserts with -DDEBUGGING
Packit 14c646
        * fix all 64 bit compiler warnings
Packit 14c646
        * added some abstraction methods to avoid code duplication
Packit 14c646
Packit 14c646
?????? p5p <perl5-porters@perl.org>
Packit 14c646
    Version 2.65
Packit 14c646
Packit 14c646
	* Replace multiple 'use vars' by 'our'
Packit 14c646
	* remove Config dependency
Packit 14c646
Packit 14c646
Wed Jul  2 16:25:25 IST 2014   Abhijit Menon-Sen <ams@toroid.org>
Packit 14c646
    Version 2.51
Packit 14c646
Packit 14c646
	* [perl #121928] Fix memory leak for dclone inside freeze hook
Packit 14c646
	  (Alex Solovey)
Packit 14c646
	* Do not call DESTROY for empty objects
Packit 14c646
	  (Vladimir Timofeev)
Packit 14c646
	* Other bugfixes
Packit 14c646
Packit 14c646
Sat Jul 13 18:34:27 IST 2013   Abhijit Menon-Sen <ams@toroid.org>
Packit 14c646
    Version 2.45
Packit 14c646
Packit 14c646
       * [perl #118829] Memory leaks in STORABLE_attach
Packit 14c646
         (Vladimir Timofeev)
Packit 14c646
       * [perl #118139] Don't SEGV during global destruction
Packit 14c646
         (Nicholas Clark, report/test from Reini Urban)
Packit 14c646
       * Added security warnings section (Steffen Mueller)
Packit 14c646
       * Update INSTALLDIRS to favour installation in 'site'
Packit 14c646
         (James E Keenan)
Packit 14c646
Packit 14c646
Tue 11 Sep 06:51:11 IST 2012   Abhijit Menon-Sen <ams@toroid.org>
Packit 14c646
    Version 2.39
Packit 14c646
Packit 14c646
	Various bugfixes, including compatibility fixes for older
Packit 14c646
	versions of Perl and vstring handling.
Packit 14c646
Packit 14c646
Sun  3 Jul 09:10:11 IST 2011   Abhijit Menon-Sen <ams@toroid.org>
Packit 14c646
    Version 2.29
Packit 14c646
Packit 14c646
	Various bugfixes, notably including preventing nfreeze from
Packit 14c646
	incorrectly stringifying integers.
Packit 14c646
Packit 14c646
Fri  3 Dec 14:12:32 GMT 2010   David Leadbeater <dgl@dgl.cx>
Packit 14c646
    Version 2.25
Packit 14c646
Packit 14c646
	Support for serializing coderefs containing UTF-8.
Packit 14c646
Packit 14c646
Fri Nov 12 10:52:19 IST 2010   Abhijit Menon-Sen <ams@toroid.org>
Packit 14c646
Packit 14c646
    Version 2.24
Packit 14c646
Packit 14c646
	Performance improvement for overloaded classes from Benjamin
Packit 14c646
	Holzman.
Packit 14c646
Packit 14c646
Fri Nov 12 10:36:22 IST 2010   Abhijit Menon-Sen <ams@toroid.org>
Packit 14c646
Packit 14c646
    Version 2.23
Packit 14c646
Packit 14c646
	Release the latest version from the Perl repository.
Packit 14c646
Packit 14c646
Thu Aug  6 10:55:50 IST 2009   Abhijit Menon-Sen <ams@toroid.org>
Packit 14c646
Packit 14c646
    Version 2.21
Packit 14c646
Packit 14c646
	Includes hints/hpux.pl that was inadvertently left out of 2.20.
Packit 14c646
Packit 14c646
Mon May 18 09:38:20 IST 2009   Abhijit Menon-Sen <ams@toroid.org>
Packit 14c646
Packit 14c646
    Version 2.20
Packit 14c646
Packit 14c646
	Fix bug handling blessed references to overloaded objects, plus
Packit 14c646
	other miscellaneous fixes.
Packit 14c646
Packit 14c646
	(Version 2.19 was released with 5.8.9.)
Packit 14c646
Packit 14c646
Thu Nov 22 13:24:18 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
Packit 14c646
Packit 14c646
    Version 2.18
Packit 14c646
Packit 14c646
	Compile fixes for older Perls. (No functional changes.)
Packit 14c646
Packit 14c646
Sat Nov 17 02:12:12 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
Packit 14c646
Packit 14c646
    Version 2.17
Packit 14c646
Packit 14c646
	Various broken tests fixed. (No functional changes.)
Packit 14c646
Packit 14c646
Sat Mar 31 06:11:06 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
Packit 14c646
Packit 14c646
    Version 2.16
Packit 14c646
Packit 14c646
        1. Fixes to Storable::dclone, read_magic, retrieve_lscalar
Packit 14c646
        2. Storable 0.1 compatibility
Packit 14c646
        3. Miscellaneous compile/leak/test/portability fixes
Packit 14c646
Packit 14c646
Mon May 23 22:48:49 IST 2005   Abhijit Menon-Sen <ams@wiw.org>
Packit 14c646
Packit 14c646
    Version 2.15
Packit 14c646
Packit 14c646
        Minor changes to address a couple of compile problems.
Packit 14c646
Packit 14c646
Mon Apr 25 07:29:14 IST 2005   Abhijit Menon-Sen <ams@wiw.org>
Packit 14c646
Packit 14c646
    Version 2.14
Packit 14c646
Packit 14c646
	1. Store weak references
Packit 14c646
	2. Add STORABLE_attach hook.
Packit 14c646
Packit 14c646
Thu Jun 17 12:26:43 BST 2004   Nicholas Clark <nick@ccl4.org>
Packit 14c646
Packit 14c646
    Version 2.13
Packit 14c646
Packit 14c646
        1. Don't change the type of top level overloaded references to RV -
Packit 14c646
	   they are perfectly correct as PVMG
Packit 14c646
	2. Storable needs to cope with incoming frozen data that happens to be
Packit 14c646
	   utf8 encoded.
Packit 14c646
Packit 14c646
Wed Mar 17 15:40:29 GMT 2004   Nicholas Clark <nick@ccl4.org>
Packit 14c646
Packit 14c646
    Version 2.12
Packit 14c646
Packit 14c646
        1. Add regression tests for the auto-require of STORABLE_thaw
Packit 14c646
        2. Add auto-require of modules to restore overloading (and tests)
Packit 14c646
        3. Change to no context (should give speedup with ithreads)
Packit 14c646
Packit 14c646
Sat Mar 13 20:11:03 GMT 2004   Nicholas Clark <nick@ccl4.org>
Packit 14c646
	
Packit 14c646
    Version 2.11
Packit 14c646
Packit 14c646
        1. Storing restricted hashes in canonical order would SEGV. Fixed.
Packit 14c646
        2. It was impossible to retrieve references to PL_sv_no and and
Packit 14c646
           PL_sv_undef from STORABLE_thaw hooks.
Packit 14c646
        3. restrict.t was failing on 5.8.0, due to 5.8.0's unique
Packit 14c646
           implementation of restricted hashes using PL_sv_undef
Packit 14c646
        4. These changes allow a space optimisation for restricted hashes.
Packit 14c646
Packit 14c646
Sat Jan 24 16:22:32 IST 2004   Abhijit Menon-Sen <ams@wiw.org>
Packit 14c646
Packit 14c646
    Version 2.10
Packit 14c646
Packit 14c646
        1. Thread safety: Storable::CLONE/init_perlinterp() now create
Packit 14c646
           a new Perl context for each new ithread.
Packit 14c646
           (From Stas Bekman and Jan Dubois.)
Packit 14c646
        2. Fix a tag count mismatch with $Storable::Deparse that caused
Packit 14c646
           all back-references after a stored sub to be off-by-N (where
Packit 14c646
           N was the number of code references in between).
Packit 14c646
           (From Sam Vilain.)
Packit 14c646
        3. Prevent CODE references from turning into SCALAR references.
Packit 14c646
           (From Slaven Rezic.)
Packit 14c646
Packit 14c646
Sat Jan  3 18:49:18 GMT 2004   Nicholas Clark <nick@ccl4.org>
Packit 14c646
Packit 14c646
    Version 2.09
Packit 14c646
Packit 14c646
	Fix minor problems with the CPAN release
Packit 14c646
	1: Make Storable.xs work on 5.8.2 and later (already in the core)
Packit 14c646
	2: Ship the linux hints file
Packit 14c646
	3: Ship Test::More for the benefit of Perls pre 5.6.2
Packit 14c646
	4: Correct Makefile.PL to only install in core for 5.8.0 and later
Packit 14c646
Packit 14c646
Sat Sep  6 01:08:20 IST 2003   Abhijit Menon-Sen <ams@wiw.org>
Packit 14c646
Packit 14c646
    Version 2.08
Packit 14c646
Packit 14c646
        This release works around a 5.8.0 bug which caused hashes to not
Packit 14c646
        be marked as having key flags even though an HEK had HEK_WASUTF8
Packit 14c646
        set. (Note that the only reasonable solution is to silently drop
Packit 14c646
        the flag from the affected key.)
Packit 14c646
Packit 14c646
        Users of RT 3 who were seeing assertion failures should upgrade.
Packit 14c646
        (Perl 5.8.1 will have the bug fixed.)
Packit 14c646
Packit 14c646
Mon May  5 10:24:16 IST 2003   Abhijit Menon-Sen <ams@wiw.org>
Packit 14c646
Packit 14c646
    Version 2.07
Packit 14c646
Packit 14c646
        Minor bugfixes (self-tied objects are now correctly stored, as
Packit 14c646
        are the results of additions larger than INT_MAX).
Packit 14c646
Packit 14c646
Mon Oct  7 21:56:38 BST 2002   Nicholas Clark  <nick@ccl4.org>
Packit 14c646
Packit 14c646
    Version 2.06
Packit 14c646
Packit 14c646
	Remove qr// from t/downgrade.t so that it will run on 5.004
Packit 14c646
	Mention $File::Spec::VERSION a second time in t/forgive.t so that it
Packit 14c646
	runs without warnings in 5.004 (this may be a 5.00405 bug I'm working
Packit 14c646
	round)
Packit 14c646
	Fix t/integer.t initialisation to actually generate 64 bits of 9c
Packit 14c646
	Fix comparison tests to use eval to get around 64 bit IV conversion
Packit 14c646
	issues on 5.6.x, following my t/integer.t ^ precedence bug found by
Packit 14c646
	Rafael Garcia-Suarez
Packit 14c646
	Alter t/malice.t to work with Test/More.pm in t/, and skip individual
Packit 14c646
	subtests that use $Config{ptrsize}, so that the rest of the test can
Packit 14c646
	now be run with 5.004
Packit 14c646
	Change t/malice.t and the error message in check_magic in Storable.xs
Packit 14c646
	from "Pointer integer size" to "Pointer size"
Packit 14c646
	Remove prerequisite of Test::More from Makefile.PL
Packit 14c646
	Ship Test::Builder, Test::Simple and Test::More in t
Packit 14c646
Packit 14c646
Thu Oct  3 08:57:22 IST 2002   Abhijit Menon-Sen <ams@wiw.org>
Packit 14c646
Packit 14c646
    Version 2.05
Packit 14c646
Packit 14c646
        Adds support for CODE references from Slaven Rezic
Packit 14c646
        <slaven.rezic@berlin.de>.
Packit 14c646
Packit 14c646
Fri Jun  7 23:55:41 BST 2002   Nicholas Clark
Packit 14c646
Packit 14c646
    Version 2.04
Packit 14c646
Packit 14c646
	Bug fix from Radu Greab <radu@netsoft.ro> (plus regression test)
Packit 14c646
	to fix a recently introduced bug detected by Dave Rolsky.
Packit 14c646
	Bug was that for a non threaded build, the class information was
Packit 14c646
	being lost at freeze time on the first object with a STORABLE_freeze
Packit 14c646
	hook. Consequentially the object was not blessed at all when thawed.
Packit 14c646
	(The presence (or lack) of STORABLE_thaw was irrelevant; this was
Packit 14c646
	a store-time data lost bug, caused by failure to initialize internal
Packit 14c646
	context)
Packit 14c646
	The bug was introduced as development perl change 16442 (on
Packit 14c646
	2002/05/07), so has been present since 2.00.
Packit 14c646
	Patches to introduce more regression tests to reduce the chance of
Packit 14c646
	a reoccurrence of this sort of goof are always welcome.
Packit 14c646
	
Packit 14c646
Thu May 30 20:31:08 BST 2002   Nicholas Clark <nick@ccl4.org>
Packit 14c646
Packit 14c646
    Version 2.03        Header changes on 5.6.x on Unix where IV is long long
Packit 14c646
Packit 14c646
        5.6.x introduced the ability to have IVs as long long.  However,
Packit 14c646
        Configure still defined BYTEORDER based on the size of a long.
Packit 14c646
        Storable uses the BYTEORDER value as part of the header, but
Packit 14c646
        doesn't explicitly store sizeof(IV) anywhere in the header.
Packit 14c646
        Hence on 5.6.x built with IV as long long on a platform that
Packit 14c646
        uses Configure (ie most things except VMS and Windows) headers
Packit 14c646
        are identical for the different IV sizes, despite the files
Packit 14c646
        containing some fields based on sizeof(IV)
Packit 14c646
Packit 14c646
        5.8.0 is consistent; all platforms have BYTEORDER in config.h
Packit 14c646
        based on sizeof(IV) rather than sizeof(long).  This means that
Packit 14c646
        the value of BYTEORDER will change from (say) 4321 to 87654321
Packit 14c646
        between 5.6.1 and 5.8.0 built with the same options to Configure
Packit 14c646
        on the same machine.  This means that the Storable header will
Packit 14c646
        differ, and the two versions will wrongly thing that they are
Packit 14c646
        incompatible.
Packit 14c646
Packit 14c646
        For the benefit of long term consistency, Storable now
Packit 14c646
        implements the 5.8.0 BYTEORDER policy on 5.6.x.  This means that
Packit 14c646
        2.03 onwards default to be incompatible with 2.02 and earlier
Packit 14c646
        (ie the large 1.0.x installed base) on the same 5.6.x perl.
Packit 14c646
Packit 14c646
        To allow interworking, a new variable
Packit 14c646
        $Storable::interwork_56_64bit is introduced. It defaults to
Packit 14c646
        false. Set it to true to read and write old format files. Don't
Packit 14c646
        use it unless you have existing stored data written with 5.6.x
Packit 14c646
        that you couldn't otherwise read, or you need to interwork with
Packit 14c646
        a machine running older Storable on a 5.6.x with long long IVs
Packit 14c646
        (i.e., you probably don't need to use it).
Packit 14c646
Packit 14c646
Sat May 25 22:38:39 BST 2002   Nicholas Clark <nick@ccl4.org>
Packit 14c646
Packit 14c646
    Version 2.02
Packit 14c646
                
Packit 14c646
        Rewrite Storable.xs so that the file header structure for write_magic
Packit 14c646
        is built at compile time, and check_magic attempts to the header in
Packit 14c646
        blocks rather than byte per byte. These changes make the compiled
Packit 14c646
        extension 2.25% smaller, but are not significant enough to give a
Packit 14c646
        noticeable speed up.
Packit 14c646
Packit 14c646
Thu May 23 22:50:41 BST 2002   Nicholas Clark <nick@ccl4.org>
Packit 14c646
Packit 14c646
    Version 2.01
Packit 14c646
Packit 14c646
        - New regression tests integer.t
Packit 14c646
        - Add code to safely store large unsigned integers.
Packit 14c646
        - Change code not to attempt to store large integers (ie > 32 bits)
Packit 14c646
          in network order as 32 bits.
Packit 14c646
        
Packit 14c646
        *Never* underestimate the value of a pathological test suite carefully
Packit 14c646
        crafted with maximum malice before writing a line of real code. It
Packit 14c646
        prevents crafty bugs from stowing away in your released code.
Packit 14c646
        It's much less embarrassing to find them before you ship.
Packit 14c646
        (Well, never underestimate it if you ever want to work for me)
Packit 14c646
        
Packit 14c646
Fri May 17 22:48:59 BST 2002   Nicholas Clark <nick@ccl4.org>
Packit 14c646
Packit 14c646
    Version 2.0, binary format 2.5 (but writes format 2.4 on pre 5.7.3)
Packit 14c646
Packit 14c646
        The perl5 porters have decided to make sure that Storable still
Packit 14c646
        builds on pre-5.8 perls, and make the 5.8 version available on CPAN.
Packit 14c646
        The VERSION is now 2.0, and it passes all tests on 5.005_03, 5.6.1
Packit 14c646
        and 5.6.1 with threads. On 5.6.0 t/downgrade.t fails tests 34 and 37,
Packit 14c646
        due to a bug in 5.6.0 - upgrade to 5.6.1.
Packit 14c646
Packit 14c646
        Jarkko and I have collated the list of changes the perl5 porters have
Packit 14c646
        from the perl5 Changes file:
Packit 14c646
Packit 14c646
        - data features of upcoming perl 5.8.0 are supported: Unicode hash
Packit 14c646
          keys (Unicode hash values have been supported since Storable 1.0.1)
Packit 14c646
          and "restricted hashes" (readonly hashes and hash entries)
Packit 14c646
        - a newer version of perl can now be used to serialize data which is
Packit 14c646
          not supported in earlier perls: Storable will attempt to do the
Packit 14c646
          right thing for as long as possible, croaking only when safe data
Packit 14c646
          conversion simply isn't possible. Alternatively earlier perls can
Packit 14c646
          opt to have a lossy downgrade data instead of croaking
Packit 14c646
        - when built with perls pre 5.7.3 this Storable writes out files
Packit 14c646
          with binary format 2.4, the same format as Storable 1.0.8 onwards.
Packit 14c646
          This should mean that this Storable will inter-operate seamlessly
Packit 14c646
          with any Storable 1.0.8 or newer on perls pre 5.7.3
Packit 14c646
        - dclone() now works with empty string scalar objects
Packit 14c646
        - retrieving of large hashes is now more efficient
Packit 14c646
        - more routines autosplit out of the main module, so Storable should
Packit 14c646
          load slightly more quickly
Packit 14c646
        - better documentation
Packit 14c646
        - the internal context objects are now freed explicitly, rather than
Packit 14c646
          relying on thread or process exit
Packit 14c646
        - bugs fixed in debugging trace code affecting builds made with 64 bit
Packit 14c646
          IVs
Packit 14c646
        - code tidy-ups to allow clean compiles with more warning options
Packit 14c646
          turned on avoid problems with $@ getting corrupted on 5.005_03 if
Packit 14c646
          Carp wasn't already loaded
Packit 14c646
        - added &show_file_magic, so you can add to /etc/magic and teach
Packit 14c646
          Unix's file command about Storable files
Packit 14c646
Packit 14c646
        We plan to keep Storable on CPAN in sync with the Perl core, so
Packit 14c646
        if you encounter bugs or other problems building or using Storable,
Packit 14c646
        please let us know at perl5-porters@perl.org
Packit 14c646
        Patches welcome!
Packit 14c646
        
Packit 14c646
Sat Dec  1 14:37:54 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        This is the LAST maintenance release of the Storable module.
Packit 14c646
        Indeed, Storable is now part of perl 5.8, and will be maintained
Packit 14c646
        as part of Perl.  The CPAN module will remain available there
Packit 14c646
        for people running pre-5.8 perls.
Packit 14c646
Packit 14c646
        Avoid requiring Fcntl upfront, useful to embedded runtimes.
Packit 14c646
        Use an eval {} for testing, instead of making Storable.pm
Packit 14c646
        simply fail its compilation in the BEGIN block.
Packit 14c646
Packit 14c646
        store_fd() will now correctly autoflush file if needed.
Packit 14c646
Packit 14c646
Tue Aug 28 23:53:20 MEST 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        Fixed truncation race with lock_retrieve() in lock_store().
Packit 14c646
        The file has to be truncated only once the exclusive lock is held.
Packit 14c646
Packit 14c646
        Removed spurious debugging messages in .xs file.
Packit 14c646
Packit 14c646
Sun Jul  1 13:27:32 MEST 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        Systematically use "=over 4" for POD linters.
Packit 14c646
        Apparently, POD linters are much stricter than would
Packit 14c646
        otherwise be needed, but that's OK.
Packit 14c646
Packit 14c646
        Fixed memory corruption on croaks during thaw().  Thanks
Packit 14c646
        to Claudio Garcia for reproducing this bug and providing the
Packit 14c646
        code to exercise it.  Added test cases for this bug, adapted
Packit 14c646
        from Claudio's code.
Packit 14c646
Packit 14c646
        Made code compile cleanly with -Wall (from Jarkko Hietaniemi).
Packit 14c646
Packit 14c646
        Changed tagnum and classnum from I32 to IV in context.  Also
Packit 14c646
        from Jarkko.
Packit 14c646
Packit 14c646
Thu Mar 15 01:22:32 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        Last version was wrongly compiling with assertions on, due
Packit 14c646
        to an edit glitch.  That did not cause any problem (apart from
Packit 14c646
        a slight performance loss) excepted on Win* platforms, where the
Packit 14c646
        assertion code does not compile.
Packit 14c646
Packit 14c646
Sat Feb 17 13:37:37 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
    Version 1.0.10.
Packit 14c646
Packit 14c646
        Forgot to increase version number at previous patch (there were
Packit 14c646
        two of them, which is why we jump from 1.0.8 to 1.0.10).
Packit 14c646
Packit 14c646
Sat Feb 17 13:35:00 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
    Version 1.0.8, binary format 2.4.
Packit 14c646
Packit 14c646
        Fixed incorrect error message.
Packit 14c646
Packit 14c646
        Now bless objects ASAP at retrieve time, which is meant to fix
Packit 14c646
        two bugs:
Packit 14c646
Packit 14c646
        * Indirect references to overloaded object were not able to
Packit 14c646
          restore overloading if the object was not blessed yet,
Packit 14c646
          which was possible since blessing occurred only after the
Packit 14c646
          recursive retrieval.
Packit 14c646
Packit 14c646
        * Storable hooks asking for serialization of blessed ref could
Packit 14c646
          get un-blessed refs at retrieval time, for the very same
Packit 14c646
          reason.
Packit 14c646
Packit 14c646
        The fix implemented here was suggested by Nick Ing-Simmons.
Packit 14c646
Packit 14c646
        Added support for blessed ref to tied structures.  This is the
Packit 14c646
        cause for the binary format change.
Packit 14c646
Packit 14c646
        Added EBCDIC version of the compatibility test with 0.6.11,
Packit 14c646
        from Peter Prymmer
Packit 14c646
Packit 14c646
        Added tests for the new features, and to make sure the bugs they
Packit 14c646
        are meant to fix are indeed fixed.
Packit 14c646
Packit 14c646
Wed Jan  3 10:43:18 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        Removed spurious 'clean' entry in Makefile.PL.
Packit 14c646
Packit 14c646
        Added CAN_FLOCK to determine whether we can flock() or not,
Packit 14c646
        by inspecting Perl's configuration parameters, as determined
Packit 14c646
        by Configure.
Packit 14c646
Packit 14c646
        Trace offending package when overloading cannot be restored
Packit 14c646
        on a scalar.
Packit 14c646
Packit 14c646
        Made context cleanup safer to avoid dup freeing, mostly in the
Packit 14c646
        presence of repeated exceptions during store/retrieve (which can
Packit 14c646
        cause memory leaks anyway, so it's just additional safety, not a
Packit 14c646
        definite fix).
Packit 14c646
Packit 14c646
Sun Nov  5 18:23:48 MET 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
    Version 1.0.6.
Packit 14c646
Packit 14c646
        Fixed severe "object lost" bug for STORABLE_freeze returns,
Packit 14c646
        when refs to lexicals, taken within the hook, were to be
Packit 14c646
        serialized by Storable.  Enhanced the t/recurse.t test to
Packit 14c646
        stress hook a little more with refs to lexicals.
Packit 14c646
Packit 14c646
Thu Oct 26 19:14:38 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
    Version 1.0.5.
Packit 14c646
Packit 14c646
        Documented that store() and retrieve() can return undef.
Packit 14c646
        That is, the error reporting is not always made via exceptions,
Packit 14c646
        as the paragraph on error reporting was implying.
Packit 14c646
Packit 14c646
        Auto requires module of blessed ref when STORABLE_thaw misses.
Packit 14c646
        When the Storable engine looks for the STORABLE_thaw hook and
Packit 14c646
        does not find it, it now tries to require the package into which
Packit 14c646
        the blessed reference is.
Packit 14c646
Packit 14c646
        Just check $^O, in t/lock.t: there's no need to pull the whole
Packit 14c646
        Config module for that.
Packit 14c646
Packit 14c646
Mon Oct 23 20:03:49 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
    Version 1.0.4.
Packit 14c646
Packit 14c646
        Protected calls to flock() for DOS platform: apparently, the
Packit 14c646
        flock/fcnlt emulation is reported to be broken on that
Packit 14c646
        platform.
Packit 14c646
Packit 14c646
        Added logcarp emulation if they don't have Log::Agent, since
Packit 14c646
        we now use it to carp when lock_store/lock_retrieve is used
Packit 14c646
        on DOS.
Packit 14c646
Packit 14c646
Fri Sep 29 21:52:29 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
    Version 1.0.3.
Packit 14c646
Packit 14c646
        Avoid using "tainted" and "dirty" since Perl remaps them via
Packit 14c646
        cpp (i.e. #define).  This is deeply harmful when threading
Packit 14c646
        is enabled.  This concerned both the context structure and
Packit 14c646
        local variable and argument names.  Brrr..., scary!
Packit 14c646
Packit 14c646
Thu Sep 28 23:46:39 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
    Version 1.0.2.
Packit 14c646
Packit 14c646
        Fixed spelling in README.
Packit 14c646
Packit 14c646
        Added lock_store, lock_nstore, and lock_retrieve (advisory locking)
Packit 14c646
        after a proposal from Erik Haugan <erik@solbors.no>.
Packit 14c646
Packit 14c646
        Perls before 5.004_04 lack newSVpvn, added remapping in XS.
Packit 14c646
Packit 14c646
        Fixed stupid typo in the t/utf8.t test.
Packit 14c646
Packit 14c646
Sun Sep 17 18:51:10 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
    Version 1.0.1, binary format 2.3.
Packit 14c646
Packit 14c646
        Documented that doubles are stored stringified by nstore().
Packit 14c646
Packit 14c646
        Added Salvador Ortiz Garcia in CREDITS section,  He identified
Packit 14c646
        a bug in the store hooks and proposed the right fix: the class
Packit 14c646
        id was allocated too soon.  His bug case was also added to
Packit 14c646
        the regression test suite.
Packit 14c646
Packit 14c646
        Now only taint retrieved data when source was tainted.  A bug
Packit 14c646
        discovered by Marc Lehmann.
Packit 14c646
Packit 14c646
        Added support for UTF-8 strings, a contribution of Marc Lehmann.
Packit 14c646
        This is normally only activated in post-5.6 perls.
Packit 14c646
Packit 14c646
Thu Aug 31 23:06:06 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        First official release Storable 1.0, for inclusion in perl 5.7.0.
Packit 14c646
        The license scheme is now compatible with Perl's.
Packit 14c646
Packit 14c646
Thu Aug 24 01:02:02 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        ANSI-fied most of the code, preparing for Perl core integration.
Packit 14c646
        The next version of Storable will be 0.8, and will be integrated
Packit 14c646
        into the Perl core (development branch).
Packit 14c646
Packit 14c646
        Dispatch tables were moved upfront to relieve some compilers,
Packit 14c646
        especially on AIX and Windows platforms.
Packit 14c646
Packit 14c646
        Merged 64-bit fixes from perl5-porters.
Packit 14c646
Packit 14c646
Mon Aug 14 09:22:04 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        Added a refcnt dec in retrieve_tied_key(): sv_magic() increases
Packit 14c646
        the refcnt on the mg_ptr as well.
Packit 14c646
Packit 14c646
        Removed spurious dependency to Devel::Peek, which was used for
Packit 14c646
        testing only in t/tied_items.t.  Thanks to Conrad Heiney
Packit 14c646
        <conrad@fringehead.org> for spotting it first.
Packit 14c646
Packit 14c646
Sun Aug 13 22:12:59 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        Marc Lehmann kindly contributed code to add overloading support
Packit 14c646
        and to handle references to tied variables.
Packit 14c646
Packit 14c646
        Rewrote leading blurb about compatibility to make it clearer what
Packit 14c646
        "backward compatibility" is about: when I say 0.7 is backward
Packit 14c646
        compatible with 0.6, it means the revision 0.7 can read files
Packit 14c646
        produced by 0.6.
Packit 14c646
Packit 14c646
        Mention new Clone(3) extension in SEE ALSO.
Packit 14c646
Packit 14c646
        Was wrongly optimizing for "undef" values in hashes by not
Packit 14c646
        fully recursing: as a result, tied "undef" values were incorrectly
Packit 14c646
        serialized.
Packit 14c646
Packit 14c646
Sun Jul 30 12:59:17 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
    First revision of Storable 0.7.
Packit 14c646
Packit 14c646
        The serializing format is new, known as version 2.0.  It is fully
Packit 14c646
        backward compatible with 0.6.  Earlier formats are deprecated and
Packit 14c646
        have not even been tested: next version will drop pre-0.6 format.
Packit 14c646
Packit 14c646
        Changes since 0.6@11:
Packit 14c646
Packit 14c646
        - Moved interface to the "beta" status.  Some tiny parts are still
Packit 14c646
          subject to change, but nothing important enough to warrant an "alpha"
Packit 14c646
          status any longer.
Packit 14c646
Packit 14c646
        - Slightly reduced the size of the Storable image by factorizing
Packit 14c646
          object class names and removing final object storage notification due
Packit 14c646
          to a redesign of the blessed object storing.
Packit 14c646
Packit 14c646
        - Classes can now redefine how they wish their instances to be serialized
Packit 14c646
          and/or deep cloned.  Serializing hooks are written in Perl code.
Packit 14c646
Packit 14c646
        - The engine is now fully re-entrant.
Packit 14c646
Packit 14c646
Sun Apr  2 23:47:50 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        Added provision to detect more recent binary formats, since
Packit 14c646
        the new upcoming Storable-0.7 will use a different format.
Packit 14c646
        In order to prevent attempting the de-serialization of newer
Packit 14c646
        formats by older versions, I'm adding this now to the 0.6 series.
Packit 14c646
Packit 14c646
        I'm expecting this revision to be the last of the 0.6 series.
Packit 14c646
        Unless it does not work with perl 5.6, which I don't use yet,
Packit 14c646
        and therefore against which I cannot test.
Packit 14c646
Packit 14c646
Wed Mar 29 19:55:21 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        Added note about format incompatibilities with old versions
Packit 14c646
        (i.e. pre 0.5@9 formats, which cannot be understood as there
Packit 14c646
        was no versionning information in the file by then).
Packit 14c646
Packit 14c646
        Protect all $@ variables when eval {} used, to avoid corrupting
Packit 14c646
        it when store/retrieve is called within an exception handler.
Packit 14c646
Packit 14c646
        Mistakenly included "patchlevel.h" instead of <patchlevel.h>,
Packit 14c646
        preventing Perl's patchlevel from being included, which is
Packit 14c646
        needed starting from 5.6.
Packit 14c646
Packit 14c646
Tue May 12 09:15:15 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Fixed shared "undef" bug in hashes, which did not remain shared
Packit 14c646
        through store/retrieve.
Packit 14c646
Packit 14c646
Thu Feb 10 19:48:16 MET 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        added last_op_in_netorder() predicate
Packit 14c646
        documented last_op_in_netorder()
Packit 14c646
        added tests for the new last_op_in_netorder() predicate
Packit 14c646
Packit 14c646
Wed Oct 20 19:07:36 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        Forgot to update VERSION
Packit 14c646
Packit 14c646
Tue Oct 19 21:25:02 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        Added mention of japanese translation for the manual page.
Packit 14c646
Packit 14c646
        Fixed typo in macro that made threaded code not compilable,
Packit 14c646
        especially on Win32 platforms.
Packit 14c646
Packit 14c646
        Changed detection of older perls (pre-5.005) by testing PATCHLEVEL
Packit 14c646
        directly instead of relying on internal symbols.
Packit 14c646
Packit 14c646
Tue Sep 14 22:13:28 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        Integrated "thread-safe" patch from Murray Nesbitt.
Packit 14c646
        Note that this may not be very efficient for threaded code,
Packit 14c646
        see comment in the code.
Packit 14c646
Packit 14c646
        Try to avoid compilation warning on 64-bit CPUs. Can't test it,
Packit 14c646
        since I don't have access to such machines.
Packit 14c646
Packit 14c646
Mon Jul 12 14:37:19 METDST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
Packit 14c646
Packit 14c646
        changed my e-mail to pobox.
Packit 14c646
Packit 14c646
        mentioned it is not thread-safe.
Packit 14c646
Packit 14c646
        updated version number.
Packit 14c646
Packit 14c646
        uses new internal PL_* naming convention.
Packit 14c646
Packit 14c646
Fri Jul  3 13:38:16 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Updated benchmark figures due to recent optimizations done in
Packit 14c646
        store(): tagnums are now stored as-is in the hash table, so
Packit 14c646
        no surrounding SV is created. And the "shared keys" mode for
Packit 14c646
        hash table was turned off.
Packit 14c646
Packit 14c646
        Fixed backward compatibility (wrt 0.5@9) for retrieval of
Packit 14c646
        blessed refs. That old version did something wrong, but the
Packit 14c646
        bugfix prevented correct retrieval of the old format.
Packit 14c646
Packit 14c646
Mon Jun 22 11:00:48 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Changed benchmark figures.
Packit 14c646
Packit 14c646
        Adjust refcnt of tied objects after calling sv_magic() to avoid
Packit 14c646
        memory leaks.  Contributed by Jeff Gresham.
Packit 14c646
Packit 14c646
Fri Jun 12 11:50:04 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Added workaround for persistent LVALUE-ness in perl5.004. All
Packit 14c646
        scalars tagged as being an lvalue are handled as if they were
Packit 14c646
        not an lvalue at all.  Added test for that LVALUE bug workaround.
Packit 14c646
Packit 14c646
        Now handles Perl immortal scalars explicitly, by storing &sv_yes
Packit 14c646
        as such, explicitly.
Packit 14c646
Packit 14c646
        Retrieval of non-immortal undef cannot be shared. Previous
Packit 14c646
        version was over-optimizing by not creating a separate SV for
Packit 14c646
        all undefined scalars seen.
Packit 14c646
Packit 14c646
Thu Jun  4 17:21:51 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
    Baseline for Storable-0.6@0.
Packit 14c646
Packit 14c646
        This version introduces a binary incompatibility in the generated
Packit 14c646
        binary image, which is more compact than older ones by approximatively
Packit 14c646
        15%, depending on the exact degree of sharing in your structures.
Packit 14c646
Packit 14c646
        The good news is that your older images can still be retrieved with
Packit 14c646
        this version, i.e. backward compatibility is preserved. This version
Packit 14c646
        of Storable can only generate new binaries however.
Packit 14c646
Packit 14c646
        Another good news is that the retrieval of data structure is
Packit 14c646
        significantly quicker than before, because a Perl array is used
Packit 14c646
        instead of a hash table to keep track of retrieved objects, and
Packit 14c646
        also because the image being smaller, less I/O function calls are
Packit 14c646
        made.
Packit 14c646
Packit 14c646
Tue May 12 09:15:15 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Version number now got from Storable.pm directly.
Packit 14c646
Packit 14c646
        Fixed overzealous sv_type() optimization, which would make
Packit 14c646
        Storable fail when faced with an "upgraded" SV to the PVIV
Packit 14c646
        or PVNV kind containing a reference.
Packit 14c646
Packit 14c646
Thu Apr 30 15:11:30 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Extended the SYNOPSIS section to give quick overview of the
Packit 14c646
        routines and their signature.
Packit 14c646
Packit 14c646
        Optimized sv_type() to avoid flags checking when not needed, i.e.
Packit 14c646
        when their type makes it impossible for them to be refs or tied.
Packit 14c646
        This slightly increases throughput by a few percents when refs
Packit 14c646
        and tied variables are marginal occurrences in your data.
Packit 14c646
Packit 14c646
        Stubs for XS now use OutputStream and InputStream file types to
Packit 14c646
        make it work when the given file is actually a socket. Perl
Packit 14c646
        makes a distinction for sockets in its internal I/O structures
Packit 14c646
        by having both a read and a write structure, whereas plain files
Packit 14c646
        share the same one.
Packit 14c646
Packit 14c646
Tue Jun  3 09:41:33 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Thanks to a contribution from Benjamin A. Holzman, Storable is now
Packit 14c646
        able to correctly serialize tied SVs, i.e. tied arrays, hashes
Packit 14c646
        and scalars.
Packit 14c646
Packit 14c646
Thu Apr  9 18:07:51 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        I said SvPOK() had changed to SvPOKp(), but that was a lie...
Packit 14c646
Packit 14c646
Wed Apr  8 13:14:29 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Wrote sizeof(SV *) instead of sizeof(I32) when portable, which
Packit 14c646
        in effect mangled the object tags and prevented portability
Packit 14c646
        across 32/64 bit architectures!
Packit 14c646
Packit 14c646
Wed Mar 25 14:57:02 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Added code example for store_fd() and retrieve_fd() in the
Packit 14c646
        man page, to emphasize that file descriptors must be passed as
Packit 14c646
        globs, not as plain strings.
Packit 14c646
Packit 14c646
        Cannot use SV addresses as tag when using nstore() on LP64. This
Packit 14c646
        was the cause of problems when creating a storable image on an
Packit 14c646
        LP64 machine and retrieving it on an ILP32 system, which is
Packit 14c646
        exactly what nstore() is meant for...
Packit 14c646
Packit 14c646
        However, we continue to use SV addresses as tags for plain store(),
Packit 14c646
        because benchmarking shows that it saves up to 8% of the store
Packit 14c646
        time, and store() is meant to be fast at the expense of lack
Packit 14c646
        of portability.
Packit 14c646
Packit 14c646
        This means there will be approximately an 8% degradation of
Packit 14c646
        performance for nstore(), but it's now working as expected.
Packit 14c646
        That cost may vary on your machine of course, since it is
Packit 14c646
        solely caused by the memory allocation overhead used to create
Packit 14c646
        unique SV tags for each distinct stored SV.
Packit 14c646
Packit 14c646
Tue Jan 20 09:21:53 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Don't use any '_' in version number.
Packit 14c646
Packit 14c646
Tue Jan 13 17:51:50 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Updated version number.
Packit 14c646
Packit 14c646
        added binmode() calls for systems where it matters.
Packit 14c646
Packit 14c646
        Be sure to pass globs, not plain file strings, to C routines,
Packit 14c646
        so that Storable can be used under the Perl debugger.
Packit 14c646
Packit 14c646
Wed Nov  5 10:53:22 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Fix memory leaks on seen hash table and returned SV refs.
Packit 14c646
Packit 14c646
        Storable did not work properly when tainting enabled.
Packit 14c646
Packit 14c646
        Fixed "Allocation too large" messages in freeze/thaw and added.
Packit 14c646
        proper regression test in t/freeze.t.
Packit 14c646
Packit 14c646
Tue Jun  3 09:41:33 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Updated version number
Packit 14c646
Packit 14c646
        Added freeze/thaw interface and dclone.
Packit 14c646
Packit 14c646
Fri May 16 10:45:47 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Forgot that AutoLoader does not export its own AUTOLOAD.
Packit 14c646
        I could use
Packit 14c646
Packit 14c646
                use AutoLoader 'AUTOLOAD';
Packit 14c646
        
Packit 14c646
        but that would not be backward compatible. So the export is
Packit 14c646
        done by hand...
Packit 14c646
Packit 14c646
Tue Mar 25 11:21:32 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Empty scalar strings are now "defined" at retrieval time.
Packit 14c646
Packit 14c646
        New test to ensure an empty string is defined when retrieved.
Packit 14c646
Packit 14c646
Thu Feb 27 16:32:44 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Updated version number
Packit 14c646
Packit 14c646
        Declare VERSION as being used
Packit 14c646
Packit 14c646
        Fixed a typo in the PerlIO_putc remapping.
Packit 14c646
        PerlIO_read and perlIO_write inverted size/nb_items.
Packit 14c646
        (only relevant for pre-perl5.004 versions)
Packit 14c646
Packit 14c646
Thu Feb 27 15:58:31 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Updated version number
Packit 14c646
Packit 14c646
        Added VERSION identification
Packit 14c646
Packit 14c646
        Allow build with perl5.003, which is ante perlIO time
Packit 14c646
Packit 14c646
Mon Jan 13 17:53:18 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Random code fixes.
Packit 14c646
Packit 14c646
Wed Jan 22 15:19:56 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
Packit 14c646
Packit 14c646
        Updated version number in Makefile.PL.
Packit 14c646
Packit 14c646
        Added "thanks to" section to README.
Packit 14c646
Packit 14c646
        Documented new forgive_me variable.
Packit 14c646
Packit 14c646
        Made 64-bit clean.
Packit 14c646
Packit 14c646
        Added forgive_me support to allow store() of data structures
Packit 14c646
        containing non-storable items like CODE refs.