On Sat, Aug 13, 2011 at 09:35:33PM +0200, Steffen Mueller wrote: > On 08/13/2011 06:23 PM, Chip Salzenberg wrote: > > On Sat, Aug 13, 2011 at 8:00 AM, Nicholas Clark<nick@ccl4.org> wrote: > >> I'd feel a lot calmer if someone were able to test build CPAN (ie as much > >> of it as possible for their OS etc) and compare this branch to blead > > > > That's a test I had planned anyway. It's been done before; is there a > > test harness already, or did everyone make it up as they went? > This was a lot of work and I would rather not do that again. If I had > to, I'd most certainly try to automate more. > > One obvious way to try to improve the process would be to have the same > machine smoke both branches and then look at only the dists where the > result is different. That seems like a very good way to go. Also, I fear that this particular plan of Chip's would really benefit from being smoked on CPAN (at least) tice. Once with -DDEBUGGING to enable assertions, to catch assumptions in CPAN code analogous to commit 13dc07cdac031027ff4a529a4c28f3d2b2c4ad9e Author: Chip Salzenberg <chip@pobox.com> Date: Fri Aug 12 17:45:05 2011 -0700 minimize copy of strings as well as numbers; tweak pad.c which assumed otherwise diff --git a/pad.c b/pad.c index da35a09..406b9d9 100644 --- a/pad.c +++ b/pad.c @@ -1243,12 +1243,14 @@ S_pad_findlex(pTHX_ const char *namepv, STRLEN namelen, U32 flags, const CV* cv, type as the source, independent of the flags set, and on it being "good" and only copying flag bits and pointers that it understands. */ - SV *new_namesv = newSVsv(*out_name_sv); AV * const ocomppad_name = PL_comppad_name; PAD * const ocomppad = PL_comppad; PL_comppad_name = MUTABLE_AV(AvARRAY(padlist)[0]); PL_comppad = MUTABLE_AV(AvARRAY(padlist)[1]); PL_curpad = AvARRAY(PL_comppad); + SV *new_namesv = newSVsv(*out_name_sv); + if (SvTYPE(new_namesv) < SVt_PVNV) + sv_upgrade(new_namesv, SVt_PVNV); /* pad names use SvNVX */ new_offset = pad_alloc_name(new_namesv, ... and once with full-on optimisation, to try to tickle crashes caused by anything else. [and possibly also with/without threads] Maybe I'm too paranoid. Or maybe that's just what the bugs want me to think. Nicholas ClarkThread Previous | Thread Next