Skip Menu |

This queue is for tickets about the Carp-REPL CPAN distribution.

Report information
The Basics
Id: 105016
Status: open
Priority: 0/
Queue: Carp-REPL

People
Owner: ether [...] cpan.org
Requestors: SREZIC [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: 0.18
Fixed in: (no value)



Subject: Make Data::Dump::Streamer dependency optional?
Data::Dump::Streamer is a difficult module which regularly breaks with bleedperl. Currently it does not build cleanly with perl 5.22.0, hence there are no 5.22.0 reports for Carp-REPL (see http://matrix.cpantesters.org/?dist=Carp-REPL%200.18 ). I think it would be good if the dependency could be made optional, and the only occurrence of Data::Dump::Streamer in Devel/REPL/Plugin/Carp/REPL.pm could be rewritten to use an alternative if necessary, e.g. Data::Dumper.
From: ppisar [...] redhat.com
Dne So 06.čen.2015 04:22:09, SREZIC napsal(a): Show quoted text
> Data::Dump::Streamer is a difficult module which regularly breaks with > bleedperl. Currently it does not build cleanly with perl 5.22.0, hence > there are no 5.22.0 reports for Carp-REPL (see > http://matrix.cpantesters.org/?dist=Carp-REPL%200.18 ). > I think it would be good if the dependency could be made optional, and > the only occurrence of Data::Dump::Streamer in > Devel/REPL/Plugin/Carp/REPL.pm could be rewritten to use an > alternative if necessary, e.g. Data::Dumper.
Here it is. -- Petr
Subject: Carp-REPL-0.18-Use-Data-Dumper-instead-of-Data-Dump-Streamer.patch
From 41c192d5c23cc484c0f57570a614b3d635a60c6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com> Date: Fri, 7 Aug 2015 10:09:25 +0200 Subject: [PATCH] Use Data::Dumper instead of Data::Dump::Streamer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Data::Dump::Streamer does not work with perl-5.22.0. It's used only for formating output. Let use Data::Dumper now. CPAN RT#105016 Signed-off-by: Petr Písař <ppisar@redhat.com> --- Makefile.PL | 2 +- lib/Devel/REPL/Plugin/Carp/REPL.pm | 12 ++++++++++-- t/12-env.t | 28 ++++++++++++++-------------- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/Makefile.PL b/Makefile.PL index e7ea4ef..8d3dbe7 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -58,7 +58,7 @@ my %WriteMakefileArgs = ( 'Devel::LexAlias' => '0', 'Devel::REPL' => '0', 'namespace::autoclean' => '0', - 'Data::Dump::Streamer' => '0', + 'Data::Dumper' => '0', 'Lexical::Persistence' => '0', }, }, diff --git a/lib/Devel/REPL/Plugin/Carp/REPL.pm b/lib/Devel/REPL/Plugin/Carp/REPL.pm index 5c55a83..71f8ec4 100644 --- a/lib/Devel/REPL/Plugin/Carp/REPL.pm +++ b/lib/Devel/REPL/Plugin/Carp/REPL.pm @@ -6,7 +6,7 @@ use Devel::REPL::Plugin; use namespace::autoclean; use Devel::LexAlias; use Devel::StackTrace::WithLexicals; -use Data::Dump::Streamer; +use Data::Dumper; sub BEFORE_PLUGIN { my $self = shift; @@ -140,7 +140,15 @@ around 'read' => sub { } if ($line =~ /^\s*:e(?:nv)?\s*/) { - $self->print(Dump($self->frame->lexicals)->Names('Env')->Out); + my $formater = Data::Dumper->new([$self->frame->lexicals]); + $formater->Useqq(1); + $formater->Varname('Env'); + $formater->Quotekeys(0); + $formater->Sortkeys(1); + $formater->Deparse(1); + my $output = $formater->Dump; + $output =~ s/^\$Env1 =/\$Env =/; + $self->print($output); return ''; } diff --git a/t/12-env.t b/t/12-env.t index 1eab05c..526f917 100644 --- a/t/12-env.t +++ b/t/12-env.t @@ -22,24 +22,24 @@ expect_like(qr{\bNow at t/scripts/12-env\.pl:42 \(frame 1\)\.}); expect_send(':e'); expect_like(qr/\$Env = \{(?!\};)/); -expect_like(qr/"\\\$alpha" => \\do \{ my \$v = 1 \}/); -expect_like(qr/"%args" => \{/); +expect_like(qr/"\\\$alpha" => \\1/); +expect_like(qr/"%args" +=> \{/); expect_like(qr/Be => 4/); -expect_like(qr/H => 1/); +expect_like(qr/H +=> 1/); expect_like(qr/He => 2/); expect_like(qr/Li => 3/); -expect_like(qr/"\\\$beta" => \\do \{ my \$v = 2 \}/); -expect_like(qr/"\\\$delta" => \\do \{ my \$v = 4 \}/); -expect_like(qr/"\\\$gamma" => \\do \{ my \$v = 3 \}/); +expect_like(qr/"\\\$beta" +=> \\2/); +expect_like(qr/"\\\$delta" => \\4/); +expect_like(qr/"\\\$gamma" => \\3/); expect_send(':u'); expect_like(qr{\bNow at t/scripts/12-env\.pl:44 \(frame 2\)\.}); expect_send(':e'); expect_like(qr/\$Env = \{(?!\};)/); -expect_like(qr/"%args" => \{/); +expect_like(qr/"%args" +=> \{/); expect_like(qr/Be => 4/); -expect_like(qr/H => 1/); +expect_like(qr/H +=> 1/); expect_like(qr/He => 2/); expect_like(qr/Li => 3/); expect_like(qr/\+.*\+.*\+/); @@ -49,23 +49,23 @@ expect_like(qr{\bNow at t/scripts/12-env\.pl:28 \(frame 3\)\.}); expect_send(':e'); expect_like(qr/\$Env = \{(?!\};)/); -expect_like(qr/"\\\$dos" => \\do \{ my \$v = 'is' \}/); -expect_like(qr/"\\\$tres" => \\do \{ my \$v = 'I' \}/); -expect_like(qr/"\\\$uno" => \\do \{ my \$v = 'I' \}/); +expect_like(qr/"\\\$dos" +=> \\"is"/); +expect_like(qr/"\\\$tres" => \\"I"/); +expect_like(qr/"\\\$uno" +=> \\"I"/); expect_send(':u'); expect_like(qr{\bNow at t/scripts/12-env\.pl:19 \(frame 4\)\.}); expect_send(':e'); expect_like(qr/\$Env = \{(?!\};)/); -expect_like(qr/"\\\$a" => \\do \{ my \$v = 'I' \}/); -expect_like(qr/"\\\$b" => \\do \{ my \$v = 'I' \}/); +expect_like(qr/"\\\$a" => \\"I"/); +expect_like(qr/"\\\$b" => \\"I"/); expect_send(':u'); expect_like(qr{\b\QNow at t/scripts/12-env.pl:13 (frame 5).\E}); expect_send(':e'); -expect_like(qr/\$Env = \{ "\\\$num" => \\do \{ my \$v = 'I' \} \};/); +expect_like(qr/\$Env = \{\n +"\\\$num" => \\"I"\n +\};/); expect_send(':u'); expect_like(qr{\b\QNow at t/scripts/12-env.pl:7 (frame 6).\E}); -- 2.4.3