[Phoenix-pm] Fwd: perlbug-followup@perl.org: [perl #38483] panic: restartop

Brock awwaiid at thelackthereof.org
Sat Feb 11 14:15:33 PST 2006


So I'm haging out at CodeCon (http://codecon.org/2006) and just saw a
talk which is related. 

  http://www.st.cs.uni-sb.de/dd/ - Delta

In summary, it is an intelligent-brute-force way to chop down code until
you have a snippet which illustrates the problem. So, by a scientific
form of trial-and-error, the program might chop out all my code until
there is only enough to exactly replicate the problem (so I must have
some sort of test case).

In these sorts of cases you mention, we'd actually chop up the Perl
interpreter itself until we got a minimal interpreter which was only
able to interpret this mini-program example and only had the error. Or,
more realistically, if you had a lengthy perl program which segfaults
the interpreter you could apply this technique and end up with a very
small example like the one below.

Its cool enough that I'm already thinking of implementing it for Perl
(more for perl programs than running it against the Perl interpreter...
but either would be fun!).

--Brock

On 2006.02.11.22.03, Scott Walters wrote:
| Oooooh, and another one!
| 
| -scott
| 
| ----- Forwarded message from andy hohorst <perlbug-followup at perl.org> -----
| 
| From: andy hohorst <perlbug-followup at perl.org>
| To: bugs-bitbucket at rt.perl.org
| Subject: [perl #38483] panic: restartop 
| Date: Fri, 10 Feb 2006 11:36:12 -0800
| Resent-From: perl5-porters-return-109588-scott=slowass.net at perl.org
| 
| # New Ticket Created by  andy hohorst 
| # Please include the string:  [perl #38483]
| # in the subject line of all future correspondence about this issue. 
| # <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=38483 >
| 
| 
| $ perl
| use re 'eval';
| my $a = '(?{"})';  # note there is only one double-quote
| "cookie" =~ m/$a/;
| ^D
| panic: restartop
| 
| This is perl, v5.8.7 built for x86_64-linux
| This is perl, v5.8.7 built for MSWin32-x86-multi-thread (^Z in this case)
| This is perl, v5.8.7 built for cygwin-thread-multi-64int
| 
| I think I can safely say the cause of the problem is the unterminated string
| in the code expression.
| Bandaid? Check for unterminated strings in code expressions.
| Beyond that, I have no idea.
| 
| This was found thanks to a piece of code that loads pairs of regexps and
| eval strings from a file - one of the regexps used (.+)\b(?(?{!defined
| $refs{'ntla}->{$1}})^) to find things that are defined in the ntla entry -
| fun times.
| 
|  - andy
| 
| 
| ----- End forwarded message -----
| _______________________________________________
| Phoenix-pm mailing list
| Phoenix-pm at pm.org
| http://mail.pm.org/mailman/listinfo/phoenix-pm


More information about the Phoenix-pm mailing list