[prev in list] [next in list] [prev in thread] [next in thread] 

List:       perl5-changes
Subject:    [perl.git]  branch nicholas/bisect, created. v5.17.9-79-gb1a13b2
From:       "Nicholas Clark" <nick () ccl4 ! org>
Date:       2013-02-26 21:02:19
Message-ID: E1UARfH-00042t-VB () camel ! ams6 ! corp ! booking ! com
[Download RAW message or body]

In perl.git, the branch nicholas/bisect has been created

<http://perl5.git.perl.org/perl.git/commitdiff/b1a13b2bcddfbae04e36c196e60a580199ca1b3b?hp=0000000000000000000000000000000000000000>


        at  b1a13b2bcddfbae04e36c196e60a580199ca1b3b (commit)

- Log -----------------------------------------------------------------
commit b1a13b2bcddfbae04e36c196e60a580199ca1b3b
Author: Nicholas Clark <nick@ccl4.org>
Date:   Tue Feb 26 20:52:56 2013 +0100

    Three Configure fixups so that bisect-runner.pl can build 1997-era 5.004
    
    Specifically, so that it can build revisions near 15f0808c5d67b362.

M	Porting/bisect-runner.pl

commit f2ef8ee49eb2a7e4558632c5ad520bc9f3738fa0
Author: Nicholas Clark <nick@ccl4.org>
Date:   Tue Feb 26 20:50:46 2013 +0100

    bisect-runner.pl should match patches with directory 'b' before 'a'.
    
    The pattern to extract the file for diagnostics should a patch not apply was
    failing to match (and generating a legitimate used of uninitialized value
    warning) for the case where the patch was specified as --- b/ +++ a/
    The pattern was only expecting --- a/ +++ b/

M	Porting/bisect-runner.pl

commit b9e21f3fe577cf7dc0a2ec92f4ddb0ee1429cc9c
Author: Nicholas Clark <nick@ccl4.org>
Date:   Wed Aug 1 13:55:58 2012 +0200

    Add a 'none' target to bisect-runner.pl
    
    This runs the user's test case directly against a clean checkout.
    Using this gives a couple of features that a plain git bisect run can't
    offer - automatic start revision detection, and test case timeouts.

M	Porting/bisect-runner.pl

commit 9e44c3f07c82c43a44ffc811befb487a389b7e65
Author: Nicholas Clark <nick@ccl4.org>
Date:   Tue Jul 31 18:54:24 2012 +0200

    bisect.pl can now optionally timeout the user's test case.
    
    This permits bisection to locate the cause (or cure) of bugs which cause
    programs to hang. When using a timeout, bisect-runner.pl defaults to
    running the test case in its own process group, and tries hard to ensure
    that all processes in that process group are killed if the timeout fires.

M	Porting/bisect-runner.pl

commit 51f20fb15ef52082edfec978c3d818489d9b4fbb
Author: Nicholas Clark <nick@ccl4.org>
Date:   Tue Jul 31 16:05:58 2012 +0200

    Add an option to bisect.pl to run the user testcase in its own process group.

M	Porting/bisect-runner.pl

commit 07388b737f081489db4448f573d77d194052b2ae
Author: Nicholas Clark <nick@ccl4.org>
Date:   Tue Jul 31 15:17:48 2012 +0200

    In bisect-runner.pl, run_report_and_exit() now uses run_with_options().

M	Porting/bisect-runner.pl

commit 3e80cbb69e079836f8223b6972a8a5034fe24209
Author: Nicholas Clark <nick@ccl4.org>
Date:   Tue Jul 31 15:06:33 2012 +0200

    In bisect-runner.pl, extract the Configure running into run_with_options().
    
    Configure is run using explicit fork, exec and waitpid so that it can be run
    with with STDIN from /dev/null, but without going through the shell (to
    avoid having to worry about quoting command line arguments). This code will
    be useful for adding optional timeouts when running the user test case.

M	Porting/bisect-runner.pl

commit 02ae810da816707990b2facb85641a54bfb54364
Author: Nicholas Clark <nick@ccl4.org>
Date:   Tue Jul 31 14:28:46 2012 +0200

    In bisect-runner.pl, invert the first parameter to report_and_exit().
    
    A true first parameter now means "good". Previously the first parameter was
    assumed to be a return value from system, and hence true meant "bad".

M	Porting/bisect-runner.pl

commit be3513f12003dff4a2b3726850a020b305255420
Author: Nicholas Clark <nick@ccl4.org>
Date:   Tue Jul 31 12:59:42 2012 +0200

    In bisect-runner.pl, refactor the calls to system @ARGV into a function.
    
    This will permit the addition of timeouts when running the test user's case.

M	Porting/bisect-runner.pl

commit ef40448214023e71b88fee759ff44b8d9ab49314
Author: Nicholas Clark <nick@ccl4.org>
Date:   Tue Jul 31 12:40:33 2012 +0200

    bisect.pl can run in-place if the checkout is totally clean.
    
    Copy bisect-runner.pl to a tempfile, and use that with git bisect run.

M	Porting/bisect.pl

commit 801bd27fdee0eaafb5ff90d189a8a1a61c48ebc0
Author: Nicholas Clark <nick@ccl4.org>
Date:   Fri Jul 6 17:35:08 2012 +0200

    If there is no 'blead' branch, bisect.pl now uses a suitable alternative.
    
    If HEAD is more recent than the last stable release (ie the latter is
    reachable from the former), HEAD is used for the bisect end, otherwise the
    last stable tag is used (and that release removed from the list of potential
    starts to try).

M	Porting/bisect.pl

commit ef2be82a74e3b2a3cfbf5210ed74f2a4da115c1d
Author: Nicholas Clark <nick@ccl4.org>
Date:   Fri Jul 6 17:00:35 2012 +0200

    Add --gold option to bisect.pl for the revision to use for "recent" files.
    
    Historically when bisect-runner.pl wanted to check out a known good recent
    version of a file (such as makedepend.SH) it would check out the revision
    from blead. However, that may not be wise as blead isn't guaranteed always to
    be stable and therefore "known good". So default to using the most recent
    tagged stable release.

M	Porting/bisect-runner.pl
M	Porting/bisect.pl

commit 9ed8804ef670cb03cc5ebb1f2db0f6b387e810c8
Author: Nicholas Clark <nick@ccl4.org>
Date:   Thu Jul 5 16:00:44 2012 +0200

    bisect-runner.pl always needs to pass paths gleaned from gcc to Configure.
    
    Commits fdbac266ba9ef2a6 and 599ee4f7809ae508 ensure that /usr/local/lib,
    /lib and /usr/lib are searched on all platforms for shared libraries, and
    that multiarch library locations gleaned from gcc are searched on x86_64.
    However, on other Linux architectures it fails to pass the multiarch
    locations to Configure. Version (just) prior to 5.14.0 do not contain the
    logic to ask gcc, so they fail to build on multiarch setups.
    
    This commit ensures that the correct library locations are available on
    all platforms.

M	Porting/bisect-runner.pl

commit c671168a66b0562ff19a683431e7637908a42033
Author: Nicholas Clark <nick@ccl4.org>
Date:   Wed Jul 4 14:34:31 2012 +0100

    When bisecting, use `git tag -l` to get the list of stable releases.
    
    Previously bisect.pl was using a hard coded list, which (obviously) will
    become stale.
    
    Also, note in the docs that we only use .0 stable releases, and why.

M	Porting/bisect-runner.pl
M	Porting/bisect.pl

commit a0a9b8faf72fd2860f808299fb2e3e723159d4e7
Author: Nicholas Clark <nick@ccl4.org>
Date:   Wed Jul 4 13:52:19 2012 +0100

    bisect-runner.pl needs to probe DB_File.xs before running Configure
    
    Commit f2f0a0ff7250e0ba (in Nov 2011), consolidated all the code that
    patches extensions. As a side effect, it moved all extension patching
    after Configure is run. Unfortunately this introduced a bug, because one
    test of DB_File.xs was to change the arguments to Configure to skip building
    DB_File at all if it's too old. Return this logic to before when Configure
    is run, so that bisect-runner.pl can once again build 5.005 and earlier on
    machines with the Berkley DB headers installed, by forcibly skipping the
    build of DB_File there.

M	Porting/bisect-runner.pl

commit 29964942231528a78ac711080c8e6aadabeee8a4
Author: Nicholas Clark <nick@ccl4.org>
Date:   Thu May 10 17:47:11 2012 +0200

    bisect-runner.pl needs another minor fixup to build 5.004_05 on Linux.
    
    bisect-runner.pl already reverts a sequence of commits to doio.c related to
    special case handling of union semun on Linux and Solaris, which cause the
    build to fail on current Linux. The last of these, 9b599b2a63d2324d is
    described as "[win32] merge change#887 from maintbranch". However, it uses
    __sun__ and __svr4__ instead of the __sun and __SVR4 of the maint branch
    commit 6cdf74fe31f049dc. Hence the code in bisect-runner.pl needs to be
    taught about this variation in the maint-5.004 branch, so that it can also
    unwind the problematic code in doio.c there.

M	Porting/bisect-runner.pl

commit e089b2014234e9712f3d51d0219d7097a5bc9a0b
Author: Nicholas Clark <nick@ccl4.org>
Date:   Thu May 3 14:43:11 2012 +0200

    bisect-runner.pl should fix 5.7.x to export Perl_cxinc on AIX.
    
    Without this, about 60 commits in a key area of history fail to build,
    between the upgrade of Scalar-List-Utils to 1.03, and the commit that
    amends makedef.pl to export Perl_cxinc, which Utils.xs indirectly started
    using (via a macro).

M	Porting/bisect-runner.pl

commit 1edd10bea1d31c99bc2405c1c373bc40df2b7c5e
Author: Nicholas Clark <nick@ccl4.org>
Date:   Wed May 2 11:26:15 2012 +0200

    bisect-runner.pl should fix a typo in the Solaris hints file.
    
    Without this typo fix about 700 revisions from 5.13.10 to 5.14.0-RC1 can't
    be built on Solaris with Sun's compiler.

M	Porting/bisect-runner.pl

commit cf7da20b9c05feca9afde7ac124e1b4d48ed7348
Author: Yves Orton <demerphq@gmail.com>
Date:   Mon Apr 16 20:23:32 2012 +0200

    Tweak to make it clearer what to do if your working space is dirty
    
    If you try to biect in a directory with .gitignore'd files in it
    bisect will refuse to run. Since these files arent shown by status
    this can cause some head scratching.
    
    This patch makes it more obvious what is wrong by showing the listed
    files and suggesting git clean as a solution. I deliberately did not
    document the command to clean up untracked files, so people wouldn't
    knee jerk paste it somewhere and lose something important. And by people
    I mean me. :-) Thus it just shows the command to wipe ignored files,
    which I figure is safe.

M	Porting/bisect.pl

commit c04edda538c292ef98489e4bd9641f90bae63940
Author: Nicholas Clark <nick@ccl4.org>
Date:   Fri Apr 13 16:49:24 2012 +0200

    Add a --valgrind option to bisect.pl, to run the test program with valgrind.
    
    Specifically this option prepends valgrind --error-exitcode=124
    to the command line, so that git bisect run will treat this revision as a
    failure if valgrind finds any problems.

M	Porting/bisect-runner.pl

commit e8cd81c75402b67dbde2f5ac8a7350e003848c57
Author: Nicholas Clark <nick@ccl4.org>
Date:   Fri Apr 13 16:00:49 2012 +0200

    bisect-runner.pl will now invoke with ./perl -Ilib if it sees a #!./perl line
    
    If the first argument of the test case given to bisect-runner.pl is a readable
    file with a #! line of ./perl or ./miniperl (only), bisect-runner.pl with
    prepend ./perl -Ilib or ./miniperl -Ilib to the command sent to system.
    This increases flexibility somewhat, and will avoid problems with
    inconsistencies between directly running system(...), and running
    system('valgrind', ...). The former accepts a #!./perl line, the latter sends
    it to /bin/sh.

M	Porting/bisect-runner.pl

commit 2d38ce2e96644d2c7b9ab830ae52f24d7ef0303f
Author: Nicholas Clark <nick@ccl4.org>
Date:   Thu Apr 12 21:50:11 2012 +0200

    bisect-runner.pl should fix Makefile.SH to remove remove GNU make-isms.
    
    Commit c7b956bbbaff0c46 inadvertently added a GNU (and BSD) make specific
    construction to the *nix Makefile, which other platforms' makes choke on.
    It was corrected with commit cfe76a0a8e5b6f21 (and 0961731461727bea), but
    those changes are not the simplest way to get things passing again, so use
    a simpler custom patch here.

M	Porting/bisect-runner.pl

commit ee493b0372c3aabac6586db468b531472c946656
Author: Nicholas Clark <nick@ccl4.org>
Date:   Mon Apr 9 15:14:32 2012 +0200

    Add --early-fixup and --late-fixup to bisect.pl, for user-controlled patching.
    
    These provide a way to run code or to conditionally or unconditionally
    apply patches for each revision tested during git bisect. This is very
    useful when for the commit range, operating system and configuration options
    tested, the behaviour otherwise would be to fail to build for a wide range
    of revisions, and hence the bisect would finish without finding culprit
    commit due to getting bogged down in 'skipped' revisions.

M	Porting/bisect-runner.pl

commit 3bc1a708c78132866a8ef00db2003116843e954c
Author: Nicholas Clark <nick@ccl4.org>
Date:   Mon Apr 9 11:04:37 2012 +0200

    Add --all-fixups to bisect.pl, to apply all patches and fixups.
    
    bisect-runner.pl will minimally patch various files on a platform and
    version dependent basis to get the build to complete. Normally it defers
    doing this as long as possible - .SH files aren't patched until after
    Configure is run, and C and XS code isn't patched until after miniperl is
    built. If --all-fixups is specified, all the fixups are done before running
    Configure.

M	Porting/bisect-runner.pl

commit ba0ccb1a73310ad48759dd8981c2fcf70352296d
Author: Nicholas Clark <nick@ccl4.org>
Date:   Mon Apr 9 10:18:34 2012 +0200

    bisect-runner.pl should always exit fatally with 255, to abort the bisect.
    
    Don't use die or croak, as these will exit with the value of $! or $? instead
    of 255, and git bisect doesn't treat these as fatal errors, but ploughs on
    before inevitably failing messily for some other reason, concealing the true
    error message.

M	Porting/bisect-runner.pl

commit f98929dbe4e37a2fcc90d52ce40736fc4b830517
Author: Nicholas Clark <nick@ccl4.org>
Date:   Mon Apr 9 11:31:25 2012 +0200

    In bisect-runner.pl, refactor the system ... and die; into system_or_die().

M	Porting/bisect-runner.pl

commit 5225a0c2a440e6e39ac792574dbcb3b645a9d32b
Author: Nicholas Clark <nick@ccl4.org>
Date:   Mon Apr 9 09:25:09 2012 +0200

    When testing the end version, bisect.pl should treat a 'skip' as fatal.
    
    git bisect uses exit code 125 to signal a skip. Previously bisect.pl would
    treat 125 just like every other non-zero exit code, assume that it meant
    'fail', and if 'fail' was expected for the end version then it would start
    the bisect run as normal. Which isn't useful, as it means that there's a
    problem with the user's test case.

M	Porting/bisect.pl

commit 4757639e9943d8c19ca26ed901e1dc17c36b01d4
Author: Nicholas Clark <nick@ccl4.org>
Date:   Mon Apr 9 09:14:21 2012 +0200

    bisect-runner.pl should search for lib*.a as well as lib*.so
    
    When forcing the library list on earlier perls to avoid versioned shared
    objects, also look for static libraries. Also, ensure bisect-runner.pl
    searches additional library paths given to it via -Alibpth
    
    Without this, one can't test build against static libraries in non-standard
    locations.

M	Porting/bisect-runner.pl

commit 2679475b85e7b69787168d2e04b4de71282bc370
Author: Nicholas Clark <nick@ccl4.org>
Date:   Mon Apr 9 08:38:08 2012 +0200

    bisect-runner.pl should use ".$Config{dlext}" instead of hard-coding ".so".

M	Porting/bisect-runner.pl

commit 80cf1b4fca04babbe94fd99a6e64528791ea1f14
Author: Nicholas Clark <nick@ccl4.org>
Date:   Mon Apr 9 08:05:16 2012 +0200

    Teach bisect-runner.pl that on HP-UX, _filbuf() is named __filbuf().
    
    This is all that is needed to build 5.003 and earlier. bisect.pl can validate
    all stable versions from blead back to 5.002

M	Porting/bisect-runner.pl

commit 1c80bb0b4bbd20d867945c4befab865da59b9ec5
Author: Nicholas Clark <nick@ccl4.org>
Date:   Mon Apr 9 08:02:38 2012 +0200

    bisect-runner.pl needs to know how to identify HP-UX's patch.
    
    Unlike AIX, HP-UX patch offers no meaningful clue as to its upstream version:
    
    $ patch -v
    $Header: patch.c,v 76.1.1.2.1.3 2001/12/03 12:24:52 abhinav Exp $
    Patch level: 0
    
    But it ignores unified diffs, so assume the worst and feed it context diffs.

M	Porting/bisect-runner.pl

commit ec981aa4fafaf5caa2e19a56316a15be6fd3ebd3
Author: Nicholas Clark <nick@ccl4.org>
Date:   Tue Apr 10 15:18:03 2012 +0200

    On HP-UX, bisect without any -j option as the system make is "special".
    
    HP-UX system make offers parallelism with -P not -j. (But doesn't deliver on
    it, so we're not going to attempt to work round its crankiness and failings.)

M	Porting/bisect-runner.pl
M	Porting/bisect.pl

commit d262a758f620c6e1752d3369ccaf2375dc101260
Author: Nicholas Clark <nick@ccl4.org>
Date:   Tue Apr 10 10:37:41 2012 +0200

    In bisect{,-runner}.pl, refactor the code for CPU probing and make jobs.
    
    Move the code that attempts various ways to probe for the number of CPUs
    from bisect-runner.pl to bisect.pl. Skip the probe entirely if a -j (--jobs)
    options is passed to bisect.pl. For --jobs=0 (or -j0) entirely skip adding
    -j to the make command line. (For heretical versions of make which don't use
    -j for parallelism).
    
    Previously the probe code always ran for each call to bisect-runner.pl,
    which is completely redundant if bisect-runner.pl is being called for
    argument validation or help text, and inefficient even when building, as the
    number of CPUs rarely changes during a bisect run. Additionally there was no
    way to avoid a -j in the make command line, which isn't going to fly on
    systems where the make utility doesn't have a -j option.

M	Porting/bisect-runner.pl
M	Porting/bisect.pl
-----------------------------------------------------------------------

--
Perl5 Master Repository


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic