Changes - public release history for Data::Dumper
Attempt to work around XS deparse issues on old perls. According to the few old perls at my disposure, this now repairs, for example 5.18, but 5.8.9 still barfs. My debugging hasn't really come up with much since all changes other than the deparse change look benign to me. Can someone who uses ancient perls please step up and take a look? --Steffen
CPAN dev release with the accumulated changes from core perl.
Reduce memory usage by not importing from Carp Reduce memory usage by removing unused overload require.
Remove impediment to compiling under C++11.
The XS implementation now handles the Deparse option, so using it no longer forces use of the pure-Perl version.
Deparse
Perl 5.12 fix/workaround until fixed PPPort release.
Pre-5.12 fixes for test dependency.
Now handles huge inputs on 64bit perls.
Add Trailingcomma option. This is as suggested in RT#126813.
Significant refactoring of XS implementation.
Pure Perl implementation fixes in corner cases ("\n" dumped raw").
Most notably, this release fixes CVE-2014-4330:
Don't recurse infinitely in Data::Dumper Add a configuration variable/option to limit recursion when dumping deep data structures. [...] This patch addresses CVE-2014-4330. This bug was found and reported by: LSE Leading Security Experts GmbH employee Markus Vervier.
On top of that, there are several minor big fixes and improvements, see "git log" if the core perl distribution for details.
A "useqq" implementation for the XS version of Data::Dumper.
Better compatibility wrt. hash key quoting between PP and XS versions of Data::Dumper.
EBCDIC fixes.
64bit safety fixes (for very large arrays).
Build fixes for threaded perls.
clang warning fixes.
Warning fixes in tests on older perls.
Typo fixes in documentation.
Test refactoring and fixing wide and far.
Various old-perl compat fixes.
Address vstring related test failures on 5.8: Skip tests for obscure case.
Major improvements to test coverage and significant refactoring.
Make Data::Dumper XS ignore Freezer return value. Fixes RT #116364.
Change call of isALNUM to equivalent but more clearly named isWORDCHAR
Supply an explicit dynamic_config => 0 in META
Properly list BUILD_REQUIRES prereqs (P5-RT#116028)
Some optimizations. Removed useless "register" declarations.
Promote to stable release.
Drop some "register" declarations.
Use the new utf8 to code point functions - fixing a potential reading buffer overrun.
Data::Dumper: Sparseseen option to avoid building much of the seen hash: This has been measured to, in some cases, provide a 50% speed-up
Dumper.xs: Avoid scan_vstring on 5.17.3 and up
Avoid a warning from clang when compiling Data::Dumper
Fix DD's dumping of qr|\/|
Data::Dumper's Perl implementation was not working with overloaded blessed globs, which it thought were strings.
Allow Data::Dumper to load on miniperl
Makes DD dump *{''} properly.
[perl #101162] DD support for vstrings: Support for vstrings to Data::Dumper, in both Perl and XS implementations.
Make Data::Dumper UTF8- and null-clean with GVs.
In Dumper.xs, use sv_newmortal() instead of sv_mortalcopy(&PL_sv_undef) for efficiency.
Suppress compiler warning
Keep verbatim pod in Data::Dumper within 80 cols
Essentially the same as version 2.130_02, but a production release.
Essentially the same as version 2.130_02, but a CPAN release for the eventual 2.131.
This was only shipped with the perl core, never released to CPAN.
Convert overload.t to Test::More
Fix some spelling errors
Fix some compiler warnings
Fix an out of bounds write in Data-Dumper with malformed utf8 input
Dumpxs can now handle malformed UTF-8.
Dumpxs
Dumpxs no longer crashes with globs returned by *$io_ref [perl #72332].
*$io_ref
Promote previous release to stable version with the correct version.
Promote previous release to stable version.
Port core perl changes e3ec2293dc, fe642606b19. Fixes core perl RT #74170 (handle the stack changing in the custom sort functions) and adds a test.
Fix Data::Dumper's Fix Terse(1) + Indent(2): perl-RT #73604: When $Data::Dumper::Terse is true, the indentation is thrown off. It appears to be acting as if the $VAR1 = is still there.
CPAN distribution fixes (meta information for META.yml).
Add three missing test files.
Re-add the INSTALLDIRS => 'perl' directive to Makefile.PL of the CPAN release.
Promote previous developer release to stable release.
A host of bug fixes and improvements that have accumulated in the perl core
Updated backport to 5.6.1 by Steffen Mueller <smueller@cpan.org>.
Backport to 5.6.1 by Ilya Martynov <ilya@martynov.org>.
0 is now dumped as such, not as '0'.
0
'0'
qr// objects are now dumped correctly (provided a post-5.005_58) overload.pm exists).
Implemented $Data::Dumper::Maxdepth, which was on the Todo list. Thanks to John Nolan <jpnolan@Op.Net>.
Minor release to sync with version in 5.005_03. Fixes dump of dummy coderefs.
Bugfixes for dumping related undef values, globs, and better double quoting: three patches suggested by Gisle Aas <gisle@aas.no>.
Escaping of single quotes in the XS version could get tripped up by the presence of nulls in the string. Fix suggested by Slaven Rezic <eserte@cs.tu-berlin.de>.
Rather large scale reworking of the logic in how seen values are stashed. Anonymous scalars that may be encountered while traversing the structure are properly tracked, in case they become used in data dumped in a later pass. There used to be a problem with the previous logic that prevented such structures from being dumped correctly.
Various additions to the testsuite.
Implement $Data::Dumper::Bless, suggested by Mark Daku <daku@nortel.ca>.
Minor release to fix Makefile.PL not accepting MakeMaker args.
Glob dumps don't output superflous 'undef' anymore.
Fixes from Gisle Aas <gisle@aas.no> to make Dumper() work with overloaded strings in recent perls, and his new testsuite.
require 5.004.
A separate flag to always quote hash keys (on by default).
Recreating known CODE refs is now better supported.
Changed flawed constant SCALAR bless workaround.
Dumpxs output is now exactly the same as Dump. It still doesn't honor Useqq though.
Useqq
Regression tests test for identical output and eval-ability.
eval
Bug in *GLOB{THING} output fixed.
Other small enhancements.
Bugfix that was serious enough for new release--the bug cripples MLDBM. Problem was "Attempt to modify readonly value..." failures that stemmed for a misguided SvPV_force() instead of a SvPV().)
Fixed the type mismatch that was causing Dumpxs test to fail on 64-bit platforms.
GLOB elements are dumped now when Purity is set (using the *GLOB{THING} syntax).
Purity
The Freezer option can be set to a method name to call before probing objects for dumping. Some applications: objects with external data, can re-bless themselves into a transitional package; Objects the maintain ephemeral state (like open files) can put additional information in the object to facilitate persistence.
Freezer
The corresponding Toaster option, if set, specifies the method call that will revive the frozen object.
Toaster
The Deepcopy flag has been added to do just that.
Deepcopy
Dumper does more aggressive cataloging of SCALARs encountered within ARRAY/HASH structures. Thanks to Norman Gaywood <norm@godel.une.edu.au> for reporting the problem.
Objects that overload the '""' operator are now handled properly by the Dump method.
overload
Dump
Significant additions to the testsuite.
More documentation.
Made dump of glob names respect Useqq setting.
[@$%] are now escaped now when in double quotes.
Fixed Dumpxs. It was appending trailing nulls to globnames. (reported by Randal Schwartz <merlyn@teleport.com>).
Calling the Indent() method on a dumper object now correctly resets the internal separator (reported by Curt Tilmes <curt@ltpmail.gsfc.nasa.gov>).
Indent()
New Terse option to suppress the 'VARn = ' prefix introduced. If the option is set, they are output only when absolutely essential.
Terse
VARn =
The Useqq flag is supported (but not by the XSUB version yet).
Embedded nulls in keys are now handled properly by Dumpxs.
Dumper.xs now use various integer types in perl.h (should make it compile without noises on 64 bit platforms, although I haven't been able to test this).
All the dump methods now return a list of strings in a list context.
Non portable sprintf usage in XS code fixed (thanks to Ulrich Pfeifer <pfeifer@charly.informatik.uni-dortmund.de>).
Minor bugfix (single digit numbers were always getting quoted).
Dumpxs is now the exact XSUB equivalent of Dump. The XS version is 4-5 times faster.
require 5.002.
require 5.002
MLDBM example removed (as its own module, it has a separate CPAN reality now).
Fixed bugs in handling keys with wierd characters. Perl can be tripped up in its implicit quoting of the word before '=>'. The fix: Data::Dumper::Purity, when set, always triggers quotes around hash keys.
Data::Dumper::Purity
Andreas Koenig <k@anna.in-berlin.de> pointed out that handling octals is busted. His patch added.
Dead code removed, other minor documentation fixes.
MLDBM example added.
Several folks pointed out that quoting of ticks and backslashes in strings is missing. Added.
Ian Phillipps <ian@pipex.net> pointed out that numerics may lose precision without quotes. Fixed.
Last stable version I can remember.
To install Data::Dumper, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Data::Dumper
CPAN shell
perl -MCPAN -e shell install Data::Dumper
For more information on module installation, please visit the detailed CPAN module installation guide.