NAME
identify-build-transitions - Identify crucial changes in build-time output
USAGE
C-level build-time errors
identify-build-transitions \
--compiler=clang \
--gitdir="$GIT_WORKDIR/perl2" \
--branch=squash-multibisect-probe-errors-retain-20210827 \
--first=2623ca3c173506cabaa0bad66c0e8ed775985f19 \
--last=17053877bc526a49bfb8d3974b2ca7528c151b3e \
--configure_command='sh ./Configure -des -Dusedevel -Dcc=clang -Accflags=-DPERL_GLOBAL_STRUCT 1>/dev/null 2>&1' \
--probe=error \
--verbose
C-level build-time warnings
identify-build-transitions \
--compiler=clang \
--gitdir="$GIT_WORKDIR/perl2" \
--branch=blead \
--first=b38ce61ef5b98631f9924bea9364ec344b9a8d10 \
--last=bec292a9fa46f45c0e524b673451cf5292e5d35b \
--configure_command='sh ./Configure -des -Dusedevel -Dcc=clang 1>/dev/null 2>&1' \
--probe=warning \
--verbose
Any changes in build-time STDERR output
identify-build-transitions \
--compiler=clang \
--gitdir="$GIT_WORKDIR/perl2" \
--branch=blead \
--first=d4bf6b07402c770d61a5f8692f24fe944655d99f \
--last=9be343bf32d0921e5c792cbaa2b0038f43c6e463 \
--configure_command='sh ./Configure -des -Dusedevel 1>/dev/null 2>&1' \
--probe=stderr \
--verbose
SAMPLE OUTPUT
C-level build-time errors
$ cat /tmp/Ayxrn84UJP/transitions.clang.pl
{
newest => {
file => "/tmp/Ayxrn84UJP/1705387.make.errors.rpt.txt",
idx => 7,
md5_hex => "fdce7ff2f07a0a8cd64005857f4060d4",
},
oldest => {
file => "/tmp/Ayxrn84UJP/2623ca3.make.errors.rpt.txt",
idx => 0,
md5_hex => "d41d8cd98f00b204e9800998ecf8427e",
},
transitions => [
{
newer => {
file => "/tmp/Ayxrn84UJP/bcbe40e.make.errors.rpt.txt",
idx => 2,
md5_hex => "9d854980ad688c673a3c19635e72ab86",
},
older => {
file => "/tmp/Ayxrn84UJP/8ecdd39.make.errors.rpt.txt",
idx => 1,
md5_hex => "d41d8cd98f00b204e9800998ecf8427e",
},
},
{
newer => {
file => "/tmp/Ayxrn84UJP/951ae19.make.errors.rpt.txt",
idx => 5,
md5_hex => "fdce7ff2f07a0a8cd64005857f4060d4",
},
older => {
file => "/tmp/Ayxrn84UJP/273c84e.make.errors.rpt.txt",
idx => 4,
md5_hex => "9d854980ad688c673a3c19635e72ab86",
},
},
],
}
$ diff -w /tmp/Ayxrn84UJP/8ecdd39.make.errors.rpt.txt /tmp/Ayxrn84UJP/bcbe40e.make.errors.rpt.txt
0a1,19
> op.c:_:_: error: use of undeclared identifier 'my_vars'
> if (o->op_ppaddr != PL_ppaddr[OP_SASSIGN])
> ^
> --
> op.c:_:_: error: use of undeclared identifier 'my_vars'
> if (topop->op_ppaddr != PL_ppaddr[OP_STRINGIFY])
> ^
> --
> op.c:_:_: error: use of undeclared identifier 'my_vars'
> if (topop->op_ppaddr != PL_ppaddr[OP_SPRINTF])
> ^
> --
> op.c:_:_: error: use of undeclared identifier 'my_vars'
> if (topop->op_ppaddr != PL_ppaddr[OP_CONCAT])
> ^
> --
> op.c:_:_: error: use of undeclared identifier 'my_vars'
> o->op_ppaddr = PL_ppaddr[OP_MULTICONCAT];
> ^
$ diff -w /tmp/Ayxrn84UJP/273c84e.make.errors.rpt.txt /tmp/Ayxrn84UJP/951ae19.make.errors.rpt.txt
19a20,23
> --
> op.c:_:_: error: use of undeclared identifier 'my_vars'
> OpTYPE_set(condop, OP_ONCE);
> ^
C-level build-time warnings
$ cat /tmp/kNIEYodA1z/transitions.clang.pl
{
newest => {
file => "/tmp/kNIEYodA1z/bec292a.make.warnings.rpt.txt",
idx => 4,
md5_hex => "0d3037d6d7e3e89cf092e6eabf72f564",
},
oldest => {
file => "/tmp/kNIEYodA1z/b38ce61.make.warnings.rpt.txt",
idx => 0,
md5_hex => "dd06dffb30258ca89400a68366c7ddbc",
},
transitions => [
{
newer => {
file => "/tmp/kNIEYodA1z/ea4caf5.make.warnings.rpt.txt",
idx => 2,
md5_hex => "0d3037d6d7e3e89cf092e6eabf72f564",
},
older => {
file => "/tmp/kNIEYodA1z/102356a.make.warnings.rpt.txt",
idx => 1,
md5_hex => "dd06dffb30258ca89400a68366c7ddbc",
},
},
],
}
$ diff -w /tmp/kNIEYodA1z/102356a.make.warnings.rpt.txt /tmp/kNIEYodA1z/ea4caf5.make.warnings.rpt.txt
7a8
> Call.xs:_:_: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [Wsign-compare]
Any changes in build-time STDERR output
$ cat /tmp/fxFRNZNDGg/transitions.clang.pl
{
newest => {
file => "/tmp/fxFRNZNDGg/9be343b.make.stderr.txt",
idx => 6,
md5_hex => "ab1929f5430d268610ff294fec259011",
},
oldest => {
file => "/tmp/fxFRNZNDGg/d4bf6b0.make.stderr.txt",
idx => 0,
md5_hex => "d65999a7b3ba5c8a149c89e0e8c52405",
},
transitions => [
{
newer => {
file => "/tmp/fxFRNZNDGg/22f363f.make.stderr.txt",
idx => 3,
md5_hex => "ab1929f5430d268610ff294fec259011",
},
older => {
file => "/tmp/fxFRNZNDGg/22afef8.make.stderr.txt",
idx => 2,
md5_hex => "d65999a7b3ba5c8a149c89e0e8c52405",
},
},
],
}
$ diff -w /tmp/fxFRNZNDGg/22afef8.make.stderr.txt /tmp/fxFRNZNDGg/22f363f.make.stderr.txt
0a1
> embed.fnc entry overrides redundant information in 'Am|STRLEN|isUTF8_CHAR_flags|const U8 *s|const U8 *e| const U32 flags' in inline.h at autodoc.pl line 494, <F> line 2172.