Devel-Git-MultiBisect
view release on metacpan or search on metacpan
xt/warnings-transitions.pl view on Meta::CPAN
appeared.
=head1 USAGE
Call this program with command-line switches. At the present time there are 4
command-line switches whose values the user must provide, as there are no
defaults. There is 1 command-line switch which is recommended and for which a
value must be provided. There are currently 4 other command-line switches for
which defaults are provided. All switches are called in "long option" style,
I<i.e.> starting with two hyphens (C<-->).
=head2 Required Command-Line Switches
=over 4
=item * C<--git_checkout_dir>
Full path to a directory holding a F<git> checkout of the Perl 5 core
distribution.
=item * C<--workdir>
Full path to a directory where files created in the course of running the
program will be deposited.
=item * C<--first>
Full (40 character) SHA of the first (chronologically earliest) F<git> commit
to the Perl 5 repository to be tested during bisection.
=item * C<--last>
Full (40 character) SHA of the last (chronologically latest) F<git> commit to
the Perl 5 repository to be tested during bisection.
=back
=head2 Recommended Command-Line Switch
=over 4
=item * C<--pattern_sought>
String holding the build-time (F<make>) warning whose first appearance you are trying to ascertain,
subject to these modifications:
=item *
Substitute one underscore character (C<_>) for the line number
(vertical) and character number (horizontal).
=item *
Remove the hyphen (C<->) between the open bracket (C<\[>) and the upper-case
'W' (C<W>) in the warnings category.
=back
Hence, a warning which appears in captured F<make> output like this:
Opcode.xs: In function âXS_Opcode_invert_opsetâ:
Opcode.xs:363:25: warning: overflow in implicit constant conversion [-Woverflow]
bitmap[opset_len-1] &= ~(0xFF << (PL_maxo & 0x07));
^
... will be called on the command-line like this:
--pattern_sought="Opcode.xs:_:_: warning: overflow in implicit constant conversion [Woverflow]"
If this switch is called, a value must be provided. But if the switch is not
called, the program will simply avoid running the code which uses the value.
Note: If the pattern contains any single-quote mark (C<'>) or similar
characters, you are probably better off double-quoting the pattern on the
command line (as above).
=head2 Optional Command-Line Switches
=over 4
=item * C<compiler>
Compiler (and possibly compiler version) which is generating the warning.
The warning pattern is currently observed in various versions of F<gcc>,
F<g++> and F<clang>. Defaults to C<gcc>. Note that if your default version
of F<gcc> is C<7> but you wish to track a warning generated by a different
version of F<gcc>, you would call something like C<gcc-8> (on Linux) or
C<gcc8> on FreeBSD.
--compiler='gcc-8'
Needless to say, you must have these alternate compiler versions installed.
=item * C<branch>
Branch of the Perl 5 core distribution you are testing for the warning.
Defaults to C<blead>.
--branch=blead
=item * C<configure_command>
String holding the invocation of F<./Configure> used in builds where the warning's first appearance is being explored. Defaults to:
--configure_command='sh ./Configure -des -Dusedevel -Dcc=gcc 1>/dev/null 2>&1'
=item * C<make_command>
String holding the invocation of F<make> used in the builds under investigation. Defaults to:
--make_command='make -j${TEST_JOBS} 1>/dev/null'
=back
=head1 PREREQUISITES
Once you have installed the Devel-Git-MultiBisect distribution from CPAN, the
only non-core distribution you need is Data-Dump.
=head1 OUTPUTS
Like all programs using L<Devel::Git::MultiBisect::BuildTransistions>, the
program prints a log to STDOUT of each commit tested. In the course of
( run in 1.055 second using v1.01-cache-2.11-cpan-71847e10f99 )