Well, actually, it finished. Note that to build these old versions of Perl on Debian testing, you have to: git cherry-pick -n e0ef413b27cae926f967c54bbb9e7d40cc2adb2f (the test program does this)
So, the result of bisect: c5df3096702d4a814b3774dff243e7eb74814257 is the first bad commit commit c5df3096702d4a814b3774dff243e7eb74814257 Author: Zefram <zef...@fysh.org> Date: Fri Apr 23 01:52:47 2010 +0100 SV-based interfaces for dieing and warning New functions croak_sv(), die_sv(), mess_sv(), and warn_sv(), each act much like their _sv-less counterparts, but take a single SV argument instead of sprintf-like format and args. They will accept RVs, passing them through as such. This means there's no more need to clobber ERRSV in order to throw a structured exception. pp_warn() and pp_die() are rewritten to use the _sv interfaces. This fixes part of [perl #74538]. It also means that a structured warning object will be passed through to $SIG{__WARN__} instead of being stringified, thus bringing warn in line with die with respect to structured exception objects. The new functions and their existing counterparts are all fully documented. :100644 100644 6ae162687a665f15ba1c38080a58c8cc310b65a4 62e558760de4cda0d6e0a96501210ae68d68d16f M MANIFEST :100644 100644 f93d27c2f588bc0132067341c4d4a2d2bd41eaa5 1c1bb2d75a64ca80edb7cce455bd184699c0c5d8 M embed.fnc :100644 100644 663cb6b8a1e018aef6d9f96deee8a75b690627e1 128cd467979b957de55a83968805af88620da531 M embed.h :100644 100644 77883384f3b44e3bde0da7a46cc24608105cc131 334e2c9368bb61cb39674319a6f89ecb3395f1ef M global.sym :100644 100644 0341f6e9d6296a96bf733b121cea1823b8fb0442 abe3e60803dd5af664548518d648529ff3594afa M mg.c :100644 100644 921688d656fcc00f7705487138e247f13d7d0127 f401fc7938ab58bc0707fe34bfdd6e86dbb1fa94 M pp_ctl.c :100644 100644 8dd8bc063567b8e733f3586f659fc6ca8d827705 f57bd1a57f2001c5c31c01645f305bb0b0df42b5 M pp_sys.c :100644 100644 979076f8c22dda4e1712e337d17917fdf215076a 71240e5aa88f5b1ee6838b58950dfef0def65377 M proto.h :040000 040000 facef45a345cb919ad8120eaabd0711469c9b564 71ea308544c7b0e1350dfc4fee0bcd08d2bf0f18 M t :100644 100644 89fea231a6add9630d6d46a9c01db7db5ecfafc4 99a9511aa9676e11b578fb6ae501c35b834e1b05 M util.c bisect run success And the log: $ git bisect log # bad: [a35ef416833511da752c4b5b836b7a8915712aab] Remove RC3 marker. # good: [6d52c880307229a35c23215c596700e716bd7c32] Removing the RC marker from patchlevel.h git bisect start 'v5.14.0' 'v5.12.0' # bad: [44ef8c7de01654d0b33d6fd57119d1e622abb5a2] make regen; make regen_perly git bisect bad 44ef8c7de01654d0b33d6fd57119d1e622abb5a2 # skip: [b3364d989906ac4625608c0ff3bcfdad7e989cb7] perldelta up to be34c38 git bisect skip b3364d989906ac4625608c0ff3bcfdad7e989cb7 # bad: [3bc9c68be9b73fccbaf3154e7c08c09e241a3be6] Disable regeneration of regcharclass.h on win32 git bisect bad 3bc9c68be9b73fccbaf3154e7c08c09e241a3be6 # bad: [1db4d19556a36b5a8e8604c1e7656999ebc7732b] RT 75902: Add prototypes for tie() and untie() to allow overloading git bisect bad 1db4d19556a36b5a8e8604c1e7656999ebc7732b # bad: [9e5bbba0de25c01ae9355c7a97e237602a37e9f3] perlunifaq, uniintro: fix for 80 col display git bisect bad 9e5bbba0de25c01ae9355c7a97e237602a37e9f3 # good: [83aa740ef4e0ec94b144304b034baf00e5d12723] consting in lex_stuff_pvn git bisect good 83aa740ef4e0ec94b144304b034baf00e5d12723 # good: [992b236353d3493be5063165567838e96570135a] Don't use a C++ keyword as a variable name ("new"). git bisect good 992b236353d3493be5063165567838e96570135a # bad: [99782e35be86d92df5daa0659d4cb2351d4a36b9] Merge remote branch 'zefram/zefram/reliable_exception' into blead git bisect bad 99782e35be86d92df5daa0659d4cb2351d4a36b9 # good: [4f0556e9541e0e65f0abc5f4f6caf1f16ddf2dcd] Permit array assignment to steal temps and copy shared hash key scalars. git bisect good 4f0556e9541e0e65f0abc5f4f6caf1f16ddf2dcd # good: [6550424581c83583e72aa799a12d2a2e68d9e5f1] For SAVEt_BOOL, save the value with the type. git bisect good 6550424581c83583e72aa799a12d2a2e68d9e5f1 # good: [3297d27d658a6691c429e496bd2a05fe04eda9d7] Silence a couple of false positive "may be used uninitialized" gcc warnings git bisect good 3297d27d658a6691c429e496bd2a05fe04eda9d7 # bad: [7ce092845b50544ac127e66e60d73a2f7b707464] bring G_KEEPERR back to the realm of sanity git bisect bad 7ce092845b50544ac127e66e60d73a2f7b707464 # good: [96d9b9cd40f1d98fda790eb12b5cdbeef8b48a81] make die reliably hand error to post-eval code git bisect good 96d9b9cd40f1d98fda790eb12b5cdbeef8b48a81 # bad: [c5df3096702d4a814b3774dff243e7eb74814257] SV-based interfaces for dieing and warning git bisect bad c5df3096702d4a814b3774dff243e7eb74814257 I'm attaching the test programs. Paths will need changing, of course. --
bisect-die.sh
Description: Bourne shell script
#!/usr/bin/perl -Tw use Carp qw(confess); use CGI; my $CGI; sub send_template; sub run_template; my $dat = <<DATA; survey_no=255490788292995187 DATA open my $fh, '<', \$dat or die "guess we don't have PerlIO"; $CGI = CGI->new($fh); close $fh; eval { eval { run_template($CGI->param('survey_no')); }; die; }; exit($@ =~ /^Died at/s ? 10 : 11); sub run_template { confess "foo"; }