12010-01-27 10:27:00 TonyC
2    version 3.20
3        * fix a format string and arguments for some debugging text
4        * linkify references to alternatives to Storable
5
62020-01-27 11:01:00 TonyC
7    version 3.19
8        * add casts to match some I32 parameters to "%d" formats (#17339)
9        * fix dependencies in Makefile.PL -> META (#17422)
10        * make use of note() optional, this requires a newer version of
11          Test::More and there's a circular dependency between later
12          versions of Test::More and Storable  (#17422)
13
142019-11-19 07:59:39 TonyC
15    version 3.18
16        * update bug tracker to point at github (#17298)
17        * disallow vstring magic strings over 2GB-1 (#17306)
18        * mark some ASCII dependent tests as ASCII platform only
19
202019-08-08 11:48:00 TonyC
21    version 3.17
22        * correct a data type to ensure the check for too large results from
23	  STORABLE_freeze() are detected correctly (detected by Coverity)
24	* removed remains of stack size detection from the build process.
25	* moved CAN_FLOCK detection into XS to simplify the build process.
26
272019-06-11 10:43:00 TonyC
28    version 3.16
29        * (perl #134179) fix self-referencing structures that include regexps
30        * bless regexps to preserve bless qr//, "Foo"
31
322019-04-23 16:00:00 xsawyerx
33    version 3.15
34    * Fix leaking.
35
36unreleased
37    version 3.14
38	* (perl #133708) don't build-time probe for stack limits at all
39
40unreleased
41    version 3.12
42        * (perl #133411) don't probe for stack limits with -Dusecrosscompile
43
442018-04-27 20:40:00 xsawyerx
45    version 3.11
46        * Fix Strawberry Perl build failures.
47
482018-04-21 22:00:00 xsawyerx
49    Version 3.10
50        * Fix binary artifacts from distribution.
51
522018-04-21 16:49:00 xsawyerx
53    Version 3.09
54        * Fix "provides" in metadata (META.yml/META.json) to use the Storable
55          template instead of a small other file (which also didn't exist).
56
572018-04-21 11:23:00 xsawyerx
58    Version 3.08
59        * (perl #132849) try to disable core files when deliberatly segfaulting.
60        * (perl #127743) don't probe Storable limits so much.
61        * (perl #132893) don't probe for Storable recursion limits on old Win32.
62        * (perl #132870) workaround VC2017 compiler bug.
63        * (perl #127743) re-work for debugging builds with MSVC.
64        * (perl #133039) dont build a Storable.so/.dll with a static perl build.
65
662018-02-07 15:08:00 tonyc
67    Version 3.06
68
69        * support large object ids.  The code in theory supported arrays
70        with more than 2**32 elements, but references to the elements
71        emitted at the end of the array with be retrieved as references to
72        the wrong elements.
73        * 32-bit object ids over 2**31-1 weren't correctly handled.
74        * hook object id generation now supports 64-bit ids where needed
75        * writing 64-bit lengths in network order now works
76        * reading 64-bit lengths in network order now reads the components
77        in the correct order.
78        * retrieving large object tags are now only handled on 64-bit
79        platforms, large object tags should only be emitted for objects
80        that are too large for the 32-bit address space, so it was only
81        wasted code.
82        * reading 32-bit lengths for LSCALAR and LUTF8STR as unsigned
83        (perl #131990)
84        * reading flagged large object hashes didn't read the flags
85        * treat the 32-bit size of hook data as unsigned, values over 2GB
86        were treated as large (close to 2**64) parameters to NEWSV().
87        (perl #131999)
88        * added support for hook data over 4GB in size
89        * zero length data receievd from STORABLE_freeze() no longer
90        results in an invalid SV being passed to STORABLE_thaw/_attach()
91        (perl #118551)
92        * where practical, padding is now cleared when emitting a long
93        double (perl #131136)
94        * cache the value of $Storable::DEBUGME (since cperl enabled
95        Storable TRACEME builds for all -DDEBUGGING builds)
96        * no longer discard exceptions thrown by
97        STORABLE_freeze/_thaw/attach() (perl #25933)
98        * fix dependencies used to build Storable.pm from __Storable__.pm
99        * add experimental support for freezing/thawing regular
100        expressions (perl #50608)
101        * re-work recursion limiting to store the limit in a perl variable
102        instead of baked into Storable.$so.  This allows static Storable
103        builds to work, and avoids the kind of circular reference on
104        Storable.$so.
105
1062017-07-24 13:57:13 rurban
107    Version 3.05_13
108
109        * mingw fix: use safe defaults, not segfaulting defaults.
110        mingw fails on the stacksize binary search, leaving it empty.
111
112Wed Apr 19 09:11:07 2017 +0200 Reini Urban <rurban@cpan.org>
113    Version 3.05_12
114
115        * enhance stack reserve from 8 to 16
116        * fix LD_LIBRARY_PATH usage for CORE
117        * fixed some coverity warnings and leaks
118        * added a release make target
119
120Wed Mar 29 21:04:28 2017 +0200 Reini Urban <rurban@cpan.org>
121    Version 3.05_11
122
123        * croak on sizes read > I32_MAX
124        * simplify last_op_in_netorder
125        * protect from empty retrieve_vstring
126        * protect store_other error buf, potential static
127        buffer overflow.
128
129Tue Mar 14 09:52:20 2017 +0100 Reini Urban <rurban@cpan.org>
130    Version 3.05_10
131
132        * CORE-only improvements to stacksize
133
134Thu Mar 9 19:20:19 2017 +0100 Reini Urban <rurban@cpan.org>
135    Version 3.05_09
136
137        * compute the stacksizes, improve cleanup within croak
138        from stack exhaustion.
139        * added stack_depth and stack_depth_hash getters.
140
141Wed Mar  8 21:03:43 CET 2017 Reini Urban <rurban@cpan.org>
142    Version 3.05_08
143
144        * finetune the max stack limit, for C++, DEBUGGING and 32bit.
145        * fix t/blessed.t for cperl5.22
146
147Sun Mar 5 13:36:47 2017 +0100 Reini Urban <rurban@cpan.org>
148    Version 3.05_07
149
150        * Fixed a podchecker issue
151
152Sun Mar 5 11:42:04 2017 +0100 Reini Urban <rurban@cpan.org>
153    Version 3.05_06
154
155        * Fixed wrong recursion depth error with large arrays containing
156        another array.
157	L<[cperl #257]|https://github.com/perl11/cperl/issues/257>
158
159Thu Feb 2 12:40:44 2017 +0100 Reini Urban <rurban@cpanel.net>
160    Version 3.05_05
161
162        * Add leak tests for [cpan #97316], [perl #121928]
163        * Limit the max recursion depth to 1200 on 32bit systems.
164        We have no max_depth option yet, as in JSON::XS.
165
166Thu Feb 2 11:59:21 2017 +0100 Reini Urban <rurban@cpanel.net>
167    Version 3.05_04
168
169        * Fix retrieve_tied_array which fails since 5.16
170        [cpan #84705]
171        * Improve t/blessed.t in the creation of sv_yes/sv_no
172        with threaded perls.
173
174Tue Jan 31 02:55:30 2017 +0100 Reini Urban <rurban@cpanel.net>
175    Version 3.05_03
176
177        * Tune t/recurse.t stack-overflow limit more.
178
179Mon Jan 30 19:50:29 2017 +0100 Reini Urban <rurban@cpanel.net>
180    Version 3.05_02
181
182        * Tune t/recurse.t stack-overflow limit. Small 64bit systems overflow
183        even with depth 3000, where 32bit are ok.
184
185Mon Jan 30 15:13:38 2017 +0100 Reini Urban <rurban@cpanel.net>
186    Version 3.05_01
187
188        * Protect against stack overflows with nested arrays and hashes
189        [cpan #97526]. This imposes a new limit to your nested structures,
190        but JSON::XS has a limit of 512. We use a max_depth of 3000 for the
191        typical stack limit of 8k.
192
193
194Sun Jan 29 11:36:43 2017 +0100 Reini Urban <rurban@cpanel.net>
195    Version 3.05
196
197        * Protect against classname len overflow on the stack
198        and 2x on the heap with retrieve_bless and retrieve_hook.
199        A serious security issue with malcrafted storable files or buffers,
200        but p5p accepts no CVE on Storable attacks. See RT #130635
201        (reported by JD).
202        * Fix NULL ptr SEGVs with retrieve_code and retrieve_other.
203        See RT #130098 (reported and fixed by JD)
204        * Fix wrong huge LOBJECT support, broken since 3.00c.
205        Repro with `export PERL_TEST_MEMORY=8`
206        * Fix the few remaining 2-arg open calls.
207        * Portability and backport fixes back to 5.6.2
208
209Sat Jan 7 09:01:29 2017 +0100 Reini Urban <rurban@cpanel.net>
210    Version 3.04c
211
212        * fix printf types and warnings, esp. for 32bit use64bitint
213        * Change sv_setpvn(…, "…", …) to sv_setpvs(…, "…")
214
215Tue Jul 26 11:49:33 2016 +1000 Tony Cook <tony@develop-help.com>
216    Version 3.03c
217
218        * remove . from @INC when loading optional modules
219
220Sun Nov 20 18:06:45 2016 +0100 Reini Urban <rurban@cpanel.net>
221    Version 3.02c
222
223        * Fix -Wc++11-compat warnings, fix -Wchar-subscripts
224
225Fri Sep 16 01:32:59 2016 +0200 Reini Urban <rurban@cpanel.net>
226    Version 3.01c
227
228        * Added warn_security("Movable-Type CVE-2015-1592 Storable metasploit attack")
229          when detecting the third destructive metasploit vector,
230          thawing bless \"mt-config.cgi", "CGITempFile".
231
232Thu Mar 31 17:10:27 2016 +0200 Reini Urban <rurban@cpanel.net>
233    Version 3.00c
234
235        * Added support for u64 strings, arrays and hashes >2G
236          via a new LOBJECT tag. This is for 32bit systems and lengths
237          between 2GB and 4GB (I32-U32), and 64bit (>I32).
238        * Bumped STORABLE_BIN_MINOR and STORABLE_BIN_WRITE_MINOR from 10 to 11
239        * fix parallel tests, use unique filenames.
240        * fixed 2 instances of 2arg open,
241        * added optional flag arguments to skip tie and bless on retrieve/thaw,
242        * added SECURITY WARNING and Large data support to docs
243        * compute CAN_FLOCK at compile-time
244        * reformat everything consistently
245        * enable DEBUGME tracing and asserts with -DDEBUGGING
246        * fix all 64 bit compiler warnings
247        * added some abstraction methods to avoid code duplication
248
249?????? p5p <perl5-porters@perl.org>
250    Version 2.65
251
252	* Replace multiple 'use vars' by 'our'
253	* remove Config dependency
254
255Wed Jul  2 16:25:25 IST 2014   Abhijit Menon-Sen <ams@toroid.org>
256    Version 2.51
257
258	* [perl #121928] Fix memory leak for dclone inside freeze hook
259	  (Alex Solovey)
260	* Do not call DESTROY for empty objects
261	  (Vladimir Timofeev)
262	* Other bugfixes
263
264Sat Jul 13 18:34:27 IST 2013   Abhijit Menon-Sen <ams@toroid.org>
265    Version 2.45
266
267       * [perl #118829] Memory leaks in STORABLE_attach
268         (Vladimir Timofeev)
269       * [perl #118139] Don't SEGV during global destruction
270         (Nicholas Clark, report/test from Reini Urban)
271       * Added security warnings section (Steffen Mueller)
272       * Update INSTALLDIRS to favour installation in 'site'
273         (James E Keenan)
274
275Tue 11 Sep 06:51:11 IST 2012   Abhijit Menon-Sen <ams@toroid.org>
276    Version 2.39
277
278	Various bugfixes, including compatibility fixes for older
279	versions of Perl and vstring handling.
280
281Sun  3 Jul 09:10:11 IST 2011   Abhijit Menon-Sen <ams@toroid.org>
282    Version 2.29
283
284	Various bugfixes, notably including preventing nfreeze from
285	incorrectly stringifying integers.
286
287Fri  3 Dec 14:12:32 GMT 2010   David Leadbeater <dgl@dgl.cx>
288    Version 2.25
289
290	Support for serializing coderefs containing UTF-8.
291
292Fri Nov 12 10:52:19 IST 2010   Abhijit Menon-Sen <ams@toroid.org>
293
294    Version 2.24
295
296	Performance improvement for overloaded classes from Benjamin
297	Holzman.
298
299Fri Nov 12 10:36:22 IST 2010   Abhijit Menon-Sen <ams@toroid.org>
300
301    Version 2.23
302
303	Release the latest version from the Perl repository.
304
305Thu Aug  6 10:55:50 IST 2009   Abhijit Menon-Sen <ams@toroid.org>
306
307    Version 2.21
308
309	Includes hints/hpux.pl that was inadvertently left out of 2.20.
310
311Mon May 18 09:38:20 IST 2009   Abhijit Menon-Sen <ams@toroid.org>
312
313    Version 2.20
314
315	Fix bug handling blessed references to overloaded objects, plus
316	other miscellaneous fixes.
317
318	(Version 2.19 was released with 5.8.9.)
319
320Thu Nov 22 13:24:18 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
321
322    Version 2.18
323
324	Compile fixes for older Perls. (No functional changes.)
325
326Sat Nov 17 02:12:12 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
327
328    Version 2.17
329
330	Various broken tests fixed. (No functional changes.)
331
332Sat Mar 31 06:11:06 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
333
334    Version 2.16
335
336        1. Fixes to Storable::dclone, read_magic, retrieve_lscalar
337        2. Storable 0.1 compatibility
338        3. Miscellaneous compile/leak/test/portability fixes
339
340Mon May 23 22:48:49 IST 2005   Abhijit Menon-Sen <ams@wiw.org>
341
342    Version 2.15
343
344        Minor changes to address a couple of compile problems.
345
346Mon Apr 25 07:29:14 IST 2005   Abhijit Menon-Sen <ams@wiw.org>
347
348    Version 2.14
349
350	1. Store weak references
351	2. Add STORABLE_attach hook.
352
353Thu Jun 17 12:26:43 BST 2004   Nicholas Clark <nick@ccl4.org>
354
355    Version 2.13
356
357        1. Don't change the type of top level overloaded references to RV -
358	   they are perfectly correct as PVMG
359	2. Storable needs to cope with incoming frozen data that happens to be
360	   utf8 encoded.
361
362Wed Mar 17 15:40:29 GMT 2004   Nicholas Clark <nick@ccl4.org>
363
364    Version 2.12
365
366        1. Add regression tests for the auto-require of STORABLE_thaw
367        2. Add auto-require of modules to restore overloading (and tests)
368        3. Change to no context (should give speedup with ithreads)
369
370Sat Mar 13 20:11:03 GMT 2004   Nicholas Clark <nick@ccl4.org>
371
372    Version 2.11
373
374        1. Storing restricted hashes in canonical order would SEGV. Fixed.
375        2. It was impossible to retrieve references to PL_sv_no and
376           PL_sv_undef from STORABLE_thaw hooks.
377        3. restrict.t was failing on 5.8.0, due to 5.8.0's unique
378           implementation of restricted hashes using PL_sv_undef
379        4. These changes allow a space optimisation for restricted hashes.
380
381Sat Jan 24 16:22:32 IST 2004   Abhijit Menon-Sen <ams@wiw.org>
382
383    Version 2.10
384
385        1. Thread safety: Storable::CLONE/init_perlinterp() now create
386           a new Perl context for each new ithread.
387           (From Stas Bekman and Jan Dubois.)
388        2. Fix a tag count mismatch with $Storable::Deparse that caused
389           all back-references after a stored sub to be off-by-N (where
390           N was the number of code references in between).
391           (From Sam Vilain.)
392        3. Prevent CODE references from turning into SCALAR references.
393           (From Slaven Rezic.)
394
395Sat Jan  3 18:49:18 GMT 2004   Nicholas Clark <nick@ccl4.org>
396
397    Version 2.09
398
399	Fix minor problems with the CPAN release
400	1: Make Storable.xs work on 5.8.2 and later (already in the core)
401	2: Ship the linux hints file
402	3: Ship Test::More for the benefit of Perls pre 5.6.2
403	4: Correct Makefile.PL to only install in core for 5.8.0 and later
404
405Sat Sep  6 01:08:20 IST 2003   Abhijit Menon-Sen <ams@wiw.org>
406
407    Version 2.08
408
409        This release works around a 5.8.0 bug which caused hashes to not
410        be marked as having key flags even though an HEK had HEK_WASUTF8
411        set. (Note that the only reasonable solution is to silently drop
412        the flag from the affected key.)
413
414        Users of RT 3 who were seeing assertion failures should upgrade.
415        (Perl 5.8.1 will have the bug fixed.)
416
417Mon May  5 10:24:16 IST 2003   Abhijit Menon-Sen <ams@wiw.org>
418
419    Version 2.07
420
421        Minor bugfixes (self-tied objects are now correctly stored, as
422        are the results of additions larger than INT_MAX).
423
424Mon Oct  7 21:56:38 BST 2002   Nicholas Clark  <nick@ccl4.org>
425
426    Version 2.06
427
428	Remove qr// from t/downgrade.t so that it will run on 5.004
429	Mention $File::Spec::VERSION a second time in t/forgive.t so that it
430	runs without warnings in 5.004 (this may be a 5.00405 bug I'm working
431	round)
432	Fix t/integer.t initialisation to actually generate 64 bits of 9c
433	Fix comparison tests to use eval to get around 64 bit IV conversion
434	issues on 5.6.x, following my t/integer.t ^ precedence bug found by
435	Rafael Garcia-Suarez
436	Alter t/malice.t to work with Test/More.pm in t/, and skip individual
437	subtests that use $Config{ptrsize}, so that the rest of the test can
438	now be run with 5.004
439	Change t/malice.t and the error message in check_magic in Storable.xs
440	from "Pointer integer size" to "Pointer size"
441	Remove prerequisite of Test::More from Makefile.PL
442	Ship Test::Builder, Test::Simple and Test::More in t
443
444Thu Oct  3 08:57:22 IST 2002   Abhijit Menon-Sen <ams@wiw.org>
445
446    Version 2.05
447
448        Adds support for CODE references from Slaven Rezic
449        <slaven.rezic@berlin.de>.
450
451Fri Jun  7 23:55:41 BST 2002   Nicholas Clark
452
453    Version 2.04
454
455	Bug fix from Radu Greab <radu@netsoft.ro> (plus regression test)
456	to fix a recently introduced bug detected by Dave Rolsky.
457	Bug was that for a non threaded build, the class information was
458	being lost at freeze time on the first object with a STORABLE_freeze
459	hook. Consequentially the object was not blessed at all when thawed.
460	(The presence (or lack) of STORABLE_thaw was irrelevant; this was
461	a store-time data lost bug, caused by failure to initialize internal
462	context)
463	The bug was introduced as development perl change 16442 (on
464	2002/05/07), so has been present since 2.00.
465	Patches to introduce more regression tests to reduce the chance of
466	a reoccurrence of this sort of goof are always welcome.
467
468Thu May 30 20:31:08 BST 2002   Nicholas Clark <nick@ccl4.org>
469
470    Version 2.03        Header changes on 5.6.x on Unix where IV is long long
471
472        5.6.x introduced the ability to have IVs as long long.  However,
473        Configure still defined BYTEORDER based on the size of a long.
474        Storable uses the BYTEORDER value as part of the header, but
475        doesn't explicitly store sizeof(IV) anywhere in the header.
476        Hence on 5.6.x built with IV as long long on a platform that
477        uses Configure (ie most things except VMS and Windows) headers
478        are identical for the different IV sizes, despite the files
479        containing some fields based on sizeof(IV)
480
481        5.8.0 is consistent; all platforms have BYTEORDER in config.h
482        based on sizeof(IV) rather than sizeof(long).  This means that
483        the value of BYTEORDER will change from (say) 4321 to 87654321
484        between 5.6.1 and 5.8.0 built with the same options to Configure
485        on the same machine.  This means that the Storable header will
486        differ, and the two versions will wrongly thing that they are
487        incompatible.
488
489        For the benefit of long term consistency, Storable now
490        implements the 5.8.0 BYTEORDER policy on 5.6.x.  This means that
491        2.03 onwards default to be incompatible with 2.02 and earlier
492        (ie the large 1.0.x installed base) on the same 5.6.x perl.
493
494        To allow interworking, a new variable
495        $Storable::interwork_56_64bit is introduced. It defaults to
496        false. Set it to true to read and write old format files. Don't
497        use it unless you have existing stored data written with 5.6.x
498        that you couldn't otherwise read, or you need to interwork with
499        a machine running older Storable on a 5.6.x with long long IVs
500        (i.e., you probably don't need to use it).
501
502Sat May 25 22:38:39 BST 2002   Nicholas Clark <nick@ccl4.org>
503
504    Version 2.02
505
506        Rewrite Storable.xs so that the file header structure for write_magic
507        is built at compile time, and check_magic attempts to the header in
508        blocks rather than byte per byte. These changes make the compiled
509        extension 2.25% smaller, but are not significant enough to give a
510        noticeable speed up.
511
512Thu May 23 22:50:41 BST 2002   Nicholas Clark <nick@ccl4.org>
513
514    Version 2.01
515
516        - New regression tests integer.t
517        - Add code to safely store large unsigned integers.
518        - Change code not to attempt to store large integers (ie > 32 bits)
519          in network order as 32 bits.
520
521        *Never* underestimate the value of a pathological test suite carefully
522        crafted with maximum malice before writing a line of real code. It
523        prevents crafty bugs from stowing away in your released code.
524        It's much less embarrassing to find them before you ship.
525        (Well, never underestimate it if you ever want to work for me)
526
527Fri May 17 22:48:59 BST 2002   Nicholas Clark <nick@ccl4.org>
528
529    Version 2.0, binary format 2.5 (but writes format 2.4 on pre 5.7.3)
530
531        The perl5 porters have decided to make sure that Storable still
532        builds on pre-5.8 perls, and make the 5.8 version available on CPAN.
533        The VERSION is now 2.0, and it passes all tests on 5.005_03, 5.6.1
534        and 5.6.1 with threads. On 5.6.0 t/downgrade.t fails tests 34 and 37,
535        due to a bug in 5.6.0 - upgrade to 5.6.1.
536
537        Jarkko and I have collated the list of changes the perl5 porters have
538        from the perl5 Changes file:
539
540        - data features of upcoming perl 5.8.0 are supported: Unicode hash
541          keys (Unicode hash values have been supported since Storable 1.0.1)
542          and "restricted hashes" (readonly hashes and hash entries)
543        - a newer version of perl can now be used to serialize data which is
544          not supported in earlier perls: Storable will attempt to do the
545          right thing for as long as possible, croaking only when safe data
546          conversion simply isn't possible. Alternatively earlier perls can
547          opt to have a lossy downgrade data instead of croaking
548        - when built with perls pre 5.7.3 this Storable writes out files
549          with binary format 2.4, the same format as Storable 1.0.8 onwards.
550          This should mean that this Storable will inter-operate seamlessly
551          with any Storable 1.0.8 or newer on perls pre 5.7.3
552        - dclone() now works with empty string scalar objects
553        - retrieving of large hashes is now more efficient
554        - more routines autosplit out of the main module, so Storable should
555          load slightly more quickly
556        - better documentation
557        - the internal context objects are now freed explicitly, rather than
558          relying on thread or process exit
559        - bugs fixed in debugging trace code affecting builds made with 64 bit
560          IVs
561        - code tidy-ups to allow clean compiles with more warning options
562          turned on avoid problems with $@ getting corrupted on 5.005_03 if
563          Carp wasn't already loaded
564        - added &show_file_magic, so you can add to /etc/magic and teach
565          Unix's file command about Storable files
566
567        We plan to keep Storable on CPAN in sync with the Perl core, so
568        if you encounter bugs or other problems building or using Storable,
569        please let us know at perl5-porters@perl.org
570        Patches welcome!
571
572Sat Dec  1 14:37:54 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
573
574        This is the LAST maintenance release of the Storable module.
575        Indeed, Storable is now part of perl 5.8, and will be maintained
576        as part of Perl.  The CPAN module will remain available there
577        for people running pre-5.8 perls.
578
579        Avoid requiring Fcntl upfront, useful to embedded runtimes.
580        Use an eval {} for testing, instead of making Storable.pm
581        simply fail its compilation in the BEGIN block.
582
583        store_fd() will now correctly autoflush file if needed.
584
585Tue Aug 28 23:53:20 MEST 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
586
587        Fixed truncation race with lock_retrieve() in lock_store().
588        The file has to be truncated only once the exclusive lock is held.
589
590        Removed spurious debugging messages in .xs file.
591
592Sun Jul  1 13:27:32 MEST 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
593
594        Systematically use "=over 4" for POD linters.
595        Apparently, POD linters are much stricter than would
596        otherwise be needed, but that's OK.
597
598        Fixed memory corruption on croaks during thaw().  Thanks
599        to Claudio Garcia for reproducing this bug and providing the
600        code to exercise it.  Added test cases for this bug, adapted
601        from Claudio's code.
602
603        Made code compile cleanly with -Wall (from Jarkko Hietaniemi).
604
605        Changed tagnum and classnum from I32 to IV in context.  Also
606        from Jarkko.
607
608Thu Mar 15 01:22:32 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
609
610        Last version was wrongly compiling with assertions on, due
611        to an edit glitch.  That did not cause any problem (apart from
612        a slight performance loss) excepted on Win* platforms, where the
613        assertion code does not compile.
614
615Sat Feb 17 13:37:37 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
616
617    Version 1.0.10.
618
619        Forgot to increase version number at previous patch (there were
620        two of them, which is why we jump from 1.0.8 to 1.0.10).
621
622Sat Feb 17 13:35:00 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
623
624    Version 1.0.8, binary format 2.4.
625
626        Fixed incorrect error message.
627
628        Now bless objects ASAP at retrieve time, which is meant to fix
629        two bugs:
630
631        * Indirect references to overloaded object were not able to
632          restore overloading if the object was not blessed yet,
633          which was possible since blessing occurred only after the
634          recursive retrieval.
635
636        * Storable hooks asking for serialization of blessed ref could
637          get un-blessed refs at retrieval time, for the very same
638          reason.
639
640        The fix implemented here was suggested by Nick Ing-Simmons.
641
642        Added support for blessed ref to tied structures.  This is the
643        cause for the binary format change.
644
645        Added EBCDIC version of the compatibility test with 0.6.11,
646        from Peter Prymmer
647
648        Added tests for the new features, and to make sure the bugs they
649        are meant to fix are indeed fixed.
650
651Wed Jan  3 10:43:18 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
652
653        Removed spurious 'clean' entry in Makefile.PL.
654
655        Added CAN_FLOCK to determine whether we can flock() or not,
656        by inspecting Perl's configuration parameters, as determined
657        by Configure.
658
659        Trace offending package when overloading cannot be restored
660        on a scalar.
661
662        Made context cleanup safer to avoid dup freeing, mostly in the
663        presence of repeated exceptions during store/retrieve (which can
664        cause memory leaks anyway, so it's just additional safety, not a
665        definite fix).
666
667Sun Nov  5 18:23:48 MET 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
668
669    Version 1.0.6.
670
671        Fixed severe "object lost" bug for STORABLE_freeze returns,
672        when refs to lexicals, taken within the hook, were to be
673        serialized by Storable.  Enhanced the t/recurse.t test to
674        stress hook a little more with refs to lexicals.
675
676Thu Oct 26 19:14:38 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
677
678    Version 1.0.5.
679
680        Documented that store() and retrieve() can return undef.
681        That is, the error reporting is not always made via exceptions,
682        as the paragraph on error reporting was implying.
683
684        Auto requires module of blessed ref when STORABLE_thaw misses.
685        When the Storable engine looks for the STORABLE_thaw hook and
686        does not find it, it now tries to require the package into which
687        the blessed reference is.
688
689        Just check $^O, in t/lock.t: there's no need to pull the whole
690        Config module for that.
691
692Mon Oct 23 20:03:49 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
693
694    Version 1.0.4.
695
696        Protected calls to flock() for DOS platform: apparently, the
697        flock/fcnlt emulation is reported to be broken on that
698        platform.
699
700        Added logcarp emulation if they don't have Log::Agent, since
701        we now use it to carp when lock_store/lock_retrieve is used
702        on DOS.
703
704Fri Sep 29 21:52:29 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
705
706    Version 1.0.3.
707
708        Avoid using "tainted" and "dirty" since Perl remaps them via
709        cpp (i.e. #define).  This is deeply harmful when threading
710        is enabled.  This concerned both the context structure and
711        local variable and argument names.  Brrr..., scary!
712
713Thu Sep 28 23:46:39 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
714
715    Version 1.0.2.
716
717        Fixed spelling in README.
718
719        Added lock_store, lock_nstore, and lock_retrieve (advisory locking)
720        after a proposal from Erik Haugan <erik@solbors.no>.
721
722        Perls before 5.004_04 lack newSVpvn, added remapping in XS.
723
724        Fixed stupid typo in the t/utf8.t test.
725
726Sun Sep 17 18:51:10 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
727
728    Version 1.0.1, binary format 2.3.
729
730        Documented that doubles are stored stringified by nstore().
731
732        Added Salvador Ortiz Garcia in CREDITS section,  He identified
733        a bug in the store hooks and proposed the right fix: the class
734        id was allocated too soon.  His bug case was also added to
735        the regression test suite.
736
737        Now only taint retrieved data when source was tainted.  A bug
738        discovered by Marc Lehmann.
739
740        Added support for UTF-8 strings, a contribution of Marc Lehmann.
741        This is normally only activated in post-5.6 perls.
742
743Thu Aug 31 23:06:06 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
744
745        First official release Storable 1.0, for inclusion in perl 5.7.0.
746        The license scheme is now compatible with Perl's.
747
748Thu Aug 24 01:02:02 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
749
750        ANSI-fied most of the code, preparing for Perl core integration.
751        The next version of Storable will be 0.8, and will be integrated
752        into the Perl core (development branch).
753
754        Dispatch tables were moved upfront to relieve some compilers,
755        especially on AIX and Windows platforms.
756
757        Merged 64-bit fixes from perl5-porters.
758
759Mon Aug 14 09:22:04 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
760
761        Added a refcnt dec in retrieve_tied_key(): sv_magic() increases
762        the refcnt on the mg_ptr as well.
763
764        Removed spurious dependency to Devel::Peek, which was used for
765        testing only in t/tied_items.t.  Thanks to Conrad Heiney
766        <conrad@fringehead.org> for spotting it first.
767
768Sun Aug 13 22:12:59 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
769
770        Marc Lehmann kindly contributed code to add overloading support
771        and to handle references to tied variables.
772
773        Rewrote leading blurb about compatibility to make it clearer what
774        "backward compatibility" is about: when I say 0.7 is backward
775        compatible with 0.6, it means the revision 0.7 can read files
776        produced by 0.6.
777
778        Mention new Clone(3) extension in SEE ALSO.
779
780        Was wrongly optimizing for "undef" values in hashes by not
781        fully recursing: as a result, tied "undef" values were incorrectly
782        serialized.
783
784Sun Jul 30 12:59:17 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
785
786    First revision of Storable 0.7.
787
788        The serializing format is new, known as version 2.0.  It is fully
789        backward compatible with 0.6.  Earlier formats are deprecated and
790        have not even been tested: next version will drop pre-0.6 format.
791
792        Changes since 0.6@11:
793
794        - Moved interface to the "beta" status.  Some tiny parts are still
795          subject to change, but nothing important enough to warrant an "alpha"
796          status any longer.
797
798        - Slightly reduced the size of the Storable image by factorizing
799          object class names and removing final object storage notification due
800          to a redesign of the blessed object storing.
801
802        - Classes can now redefine how they wish their instances to be serialized
803          and/or deep cloned.  Serializing hooks are written in Perl code.
804
805        - The engine is now fully re-entrant.
806
807Sun Apr  2 23:47:50 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
808
809        Added provision to detect more recent binary formats, since
810        the new upcoming Storable-0.7 will use a different format.
811        In order to prevent attempting the de-serialization of newer
812        formats by older versions, I'm adding this now to the 0.6 series.
813
814        I'm expecting this revision to be the last of the 0.6 series.
815        Unless it does not work with perl 5.6, which I don't use yet,
816        and therefore against which I cannot test.
817
818Wed Mar 29 19:55:21 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
819
820        Added note about format incompatibilities with old versions
821        (i.e. pre 0.5@9 formats, which cannot be understood as there
822        was no versionning information in the file by then).
823
824        Protect all $@ variables when eval {} used, to avoid corrupting
825        it when store/retrieve is called within an exception handler.
826
827        Mistakenly included "patchlevel.h" instead of <patchlevel.h>,
828        preventing Perl's patchlevel from being included, which is
829        needed starting from 5.6.
830
831Tue May 12 09:15:15 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
832
833        Fixed shared "undef" bug in hashes, which did not remain shared
834        through store/retrieve.
835
836Thu Feb 10 19:48:16 MET 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
837
838        added last_op_in_netorder() predicate
839        documented last_op_in_netorder()
840        added tests for the new last_op_in_netorder() predicate
841
842Wed Oct 20 19:07:36 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
843
844        Forgot to update VERSION
845
846Tue Oct 19 21:25:02 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
847
848        Added mention of japanese translation for the manual page.
849
850        Fixed typo in macro that made threaded code not compilable,
851        especially on Win32 platforms.
852
853        Changed detection of older perls (pre-5.005) by testing PATCHLEVEL
854        directly instead of relying on internal symbols.
855
856Tue Sep 14 22:13:28 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
857
858        Integrated "thread-safe" patch from Murray Nesbitt.
859        Note that this may not be very efficient for threaded code,
860        see comment in the code.
861
862        Try to avoid compilation warning on 64-bit CPUs. Can't test it,
863        since I don't have access to such machines.
864
865Mon Jul 12 14:37:19 METDST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
866
867        changed my e-mail to pobox.
868
869        mentioned it is not thread-safe.
870
871        updated version number.
872
873        uses new internal PL_* naming convention.
874
875Fri Jul  3 13:38:16 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
876
877        Updated benchmark figures due to recent optimizations done in
878        store(): tagnums are now stored as-is in the hash table, so
879        no surrounding SV is created. And the "shared keys" mode for
880        hash table was turned off.
881
882        Fixed backward compatibility (wrt 0.5@9) for retrieval of
883        blessed refs. That old version did something wrong, but the
884        bugfix prevented correct retrieval of the old format.
885
886Mon Jun 22 11:00:48 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
887
888        Changed benchmark figures.
889
890        Adjust refcnt of tied objects after calling sv_magic() to avoid
891        memory leaks.  Contributed by Jeff Gresham.
892
893Fri Jun 12 11:50:04 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
894
895        Added workaround for persistent LVALUE-ness in perl5.004. All
896        scalars tagged as being an lvalue are handled as if they were
897        not an lvalue at all.  Added test for that LVALUE bug workaround.
898
899        Now handles Perl immortal scalars explicitly, by storing &sv_yes
900        as such, explicitly.
901
902        Retrieval of non-immortal undef cannot be shared. Previous
903        version was over-optimizing by not creating a separate SV for
904        all undefined scalars seen.
905
906Thu Jun  4 17:21:51 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
907
908    Baseline for Storable-0.6@0.
909
910        This version introduces a binary incompatibility in the generated
911        binary image, which is more compact than older ones by approximatively
912        15%, depending on the exact degree of sharing in your structures.
913
914        The good news is that your older images can still be retrieved with
915        this version, i.e. backward compatibility is preserved. This version
916        of Storable can only generate new binaries however.
917
918        Another good news is that the retrieval of data structure is
919        significantly quicker than before, because a Perl array is used
920        instead of a hash table to keep track of retrieved objects, and
921        also because the image being smaller, less I/O function calls are
922        made.
923
924Tue May 12 09:15:15 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
925
926        Version number now got from Storable.pm directly.
927
928        Fixed overzealous sv_type() optimization, which would make
929        Storable fail when faced with an "upgraded" SV to the PVIV
930        or PVNV kind containing a reference.
931
932Thu Apr 30 15:11:30 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
933
934        Extended the SYNOPSIS section to give quick overview of the
935        routines and their signature.
936
937        Optimized sv_type() to avoid flags checking when not needed, i.e.
938        when their type makes it impossible for them to be refs or tied.
939        This slightly increases throughput by a few percents when refs
940        and tied variables are marginal occurrences in your data.
941
942        Stubs for XS now use OutputStream and InputStream file types to
943        make it work when the given file is actually a socket. Perl
944        makes a distinction for sockets in its internal I/O structures
945        by having both a read and a write structure, whereas plain files
946        share the same one.
947
948Tue Jun  3 09:41:33 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
949
950        Thanks to a contribution from Benjamin A. Holzman, Storable is now
951        able to correctly serialize tied SVs, i.e. tied arrays, hashes
952        and scalars.
953
954Thu Apr  9 18:07:51 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
955
956        I said SvPOK() had changed to SvPOKp(), but that was a lie...
957
958Wed Apr  8 13:14:29 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
959
960        Wrote sizeof(SV *) instead of sizeof(I32) when portable, which
961        in effect mangled the object tags and prevented portability
962        across 32/64 bit architectures!
963
964Wed Mar 25 14:57:02 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
965
966        Added code example for store_fd() and retrieve_fd() in the
967        man page, to emphasize that file descriptors must be passed as
968        globs, not as plain strings.
969
970        Cannot use SV addresses as tag when using nstore() on LP64. This
971        was the cause of problems when creating a storable image on an
972        LP64 machine and retrieving it on an ILP32 system, which is
973        exactly what nstore() is meant for...
974
975        However, we continue to use SV addresses as tags for plain store(),
976        because benchmarking shows that it saves up to 8% of the store
977        time, and store() is meant to be fast at the expense of lack
978        of portability.
979
980        This means there will be approximately an 8% degradation of
981        performance for nstore(), but it's now working as expected.
982        That cost may vary on your machine of course, since it is
983        solely caused by the memory allocation overhead used to create
984        unique SV tags for each distinct stored SV.
985
986Tue Jan 20 09:21:53 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
987
988        Don't use any '_' in version number.
989
990Tue Jan 13 17:51:50 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
991
992        Updated version number.
993
994        added binmode() calls for systems where it matters.
995
996        Be sure to pass globs, not plain file strings, to C routines,
997        so that Storable can be used under the Perl debugger.
998
999Wed Nov  5 10:53:22 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1000
1001        Fix memory leaks on seen hash table and returned SV refs.
1002
1003        Storable did not work properly when tainting enabled.
1004
1005        Fixed "Allocation too large" messages in freeze/thaw and added.
1006        proper regression test in t/freeze.t.
1007
1008Tue Jun  3 09:41:33 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1009
1010        Updated version number
1011
1012        Added freeze/thaw interface and dclone.
1013
1014Fri May 16 10:45:47 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1015
1016        Forgot that AutoLoader does not export its own AUTOLOAD.
1017        I could use
1018
1019                use AutoLoader 'AUTOLOAD';
1020
1021        but that would not be backward compatible. So the export is
1022        done by hand...
1023
1024Tue Mar 25 11:21:32 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1025
1026        Empty scalar strings are now "defined" at retrieval time.
1027
1028        New test to ensure an empty string is defined when retrieved.
1029
1030Thu Feb 27 16:32:44 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1031
1032        Updated version number
1033
1034        Declare VERSION as being used
1035
1036        Fixed a typo in the PerlIO_putc remapping.
1037        PerlIO_read and perlIO_write inverted size/nb_items.
1038        (only relevant for pre-perl5.004 versions)
1039
1040Thu Feb 27 15:58:31 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1041
1042        Updated version number
1043
1044        Added VERSION identification
1045
1046        Allow build with perl5.003, which is ante perlIO time
1047
1048Mon Jan 13 17:53:18 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1049
1050        Random code fixes.
1051
1052Wed Jan 22 15:19:56 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1053
1054        Updated version number in Makefile.PL.
1055
1056        Added "thanks to" section to README.
1057
1058        Documented new forgive_me variable.
1059
1060        Made 64-bit clean.
1061
1062        Added forgive_me support to allow store() of data structures
1063        containing non-storable items like CODE refs.
1064