[Hours] [Activity]
2012/04/09 Monday
0.25 bisect.pl
1.00 bisect.pl (HP-UX build failure (cc bug))
3.50 bisect.pl (user fixups)
0.50 sfio
=====
5.25
2012/04/10 Tuesday
1.25 bisect.pl (HP-UX and AIX)
=====
1.25
2012/04/11 Wednesday
0.75 AIX bisect
3.00 HP-UX build failure (cc bug)
=====
3.75
2012/04/12 Thursday
0.50 RT #112370
0.50 bisect.pl (HP-UX and AIX)
1.25 reading/responding to list mail
=====
2.25
2012/04/13 Friday
0.25 RT #112404
5.50 bisect.pl (valgrind)
=====
5.75
2012/04/14 Saturday
0.25 'd' flags (on valid_utf8_to_uv{chr,uni})
2.00 panic due to PERL_ASYNC_CHECK()
=====
2.25
2012/04/15 Sunday
0.75 RT #112370
2.25 undefined behaviour caught by gcc -ftrapv
=====
3.00
Which I calculate is 23.50 hours
A rather quiet week. The only significant line item of work was polishing
several ad-hoc enhancements I'd needed while bisecting into reusable code
in Porting/bisect.pl, so that everyone else (including future me) will
have things "just work". Specifically:
* bisect.pl now works on HP-UX, with its prehistoric patch program and
cranky make utility. (Even AIX can do parallel make properly. Hell HP?)
* bisect.pl now corrects the blead revisions with GNU-make-isms in
Makefile.SH, which means that it can bisect effectively on AIX and HP-UX,
where previously it took over 24 hours to produce a list of 200 "skips"
* bisect.pl can now deal with command line library paths whilst building
10 year old revisions on 64 bit platforms
(Building old perl on platforms that postdate it is a bit tricky and needs
a few fixups. But these days new platforms are often all we have)
* bisect.pl can now apply user changes (patches or code-based) before and
after running Configure, with conditional application
* bisect.pl now has a --valgrind option, which runs the test case under
valgrind
Like many things, that last one turns out not to be as trivial to implement
as one might have thought. It turns out that if an executable file starts
#!./perl
then Perl's system() will end up with that file being invoked by ./perl,
which is what we want. (And I checked, libc system() is the same)
Whereas valgrind will feed such a file to /bin/sh. Much jollity, working
out what was happening, and then how to refactor things to avoid special
cases, but still be maximally useful and "just work".
These are currently on the branch nicholas/bisect and will be merged to
blead post 5.16.0. This doesn't make them any less useful to people today,
as one already needs a local git repository clone to bisect, so one already
has that branch to hand.
Nicholas Clark