NAME
    Perl5::Build::Warnings - Parse make output for build-time warnings

SYNOPSIS
        use Perl5::Build::Warnings;

        my $self = Perl5::Build::Warnings->new( { file => '/path/to/make.log' } );

        my $hashref = $self->get_warnings_groups;

        my $arrayref = $self->get_warnings;

        $self->report_warnings_groups;

        $arrayref = $self->get_warnings_for_group('Wunused-variable');

        $arrayref = $self->get_warnings_for_source('op.c');

DESCRIPTION
    Perl5::Build::Warnings is a module for use in studying build-time
    warnings emitted by make when building the Perl 5 core distribution from
    source code.

  Prerequisites
    CPAN module Capture::Tiny is used in this library's test suite, but not
    in the module itself. There are currently no other prerequisites not
    found in the Perl 5 core distribution.

  Assumptions
   Logging of make Output
    The module assumes that the user has logged the output of make (or make
    test_prep -- but not make test -- or Windows equivalents) to a
    plain-text file. Something like:

        make test_prep 2>&1 > /path/to/make.log

    The build log may be gzipped-compressed, *e.g.:*

        make test_prep 2>&1 | gzip -c > /path/to/make.log.gz

   Format for Build-Time Warnings
    The module assumes that within such a logfile, warnings are recorded in
    this format:

        op.c:5468:34: warning: argument ‘o’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]

    That is,

        <filename>:<line_number>:<character_number>: warning: <warning_description> [-<Wwarning_class>]

    Note that the first field recorded, "filename" may be either the
    basename of a file in the top-level of the source code or a relative
    path to a file beneath the top-level.

    Note further that the last field recorded, the class of warning, starts
    with an open bracket ("["), followed by a hyphen and an upper-case 'W'
    ("-W"), followed by the warning class, followed by a close bracket
    ("]"). In this module we will ignore the open and close brackets and the
    hyphen, but we will capture and report the upper-case 'W'. Hence,
    whereas the log will record

        [-Wclobbered]

    ... this module will store and report that information as:

        Wclobbered

    This is done in part because we may wish to use this data on the
    command-line and the hyphen is likely to be significant to the shell.

   Complete Documentation
    After installation, read the complete documentation via:

        perldoc Perl5::Build::Warnings

INSTALLATION
    To install:

        perl Makefile.PL
        make
        make test
        make install

    If you are on a windows box you should use 'nmake' rather than 'make'.

