summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Nolan <jpnolan@Op.Net>1999-08-04 16:21:10 -0400
committerGurusamy Sarathy <gsar@cpan.org>1999-09-05 18:17:32 +0000
commita2126434f8dd8eabb11a2219137816815758ea93 (patch)
tree1d70aa7fbdff85427391945b8dc5ea80a3ae998a
parent0bf7eb25e9e238046abce47d15e2fa3d10558a02 (diff)
downloadperl-a2126434f8dd8eabb11a2219137816815758ea93.tar.gz
modified suggested patch to handle cross-refs and qr// objects
correctly; unfollowed refs are represented as simple string value, not just the bare type; $VERSION stays the same until it is ready for prime time (avoids CPAN confustication) Message-Id: <199908050021.UAA09693@monet.op.net> Subject: [ID 19990804.006] [PATCH]5.005_60 (Data::Dumper) - implements Maxdepth setting p4raw-id: //depot/perl@4078
-rw-r--r--Changes482
-rw-r--r--ext/Data/Dumper/Changes15
-rw-r--r--ext/Data/Dumper/Dumper.pm64
-rw-r--r--ext/Data/Dumper/Dumper.xs93
-rw-r--r--ext/Data/Dumper/Todo6
-rwxr-xr-xt/lib/dumper.t53
6 files changed, 656 insertions, 57 deletions
diff --git a/Changes b/Changes
index e23e88ee2c..10d254e7da 100644
--- a/Changes
+++ b/Changes
@@ -75,7 +75,487 @@ indicator:
----------------
-Version 5.005_61 Development release working toward 5.006
+Version 5.005_62 Development release working toward 5.006
+----------------
+
+____________________________________________________________________________
+[ 4076] By: gsar on 1999/09/04 20:21:59
+ Log: integrate cfgperl contents into mainline
+ Branch: perl
+ +> lib/attributes.pm lib/warnings.pm t/lib/attrs.t t/op/attrs.t
+ +> t/pragma/warn/7fatal t/pragma/warn/8signal t/pragma/warnings.t
+ +> warnings.h warnings.pl xsutils.c
+ - lib/warning.pm t/pragma/warning.t warning.h warning.pl
+ !> (integrate 109 files)
+____________________________________________________________________________
+[ 4075] By: jhi on 1999/09/04 18:04:47
+ Log: use integer on the problematic subtest.
+ Branch: cfgperl
+ ! t/op/misc.t
+____________________________________________________________________________
+[ 4074] By: jhi on 1999/09/04 17:57:40
+ Log: Warn about numconvert.t in case somebody
+ wants to make sv_2pv more 64-bit aware.
+ Branch: cfgperl
+ ! sv.c
+____________________________________________________________________________
+[ 4073] By: jhi on 1999/09/04 17:54:51
+ Log: Comment upgrading: the quad situation isn't quite as
+ bad as it used to be.
+ Branch: cfgperl
+ ! perl.h
+____________________________________________________________________________
+[ 4072] By: jhi on 1999/09/04 15:35:37
+ Log: Integrate with Sarathy.
+ Branch: cfgperl
+ !> win32/win32.c
+____________________________________________________________________________
+[ 4071] By: jhi on 1999/09/04 15:28:11
+ Log: Fix LFS with -Duseperlio in Solaris. Reported in
+
+ From: Robin Barker <rmb1@cise.npl.co.uk>
+ To: perl5-porters@perl.org
+ Subject: [ID 19990823.009] [PATCH perl5.005_61] typo in perl.h
+ Date: Mon, 23 Aug 1999 16:41:11 +0100 (BST)
+ Message-Id: <199908231541.QAA10043@tempest.npl.co.uk>
+
+ and later (in private email) found to be dependent
+ on useperlio.
+
+ Mental note: the cpp magic done in perlsdio.h (and assumedly
+ also in perlsfio.h) may cause trouble later with lfs because
+ both the perlio scheme by Perl and the lfs support by vendors
+ like to play cpp games to map the stdio namespace back and forth.
+ The problem fixed here (fseek vs fseeko, ftell vs ftello) may be
+ just the beginning.
+ Branch: cfgperl
+ ! perlio.c
+____________________________________________________________________________
+[ 4070] By: jhi on 1999/09/04 13:12:14
+ Log: Enable 64-bit clean bit ops.
+ (Disables the t/op/misc.t substest 3 in 64-bit platforms.)
+ Branch: cfgperl
+ ! pod/perldelta.pod pod/perlop.pod pp.c pp_hot.c t/op/64bit.t
+ ! t/op/misc.t
+____________________________________________________________________________
+[ 4069] By: jhi on 1999/09/03 21:17:30
+ Log: Turn on USE_64_BIT_OFFSETS implicitly.
+ Branch: cfgperl
+ ! perl.h
+____________________________________________________________________________
+[ 4068] By: jhi on 1999/09/03 08:19:59
+ Log: Fix from Spider for the sub attributes (there was an undocumented
+ dependency between force_word() and skipspace()).
+ Branch: cfgperl
+ ! toke.c
+____________________________________________________________________________
+[ 4067] By: jhi on 1999/09/01 23:17:06
+ Log: From: John Tobey <spam@john-edwin-tobey.org>
+ To: ilya@math.ohio-state.edu
+ CC: perl5-porters@perl.org
+ Subject: Re: [PATCH 5.005_60] distclean forgot two
+ Date: Mon, 23 Aug 1999 02:10:11 -0400 (EDT)
+ Message-Id: <m11InJ5-000FPCC@feynman.localnet>
+ Branch: cfgperl
+ ! t/lib/dprof.t
+____________________________________________________________________________
+[ 4066] By: jhi on 1999/09/01 23:14:50
+ Log: From: "Fifer, Eric" <EFifer@sanwaint.com>
+ To: perl5-porters@perl.org
+ Subject: [ID 19990821.001] [PATCH] perl5.005_60 cygwin port
+ Date: Fri, 20 Aug 1999 15:37:27 +0100
+ Message-Id: <8A160D637356D311BC4300600849EC8122E217@POST>
+ Branch: cfgperl
+ ! cygwin/Makefile.SHs ext/ByteLoader/byterun.h
+ ! ext/SDBM_File/sdbm/sdbm.c hints/cygwin.sh perl.h pp_sys.c
+ ! t/io/fs.t t/io/tell.t t/lib/anydbm.t t/op/stat.t
+____________________________________________________________________________
+[ 4065] By: jhi on 1999/09/01 22:06:43
+ Log: From: Dominic Dunlop <domo@vo.lu>
+ To: perl5-porters@perl.org
+ Subject: [ID 19990819.001] Not OK: perl 5.00560 on powerpc-machten 4.1.1
+ (UNINSTALLED) [PATCH]
+ Date: Thu, 19 Aug 1999 09:48:03 +0200
+ Message-Id: <v03110709b3e165b51dda@[212.24.192.132]>
+
+ The PERL_POLLUTE_MALLOC part had to be manually applied.
+ Branch: cfgperl
+ ! hints/machten.sh perl.h
+____________________________________________________________________________
+[ 4064] By: jhi on 1999/09/01 13:56:14
+ Log: From: Martin Lichtin <lichtin@bivio.com>
+ To: jhi@iki.fi
+ CC: perl5-porters@perl.org
+ Subject: Re: [ID 19990829.001] ExtUtils::Install.pm, minor umask problem
+ Date: Wed, 01 Sep 1999 15:50:04 +0200
+ Message-ID: <37CD2F0C.944BFACE@bivio.com>
+ Branch: cfgperl
+ ! lib/ExtUtils/Install.pm
+____________________________________________________________________________
+[ 4063] By: jhi on 1999/09/01 13:16:11
+ Log: Enhance lfs tests: check every seek and sysseek
+ and test also that -e and -f detect largefiles.
+ Branch: cfgperl
+ ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[ 4062] By: jhi on 1999/09/01 12:08:04
+ Log: From: Colin Kuskie <ckuskie@Cadence.COM>
+ To: Ronald J Kimball <rjk@linguist.dartmouth.edu>
+ cc: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>,
+ The Perl Porters Mailing List <perl5-porters@perl.org>
+ Subject: [REPATCH 5.005_61] Re: perldiag.pod omissions
+ Date: Tue, 31 Aug 1999 11:24:31 -0700 (PDT)
+ Message-ID: <Pine.GSO.4.10.9908311055460.11290-100000@pdxult10a.cadence.com>
+ Branch: cfgperl
+ ! pod/perldiag.pod
+____________________________________________________________________________
+[ 4061] By: jhi on 1999/09/01 12:03:03
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ To: ilya@math.ohio-state.edu (Ilya Zakharevich)
+ Cc: perl5-porters@perl.org, cloos@adamsmith.ai
+ Subject: Re: [ID 19990830.005] Assigning value of an op on an SV to said SV
+ Date: Wed, 1 Sep 1999 02:56:06 -0400 (EDT)
+ Message-Id: <199909010656.CAA04478@monk.mps.ohio-state.edu>
+ Branch: cfgperl
+ ! op.c t/op/join.t
+____________________________________________________________________________
+[ 4060] By: jhi on 1999/09/01 07:59:42
+ Log: IV_DIG and NV_DIG fixes.
+ Branch: cfgperl
+ ! perl.h
+____________________________________________________________________________
+[ 4059] By: jhi on 1999/08/31 14:47:18
+ Log: \C{} -> \N{} residue.
+ Branch: cfgperl
+ ! toke.c
+____________________________________________________________________________
+[ 4058] By: jhi on 1999/08/31 08:57:35
+ Log: For some odd reason #4056 didn't undo #3922 completely.
+ Branch: cfgperl
+ ! pp.c
+____________________________________________________________________________
+[ 4057] By: gsar on 1999/08/30 22:08:19
+ Log: avoid hiding child process window
+ Branch: perl
+ ! win32/win32.c
+____________________________________________________________________________
+[ 4056] By: jhi on 1999/08/30 21:36:24
+ Log: Retract #3922 (Rule #1 was invoked).
+ (See also #4058).
+ Branch: cfgperl
+ ! pod/perldiag.pod pp.c regexp.h
+____________________________________________________________________________
+[ 4055] By: jhi on 1999/08/30 21:20:50
+ Log: Document the undefinedness of overshifting.
+ Branch: cfgperl
+ ! pod/perlop.pod
+____________________________________________________________________________
+[ 4054] By: jhi on 1999/08/30 20:18:18
+ Log: History fixes and updates.
+ Branch: cfgperl
+ ! pod/perlhist.pod
+____________________________________________________________________________
+[ 4053] By: jhi on 1999/08/30 19:34:02
+ Log: Shell quoting thinko broke installdirs.
+ From: JVromans@Squirrel.nl (Johan Vromans)
+ To: perl5-porters@perl.org
+ Subject: [ID 19990830.001] 5.005_61 Configure does not substitute
+ installprefix
+ Date: Mon, 30 Aug 1999 16:10:10 +0200 (MEST)
+ Message-Id: <14282.37058.934928.805633@plume.nl.compuware.com>
+ Branch: cfgperl
+ ! Configure config_h.SH
+ Branch: metaconfig
+ ! U/installdirs/archlib.U U/installdirs/bin.U
+ ! U/installdirs/html1dir.U U/installdirs/html3dir.U
+ ! U/installdirs/installprefix.U U/installdirs/man1dir.U
+ ! U/installdirs/man3dir.U U/installdirs/privlib.U
+ ! U/installdirs/scriptdir.U U/installdirs/sitearch.U
+ ! U/installdirs/sitebin.U U/installdirs/sitehtml1dir.U
+ ! U/installdirs/sitehtml3dir.U U/installdirs/sitelib.U
+ ! U/installdirs/siteman1dir.U U/installdirs/siteman3dir.U
+ ! U/installdirs/sitescriptdir.U U/installdirs/vendorarch.U
+ ! U/installdirs/vendorbin.U U/installdirs/vendorhtml1dir.U
+ ! U/installdirs/vendorhtml3dir.U U/installdirs/vendorlib.U
+ ! U/installdirs/vendorman1dir.U U/installdirs/vendorman3dir.U
+ ! U/installdirs/vendorscriptdir.U
+____________________________________________________________________________
+[ 4052] By: jhi on 1999/08/30 02:57:05
+ Log: Use \N{named characters} instead of \C.
+ From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ To: jhi@iki.fi
+ Cc: larry@wall.org (Larry Wall), Tim.Bunce@ig.co.uk (Tim Bunce),
+ perl5-porters@perl.org (Mailing list Perl5)
+ Subject: Re: [PATCH 5.005_58] Named characters in Perl
+ Date: Sun, 29 Aug 1999 16:46:53 -0400 (EDT)
+ Message-Id: <199908292046.QAA05510@monk.mps.ohio-state.edu>
+ Branch: cfgperl
+ ! lib/charnames.pm lib/utf8.pm pod/perldiag.pod pod/perlop.pod
+ ! pod/perlre.pod regcomp.c t/lib/charnames.t toke.c
+____________________________________________________________________________
+[ 4051] By: jhi on 1999/08/30 02:54:20
+ Log: From: Spider Boardman <spider@Orb.Nashua.NH.US>
+ To: perl5-porters@perl.org
+ Subject: [ID 19990829.004] Autoloaded &VERSION and UNIVERSAL::VERSION
+ don't mix
+ Date: Sun, 29 Aug 1999 19:04:53 -0400
+ Message-Id: <199908292304.TAA13738@Orb.Nashua.NH.US>
+ Branch: cfgperl
+ ! universal.c
+____________________________________________________________________________
+[ 4050] By: jhi on 1999/08/29 16:38:58
+ Log: Conditionally socksify the LIBS of Socket.
+ Branch: cfgperl
+ ! ext/Socket/Makefile.PL
+____________________________________________________________________________
+[ 4049] By: jhi on 1999/08/29 15:33:30
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ To: Mailing list Perl5 <perl5-porters@perl.org>
+ Subject: Re: [PATCH 5.005_60] fix @DB::typeahead
+ Date: Wed, 25 Aug 1999 16:19:58 -0400
+ Message-ID: <19990825161958.A4658@monk.mps.ohio-state.edu>
+ Branch: cfgperl
+ ! lib/perl5db.pl
+____________________________________________________________________________
+[ 4048] By: jhi on 1999/08/29 15:31:36
+ Log: From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+ To: perl5-porters@perl.org
+ Subject: [PATCH _61] Lost arguments to simplified sort
+ Date: Wed, 25 Aug 1999 23:22:32 -0700 (PDT)
+ Message-ID: <14276.56616.879390.562685@metonymy.hip.berkeley.edu>
+ Branch: cfgperl
+ ! op.c t/op/sort.t
+____________________________________________________________________________
+[ 4047] By: jhi on 1999/08/29 15:29:29
+ Log: From: Olaf Flebbe <olaf@science-computing.de>
+ Sender: owner-perl5-porters@perl.org
+ To: perl5-porters@perl.org
+ Subject: [ID 19990827.003] [PATCH]5.005_60 Patch for EPOC Support
+ Date: Fri, 27 Aug 1999 21:50:41 +0200 (MEST)
+ Branch: cfgperl
+ ! README.epoc epoc/config.h epoc/epoc.c epoc/epocish.h
+ ! epoc/perl.mmp epoc/perl.pkg
+____________________________________________________________________________
+[ 4046] By: jhi on 1999/08/29 15:21:18
+ Log: From: pvhp@forte.com (Peter Prymmer)
+ To: perl5-porters@perl.org
+ Subject: [PATCH: 5.005_61] an EBCDIC friendly cgi-html.t test
+ Date: Fri, 27 Aug 99 18:51:04 PDT
+ Message-Id: <9908280151.AA05010@forte.com>
+ Branch: cfgperl
+ ! t/lib/cgi-html.t
+____________________________________________________________________________
+[ 4045] By: jhi on 1999/08/29 15:18:38
+ Log: Fix scalar gmtime (and localtime) in quad environments,
+ bug reported by Robin Parker.
+
+ From: Robin Barker <rmb1@cise.npl.co.uk>
+ To: jhi@iki.fi
+ Cc: perl5-porters@perl.org
+ Subject: Re: [ID 19990823.009] [PATCH perl5.005_61] typo in perl.h
+ Date: Tue, 24 Aug 1999 11:09:24 +0100 (BST)
+ Message-Id: <199908241009.LAA24394@tempest.npl.co.uk>
+ Branch: cfgperl
+ ! pp_sys.c t/op/time.t
+____________________________________________________________________________
+[ 4044] By: jhi on 1999/08/29 11:24:03
+ Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+ To: perl5-porters@perl.org (Mailing list Perl5)
+ Subject: [PATCH 5.005_60] Speeding up XSUB calls up to 66%
+ Date: Fri, 27 Aug 1999 03:33:01 -0400 (EDT)
+ Message-Id: <199908270733.DAA16927@monk.mps.ohio-state.edu>
+
+ Addendum: it's "only" 33% speedup.
+ Branch: cfgperl
+ ! dump.c op.c op.h pp.h
+____________________________________________________________________________
+[ 4043] By: jhi on 1999/08/29 11:10:33
+ Log: From: spider-perl@Orb.Nashua.NH.US
+ To: Mailing list Perl5 <perl5-porters@perl.org>
+ Subject: [PATCH 5.005_61 CORE] sub : attrlist
+ Date: Sun, 29 Aug 1999 03:02:11 -0400
+ Message-Id: <199908290702.DAA32191@Orb.Nashua.NH.US>
+ Branch: cfgperl
+ + lib/attributes.pm t/lib/attrs.t t/op/attrs.t xsutils.c
+ ! MANIFEST Makefile.SH embed.h embed.pl embedvar.h global.sym
+ ! gv.c lib/AutoSplit.pm lib/SelfLoader.pm objXSUB.h op.c perl.c
+ ! perl.h perlapi.c perlapi.h perly.c perly.fixer perly.h perly.y
+ ! perly_c.diff pod/perldelta.pod pod/perldiag.pod
+ ! pod/perlfunc.pod pod/perlmodlib.pod pod/perlsub.pod proto.h
+ ! toke.c vms/perly_c.vms vms/perly_h.vms warnings.h
+____________________________________________________________________________
+[ 4042] By: jhi on 1999/08/29 11:08:50
+ Log: Turn off gcc-2.95's strict-alias optimization.
+ This, of course, should be only temporary.
+ From Andy Dougherty.
+ Branch: cfgperl
+ ! Configure config_h.SH
+ Branch: metaconfig
+ ! U/compline/ccflags.U U/modified/cc.U
+____________________________________________________________________________
+[ 4041] By: jhi on 1999/08/29 10:47:30
+ Log: Fix a typo in #4036.
+ Branch: cfgperl
+ ! mg.c
+____________________________________________________________________________
+[ 4040] By: jhi on 1999/08/29 10:34:58
+ Log: Add a missing #endif forgotten by #4035.
+ Branch: cfgperl
+ ! doop.c
+____________________________________________________________________________
+[ 4039] By: jhi on 1999/08/29 10:31:19
+ Log: Remove an extra #endif introduced by #4036.
+ Branch: cfgperl
+ ! perl.h
+____________________________________________________________________________
+[ 4038] By: jhi on 1999/08/29 10:18:59
+ Log: Rename warning to warnings, from Paul Marquess.
+ Branch: cfgperl
+ + lib/warnings.pm t/pragma/warn/7fatal t/pragma/warn/8signal
+ + t/pragma/warnings.t warnings.h warnings.pl
+ - lib/warning.pm t/pragma/warning.t warning.h warning.pl
+ ! MANIFEST Makefile.SH gv.c mg.c perl.h pod/perldelta.pod
+ ! pod/perldiag.pod pod/perlfunc.pod pod/perllexwarn.pod
+ ! pod/perlmodlib.pod pod/perlrun.pod pod/perltoc.pod
+ ! pod/perlvar.pod t/op/64bit.t t/op/tie.t t/pragma/warn/2use
+ ! t/pragma/warn/3both t/pragma/warn/4lint t/pragma/warn/5nolint
+ ! t/pragma/warn/6default t/pragma/warn/doio t/pragma/warn/doop
+ ! t/pragma/warn/gv t/pragma/warn/mg t/pragma/warn/op
+ ! t/pragma/warn/perl t/pragma/warn/perly t/pragma/warn/pp
+ ! t/pragma/warn/pp_ctl t/pragma/warn/pp_hot t/pragma/warn/pp_sys
+ ! t/pragma/warn/regcomp t/pragma/warn/regexec t/pragma/warn/sv
+ ! t/pragma/warn/taint t/pragma/warn/toke t/pragma/warn/universal
+ ! t/pragma/warn/utf8 t/pragma/warn/util toke.c
+____________________________________________________________________________
+[ 4037] By: jhi on 1999/08/29 10:08:47
+ Log: Create the equivalence tables based on
+ the real Unicode decomposition, not on
+ the character name.
+ Branch: cfgperl
+ ! lib/unicode/Eq/Latin1 lib/unicode/Eq/Unicode
+ ! lib/unicode/mktables.PL
+____________________________________________________________________________
+[ 4036] By: jhi on 1999/08/29 09:29:08
+ Log: Integrate with Sarathy.
+ Branch: cfgperl
+ +> lib/unicode/Is/SylA.pl lib/unicode/Is/SylC.pl
+ +> lib/unicode/Is/SylE.pl lib/unicode/Is/SylI.pl
+ +> lib/unicode/Is/SylO.pl lib/unicode/Is/SylU.pl
+ +> lib/unicode/Is/SylV.pl lib/unicode/Is/SylWA.pl
+ +> lib/unicode/Is/SylWC.pl lib/unicode/Is/SylWE.pl
+ +> lib/unicode/Is/SylWI.pl lib/unicode/Is/SylWV.pl
+ !> (integrate 190 files)
+____________________________________________________________________________
+[ 4035] By: jhi on 1999/08/29 08:56:15
+ Log: Implement 64-bit vec().
+ Branch: cfgperl
+ ! doop.c pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+ ! pp.h t/op/64bit.t
+____________________________________________________________________________
+[ 4034] By: gsar on 1999/08/29 03:35:18
+ Log: deadcode removal
+ Branch: perl
+ ! XSUB.h embed.h embed.pl global.sym mg.c op.c perl.h perlapi.h
+ ! pp_ctl.c proto.h run.c sv.c
+____________________________________________________________________________
+[ 4033] By: jhi on 1999/08/28 17:31:07
+ Log: From: Robin Barker <rmb1@cise.npl.co.uk>
+ To: perl5-porters@perl.org
+ Subject: [ID 19990823.009] [PATCH perl5.005_61] typo in perl.h
+ Date: Mon, 23 Aug 1999 16:41:11 +0100 (BST)
+ Message-Id: <199908231541.QAA10043@tempest.npl.co.uk>
+ Branch: cfgperl
+ ! perl.h
+____________________________________________________________________________
+[ 4032] By: gsar on 1999/08/26 23:53:33
+ Log: new thread should set current interp in TLS
+ Branch: perl
+ ! ext/Thread/Thread.xs
+____________________________________________________________________________
+[ 4031] By: bailey on 1999/08/23 03:40:07
+ Log: When extension doesn't have a "main" object file to anchor linker search, pull in all objct files
+ Branch: vmsperl
+ ! lib/ExtUtils/MM_VMS.pm
+____________________________________________________________________________
+[ 4030] By: bailey on 1999/08/23 03:37:43
+ Log: Patch up holes in realclean target
+ Branch: vmsperl
+ ! vms/descrip_mms.template
+____________________________________________________________________________
+[ 4029] By: bailey on 1999/08/23 03:36:24
+ Log: Fix handling of PERL_POLLUTE
+ Branch: vmsperl
+ ! lib/ExtUtils/MM_VMS.pm
+____________________________________________________________________________
+[ 4028] By: bailey on 1999/08/23 03:34:08
+ Log: Update VMS version of perly.h
+ Branch: vmsperl
+ ! vms/perly_h.vms
+____________________________________________________________________________
+[ 4027] By: bailey on 1999/08/23 03:32:45
+ Log: Update dependencies in Descrip.MMS
+ Branch: vmsperl
+ ! vms/descrip_mms.template
+____________________________________________________________________________
+[ 4026] By: bailey on 1999/08/23 03:30:01
+ Log: Fix prototypes in perlapi.c (64-bit?)
+ Clear prior definition of getenv_len before defining VMS-specific macro
+ Branch: vmsperl
+ ! perlapi.c vms/vmsish.h
+____________________________________________________________________________
+[ 4025] By: bailey on 1999/08/23 03:25:51
+ Log: Add '-m' option to Configure.com which skips the MANIFEST check
+ Branch: vmsperl
+ ! configure.com
+____________________________________________________________________________
+[ 4024] By: bailey on 1999/08/23 03:23:34
+ Log: Skip open() tests that rely on Unix fork semantics
+ Branch: vmsperl
+ ! t/io/open.t
+____________________________________________________________________________
+[ 4023] By: bailey on 1999/08/23 03:21:46
+ Log: Loosen conditons for recognizing a function name in perl.h to accomodate revisions
+ Branch: vmsperl
+ ! vms/gen_shrfls.pl
+____________________________________________________________________________
+[ 4022] By: bailey on 1999/08/23 03:17:33
+ Log: update MM_VMS to use new File::Spec routines
+ Branch: vmsperl
+ ! lib/ExtUtils/MM_VMS.pm lib/File/Spec/VMS.pm
+____________________________________________________________________________
+[ 4021] By: bailey on 1999/08/23 03:13:40
+ Log: byteperl is now part of the ByteLoader ext
+ Branch: vmsperl
+ ! ext/ByteLoader/byterun.h vms/descrip_mms.template
+____________________________________________________________________________
+[ 4020] By: bailey on 1999/08/23 03:10:41
+ Log: Allow option to treat barewords at start of Unix paths as simple words rather than logicals
+ Branch: vmsperl
+ ! vms/vms.c
+____________________________________________________________________________
+[ 4019] By: bailey on 1999/08/23 03:07:28
+ Log: Update calls for new thread context handling
+ Branch: vmsperl
+ ! ext/Devel/DProf/DProf.xs ext/DynaLoader/dl_vms.xs
+ ! ext/POSIX/POSIX.xs vms/vms.c vms/vmsish.h vms/writemain.pl
+____________________________________________________________________________
+[ 4018] By: bailey on 1999/08/23 03:01:31
+ Log: Allow for file versions in library when looking for .bs files
+ Branch: vmsperl
+ ! ext/DynaLoader/DynaLoader_pm.PL
+____________________________________________________________________________
+[ 4017] By: bailey on 1999/08/23 02:58:55
+ Log: Update VMS configuration procedures for 5.005_60
+ Branch: vmsperl
+ ! configure.com vms/subconfigure.com
+____________________________________________________________________________
+[ 4016] By: gsar on 1999/08/20 22:19:56
+ Log: update Changes
+ Branch: perl
+ ! Changes
+
+----------------
+Version 5.005_61
----------------
____________________________________________________________________________
diff --git a/ext/Data/Dumper/Changes b/ext/Data/Dumper/Changes
index 9a96edab8d..161aba940b 100644
--- a/ext/Data/Dumper/Changes
+++ b/ext/Data/Dumper/Changes
@@ -6,6 +6,21 @@ HISTORY - public release history for Data::Dumper
=over 8
+=item 2.11 (unreleased)
+
+C<0> is now dumped as such, not as C<'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>.
+
+=item 2.101 (30 Apr 1999)
+
+Minor release to sync with version in 5.005_03. Fixes dump of
+dummy coderefs.
+
=item 2.10 (31 Oct 1998)
Bugfixes for dumping related undef values, globs, and better double
diff --git a/ext/Data/Dumper/Dumper.pm b/ext/Data/Dumper/Dumper.pm
index 3828d7b390..4705669e6d 100644
--- a/ext/Data/Dumper/Dumper.pm
+++ b/ext/Data/Dumper/Dumper.pm
@@ -39,7 +39,7 @@ $Deepcopy = 0 unless defined $Deepcopy;
$Quotekeys = 1 unless defined $Quotekeys;
$Bless = "bless" unless defined $Bless;
#$Expdepth = 0 unless defined $Expdepth;
-#$Maxdepth = 0 unless defined $Maxdepth;
+$Maxdepth = 0 unless defined $Maxdepth;
#
# expects an arrayref of values to be dumped.
@@ -74,7 +74,7 @@ sub new {
quotekeys => $Quotekeys, # quote hash keys
'bless' => $Bless, # keyword to use for "bless"
# expdepth => $Expdepth, # cutoff depth for explicit dumping
-# maxdepth => $Maxdepth, # depth beyond which we give up
+ maxdepth => $Maxdepth, # depth beyond which we give up
};
if ($Indent > 0) {
@@ -221,7 +221,7 @@ sub _dump {
($realpack, $realtype, $id) =
(overload::StrVal($val) =~ /^(?:(.*)\=)?([^=]*)\(([^\(]*)\)$/);
-
+
# if it has a name, we need to either look it up, or keep a tab
# on it so we know when we hit it later
if (defined($name) and length($name)) {
@@ -259,17 +259,28 @@ sub _dump {
}
}
- if ($realpack) {
- if ($realpack eq 'Regexp') {
+ if ($realpack and $realpack eq 'Regexp') {
$out = "$val";
$out =~ s,/,\\/,g;
return "qr/$out/";
- }
- else { # we have a blessed ref
- $out = $s->{'bless'} . '( ';
- $blesspad = $s->{apad};
- $s->{apad} .= ' ' if ($s->{indent} >= 2);
- }
+ }
+
+ # If purity is not set and maxdepth is set, then check depth:
+ # if we have reached maximum depth, return the string
+ # representation of the thing we are currently examining
+ # at this depth (i.e., 'Foo=ARRAY(0xdeadbeef)').
+ if (!$s->{purity}
+ and $s->{maxdepth} > 0
+ and $s->{level} >= $s->{maxdepth})
+ {
+ return qq['$val'];
+ }
+
+ # we have a blessed ref
+ if ($realpack) {
+ $out = $s->{'bless'} . '( ';
+ $blesspad = $s->{apad};
+ $s->{apad} .= ' ' if ($s->{indent} >= 2);
}
$s->{level}++;
@@ -519,6 +530,12 @@ sub Bless {
defined($v) ? (($s->{'bless'} = $v), return $s) : $s->{'bless'};
}
+sub Maxdepth {
+ my($s, $v) = @_;
+ defined($v) ? (($s->{'maxdepth'} = $v), return $s) : $s->{'maxdepth'};
+}
+
+
# used by qquote below
my %esc = (
"\a" => "\\a",
@@ -822,6 +839,14 @@ builtin operator used to create objects. A function with the specified
name should exist, and should accept the same arguments as the builtin.
Default is C<bless>.
+=item $Data::Dumper::Maxdepth I<or> $I<OBJ>->Maxdepth(I<[NEWVAL]>)
+
+Can be set to a positive integer that specifies the depth beyond which
+which we don't venture into a structure. Has no effect when
+C<Data::Dumper::Purity> is set. (Useful in debugger when we often don't
+want to see more than enough). Default is 0, which means there is
+no maximum depth.
+
=back
=head2 Exports
@@ -904,6 +929,21 @@ distribution for more examples.)
$Data::Dumper::Purity = 0; # avoid cross-refs
print Data::Dumper->Dump([$b, $a], [qw(*b a)]);
+ ########
+ # deep structures
+ ########
+
+ $a = "pearl";
+ $b = [ $a ];
+ $c = { 'b' => $b };
+ $d = [ $c ];
+ $e = { 'd' => $d };
+ $f = { 'e' => $e };
+ print Data::Dumper->Dump([$f], [qw(f)]);
+
+ $Data::Dumper::Maxdepth = 3; # no deeper than 3 refs down
+ print Data::Dumper->Dump([$f], [qw(f)]);
+
########
# object-oriented usage
@@ -999,7 +1039,7 @@ modify it under the same terms as Perl itself.
=head1 VERSION
-Version 2.10 (31 Oct 1998)
+Version 2.11 (unreleased)
=head1 SEE ALSO
diff --git a/ext/Data/Dumper/Dumper.xs b/ext/Data/Dumper/Dumper.xs
index 3cbc7c5412..054e0a970d 100644
--- a/ext/Data/Dumper/Dumper.xs
+++ b/ext/Data/Dumper/Dumper.xs
@@ -27,7 +27,8 @@ static I32 DD_dump (pTHX_ SV *val, char *name, STRLEN namelen, SV *retval,
HV *seenhv, AV *postav, I32 *levelp, I32 indent,
SV *pad, SV *xpad, SV *apad, SV *sep,
SV *freezer, SV *toaster,
- I32 purity, I32 deepcopy, I32 quotekeys, SV *bless);
+ I32 purity, I32 deepcopy, I32 quotekeys, SV *bless,
+ I32 maxdepth);
/* does a string need to be protected? */
static I32
@@ -130,7 +131,7 @@ static I32
DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
AV *postav, I32 *levelp, I32 indent, SV *pad, SV *xpad,
SV *apad, SV *sep, SV *freezer, SV *toaster, I32 purity,
- I32 deepcopy, I32 quotekeys, SV *bless)
+ I32 deepcopy, I32 quotekeys, SV *bless, I32 maxdepth)
{
char tmpbuf[128];
U32 i;
@@ -253,33 +254,46 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
}
}
- if (realpack) {
- if (*realpack == 'R' && strEQ(realpack, "Regexp")) {
- STRLEN rlen;
- char *rval = SvPV(val, rlen);
- char *slash = strchr(rval, '/');
- sv_catpvn(retval, "qr/", 3);
- while (slash) {
- sv_catpvn(retval, rval, slash-rval);
- sv_catpvn(retval, "\\/", 2);
- rlen -= slash-rval+1;
- rval = slash+1;
- slash = strchr(rval, '/');
- }
- sv_catpvn(retval, rval, rlen);
- sv_catpvn(retval, "/", 1);
- return 1;
+ if (realpack && *realpack == 'R' && strEQ(realpack, "Regexp")) {
+ STRLEN rlen;
+ char *rval = SvPV(val, rlen);
+ char *slash = strchr(rval, '/');
+ sv_catpvn(retval, "qr/", 3);
+ while (slash) {
+ sv_catpvn(retval, rval, slash-rval);
+ sv_catpvn(retval, "\\/", 2);
+ rlen -= slash-rval+1;
+ rval = slash+1;
+ slash = strchr(rval, '/');
}
- else { /* we have a blessed ref */
- STRLEN blesslen;
- char *blessstr = SvPV(bless, blesslen);
- sv_catpvn(retval, blessstr, blesslen);
- sv_catpvn(retval, "( ", 2);
- if (indent >= 2) {
- blesspad = apad;
- apad = newSVsv(apad);
- sv_x(aTHX_ apad, " ", 1, blesslen+2);
- }
+ sv_catpvn(retval, rval, rlen);
+ sv_catpvn(retval, "/", 1);
+ return 1;
+ }
+
+ /* If purity is not set and maxdepth is set, then check depth:
+ * if we have reached maximum depth, return the string
+ * representation of the thing we are currently examining
+ * at this depth (i.e., 'Foo=ARRAY(0xdeadbeef)').
+ */
+ if (!purity && maxdepth > 0 && *levelp >= maxdepth) {
+ STRLEN vallen;
+ char *valstr = SvPV(val,vallen);
+ sv_catpvn(retval, "'", 1);
+ sv_catpvn(retval, valstr, vallen);
+ sv_catpvn(retval, "'", 1);
+ return 1;
+ }
+
+ if (realpack) { /* we have a blessed ref */
+ STRLEN blesslen;
+ char *blessstr = SvPV(bless, blesslen);
+ sv_catpvn(retval, blessstr, blesslen);
+ sv_catpvn(retval, "( ", 2);
+ if (indent >= 2) {
+ blesspad = apad;
+ apad = newSVsv(apad);
+ sv_x(aTHX_ apad, " ", 1, blesslen+2);
}
}
@@ -294,14 +308,16 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
sv_catpvn(retval, "do{\\(my $o = ", 13);
DD_dump(aTHX_ ival, SvPVX(namesv), SvCUR(namesv), retval, seenhv,
postav, levelp, indent, pad, xpad, apad, sep,
- freezer, toaster, purity, deepcopy, quotekeys, bless);
+ freezer, toaster, purity, deepcopy, quotekeys, bless,
+ maxdepth);
sv_catpvn(retval, ")}", 2);
} /* plain */
else {
sv_catpvn(retval, "\\", 1);
DD_dump(aTHX_ ival, SvPVX(namesv), SvCUR(namesv), retval, seenhv,
postav, levelp, indent, pad, xpad, apad, sep,
- freezer, toaster, purity, deepcopy, quotekeys, bless);
+ freezer, toaster, purity, deepcopy, quotekeys, bless,
+ maxdepth);
}
SvREFCNT_dec(namesv);
}
@@ -312,7 +328,8 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
sv_catpvn(retval, "\\", 1);
DD_dump(aTHX_ ival, SvPVX(namesv), SvCUR(namesv), retval, seenhv,
postav, levelp, indent, pad, xpad, apad, sep,
- freezer, toaster, purity, deepcopy, quotekeys, bless);
+ freezer, toaster, purity, deepcopy, quotekeys, bless,
+ maxdepth);
SvREFCNT_dec(namesv);
}
else if (realtype == SVt_PVAV) {
@@ -380,7 +397,8 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
sv_catsv(retval, ipad);
DD_dump(aTHX_ elem, iname, ilen, retval, seenhv, postav,
levelp, indent, pad, xpad, apad, sep,
- freezer, toaster, purity, deepcopy, quotekeys, bless);
+ freezer, toaster, purity, deepcopy, quotekeys, bless,
+ maxdepth);
if (ix < ixmax)
sv_catpvn(retval, ",", 1);
}
@@ -486,7 +504,8 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
DD_dump(aTHX_ hval, SvPVX(sname), SvCUR(sname), retval, seenhv,
postav, levelp, indent, pad, xpad, newapad, sep,
- freezer, toaster, purity, deepcopy, quotekeys, bless);
+ freezer, toaster, purity, deepcopy, quotekeys, bless,
+ maxdepth);
SvREFCNT_dec(sname);
Safefree(nkey);
if (indent >= 2)
@@ -626,7 +645,7 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
DD_dump(aTHX_ e, SvPVX(nname), SvCUR(nname), postentry,
seenhv, postav, &nlevel, indent, pad, xpad,
newapad, sep, freezer, toaster, purity,
- deepcopy, quotekeys, bless);
+ deepcopy, quotekeys, bless, maxdepth);
SvREFCNT_dec(e);
}
}
@@ -686,7 +705,7 @@ Data_Dumper_Dumpxs(href, ...)
SV **svp;
SV *val, *name, *pad, *xpad, *apad, *sep, *tmp, *varname;
SV *freezer, *toaster, *bless;
- I32 purity, deepcopy, quotekeys;
+ I32 purity, deepcopy, quotekeys, maxdepth;
char tmpbuf[1024];
I32 gimme = GIMME;
@@ -769,6 +788,8 @@ Data_Dumper_Dumpxs(href, ...)
quotekeys = SvTRUE(*svp);
if ((svp = hv_fetch(hv, "bless", 5, FALSE)))
bless = *svp;
+ if ((svp = hv_fetch(hv, "maxdepth", 8, FALSE)))
+ maxdepth = SvIV(*svp);
postav = newAV();
if (todumpav)
@@ -834,7 +855,7 @@ Data_Dumper_Dumpxs(href, ...)
DD_dump(aTHX_ val, SvPVX(name), SvCUR(name), valstr, seenhv,
postav, &level, indent, pad, xpad, newapad, sep,
freezer, toaster, purity, deepcopy, quotekeys,
- bless);
+ bless, maxdepth);
if (indent >= 2)
SvREFCNT_dec(newapad);
diff --git a/ext/Data/Dumper/Todo b/ext/Data/Dumper/Todo
index 7dcd40b8e3..bd76e65b03 100644
--- a/ext/Data/Dumper/Todo
+++ b/ext/Data/Dumper/Todo
@@ -8,12 +8,6 @@ The following functionality will be supported in the next few releases.
=over 4
-=item $Data::Dumper::Maxdepth I<or> $I<OBJ>->Maxdepth(I<NEWVAL>)
-
-Depth beyond which we don't venture into a structure. Has no effect when
-C<Data::Dumper::Purity> is set. (useful in debugger when we often don't
-want to see more than enough).
-
=item $Data::Dumper::Expdepth I<or> $I<OBJ>->Expdepth(I<NEWVAL>)
Dump contents explicitly up to a certain depth and then use names for
diff --git a/t/lib/dumper.t b/t/lib/dumper.t
index 96c07ea48a..9130d1c690 100755
--- a/t/lib/dumper.t
+++ b/t/lib/dumper.t
@@ -20,6 +20,8 @@ sub TEST {
my $string = shift;
my $t = eval $string;
++$TNUM;
+ $t =~ s/([A-Z]+)\(0x[0-9a-f]+\)/$1(0xdeadbeef)/g
+ if ($WANT =~ /deadbeef/);
print( ($t eq $WANT and not $@) ? "ok $TNUM\n"
: "not ok $TNUM\n--Expected--\n$WANT\n--Got--\n$@$t\n");
@@ -29,17 +31,19 @@ sub TEST {
$t = eval $string;
++$TNUM;
+ $t =~ s/([A-Z]+)\(0x[0-9a-f]+\)/$1(0xdeadbeef)/g
+ if ($WANT =~ /deadbeef/);
print( ($t eq $WANT and not $@) ? "ok $TNUM\n"
: "not ok $TNUM\n--Expected--\n$WANT\n--Got--\n$@$t\n");
}
if (defined &Data::Dumper::Dumpxs) {
print "### XS extension loaded, will run XS tests\n";
- $TMAX = 162; $XS = 1;
+ $TMAX = 174; $XS = 1;
}
else {
print "### XS extensions not loaded, will NOT run XS tests\n";
- $TMAX = 81; $XS = 0;
+ $TMAX = 87; $XS = 0;
}
print "1..$TMAX\n";
@@ -702,3 +706,48 @@ TEST q(Data::Dumper->new([$a,$b,$c],['a','b','c'])->Purity(1)->Dump;);
TEST q(Data::Dumper->new([$a,$b,$c],['a','b','c'])->Purity(1)->Dumpxs;)
if $XS;
}
+
+{
+ $f = "pearl";
+ $e = [ $f ];
+ $d = { 'e' => $e };
+ $c = [ $d ];
+ $b = { 'c' => $c };
+ $a = { 'b' => $b };
+
+############# 163
+##
+ $WANT = <<'EOT';
+#$a = {
+# b => {
+# c => [
+# {
+# e => 'ARRAY(0xdeadbeef)'
+# }
+# ]
+# }
+#};
+#$b = $a->{b};
+#$c = $a->{b}{c};
+EOT
+
+TEST q(Data::Dumper->new([$a,$b,$c],['a','b','c'])->Maxdepth(4)->Dump;);
+TEST q(Data::Dumper->new([$a,$b,$c],['a','b','c'])->Maxdepth(4)->Dumpxs;)
+ if $XS;
+
+############# 169
+##
+ $WANT = <<'EOT';
+#$a = {
+# b => 'HASH(0xdeadbeef)'
+#};
+#$b = $a->{b};
+#$c = [
+# 'HASH(0xdeadbeef)'
+#];
+EOT
+
+TEST q(Data::Dumper->new([$a,$b,$c],['a','b','c'])->Maxdepth(1)->Dump;);
+TEST q(Data::Dumper->new([$a,$b,$c],['a','b','c'])->Maxdepth(1)->Dumpxs;)
+ if $XS;
+}