SHLOMI! (I should note, however, that I was in favor of the grant and that Shlomi did a wonderful job. Still fair to poke, though. :)
On Sun, May 26, 2013 at 1:40 PM, Dotan Dimet <[email protected]> wrote: > Shlomif, y u break perl? > > > -------- Original Message -------- Subject: [perl #118169] subroutine > arguments are no longer shown in perl debugger ( x @_ in perl -d) Date: Sun, > 26 May 2013 01:29:38 -0700 From: Father Chrysostomos via RT > <[email protected]> <[email protected]> Reply-To: > [email protected] To: [email protected] > > On Sat May 25 17:33:45 2013, jkeenan wrote: > > On Fri May 24 22:24:07 2013, [email protected] wrote: > > > > > > > > > This is a bug report for perl from [email protected], > > > generated with the help of perlbug 1.39 running under perl 5.18.0. > > > > > > > > > ----------------------------------------------------------------- > > > In perl 5.18.0, @_ isn't visible in the debugger (perl -d). > > > You can't inspect it with x (eval/dump) or w (watch). > > > > > > Example: > > > perl -dE 'sub f { say $_ for (@_); $a = $_[1]; say $a;}; f(4,25,7);' > > > DB<1> s > > > ... > > > DB<1> x @_ > > > empty array > > > > > > ----------------------------------------------------------------- > > > --- > > > Flags: > > > category=core > > > severity=high > > > --- > > > Site configuration information for perl 5.18.0: > > > > > > Configured by dotandimet at Mon May 20 22:37:44 IDT 2013. > > > > > > Summary of my perl5 (revision 5 version 18 subversion 0) > > > configuration: > > > > > > > This does seem to be a regression from 5.16.0: > > > > ##### > > $ /usr/local/bin/perl5.16.0 -d 118169-debug.pl > > > > Loading DB routines from perl5db.pl version 1.37 > > Editor support available. > > > > Enter h or 'h h' for help, or 'man perldebug' for more help. > > > > main::(118169-debug.pl:4): use Data::Dumper;$Data::Dumper::Indent=1; > > DB<1> n > > main::(118169-debug.pl:7): f(4,25,7); > > DB<1> s > > main::f(118169-debug.pl:10): say $_ for (@_); > > DB<1> x @_ > > 0 4 > > 1 25 > > 2 7 > > ##### > > It was caused by: > > commit 7c54f46a95be02b1ca921f4d4521122267d801cd > Author: Shlomi Fish <[email protected]> <[email protected]> > Date: Mon Oct 1 20:40:13 2012 +0200 > > perl5db: no longer passing arguments to DB::eval(). > > It didn't accept any arguments anyway. > > diff --git a/lib/perl5db.pl b/lib/perl5db.pl > index 54de27a..87713a5 100644 > --- a/lib/perl5db.pl > +++ b/lib/perl5db.pl > @@ -741,7 +741,7 @@ sub eval { > # Since we're only saving $@, we only have to localize the array > element > # that it will be stored in. > local $saved[0]; # Preserve the old value of $@ > - eval { &DB::save }; > + eval { DB::save() }; > > # Now see whether we need to report an error back to the user. > if ($at) { > @@ -1929,7 +1929,7 @@ If there are any preprompt actions, execute those > as well. > =cut > > # If there's an action, do it now. > - $evalarg = $action, DB::eval(@_) if $action; > + $evalarg = $action, DB::eval() if $action; > > # Are we nested another level (e.g., did we evaluate a function > # that had a breakpoint in it at the debugger prompt)? > @@ -1940,7 +1940,7 @@ If there are any preprompt actions, execute those > as well. > > # Do any pre-prompt actions. > foreach $evalarg (@$pre) { > - DB::eval(@_); > + DB::eval(); > } > > # Complain about too much recursion if we passed the limit. > @@ -3273,7 +3273,7 @@ any variables we might want to address in the > C<DB> package. > $evalarg = "\$^D = \$^D | \$DB::db_stop;\n$cmd"; > > # Run *our* eval that executes in the caller's context. > - DB::eval(@_); > + DB::eval(); > > # Turn off the one-time-dump stuff now. > if ($onetimeDump) { > @@ -3374,7 +3374,7 @@ again. > > # Evaluate post-prompt commands. > foreach $evalarg (@$post) { > - DB::eval(@_); > + DB::eval(); > } > } # if ($single || $signal) > > @@ -3477,7 +3477,7 @@ sub _DB__handle_watch_expressions > > # Fix context DB::eval() wants to return an array, but > # we need a scalar here. > - my ($val) = join( "', '", DB::eval(@_) ); > + my ($val) = join( "', '", DB::eval() ); > $val = ( ( defined $val ) ? "'$val'" : 'undef' ); > > # Did it change? > @@ -5075,7 +5075,7 @@ sub cmd_i { > my $line = shift; > foreach my $isa ( split( /\s+/, $line ) ) { > $evalarg = $isa; > - ($isa) = DB::eval(@_); > + ($isa) = DB::eval(); > no strict 'refs'; > print join( > ', ', > @@ -5120,7 +5120,7 @@ sub cmd_l { > # Set up for DB::eval() - evaluate in *user* context. > $evalarg = $1; > # $evalarg = $2; > - my ($s) = DB::eval(@_); > + my ($s) = DB::eval(); > > # Ooops. Bad scalar. > if ($@) { > @@ -5523,7 +5523,7 @@ sub _add_watch_expr { > # in the user's context. This version can handle expressions which > # return a list value. > $evalarg = $expr; > - my ($val) = join( ' ', DB::eval(@_) ); > + my ($val) = join( ' ', DB::eval() ); > $val = ( defined $val ) ? "'$val'" : 'undef'; > > # Save the current value of the expression. > @@ -9744,7 +9744,7 @@ sub cmd_pre580_W { > # Get the current value of the expression. > # Doesn't handle expressions returning list values! > $evalarg = $1; > - my ($val) = DB::eval(@_); > + my ($val) = DB::eval(); > $val = ( defined $val ) ? "'$val'" : 'undef'; > > # Save it. > > > -- > > Father Chrysostomos > > > > > > -- > This message has been scanned for viruses and > dangerous content by *MailScanner* <http://www.mailscanner.info/>, and is > believed to be clean. > > _______________________________________________ > Perl mailing list > [email protected] > http://mail.perl.org.il/mailman/listinfo/perl >
_______________________________________________ Perl mailing list [email protected] http://mail.perl.org.il/mailman/listinfo/perl
