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