[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