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

Reply via email to