Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 31c1232f325a418a3a80b300159de72558bf77e9
      
https://github.com/Perl/perl5/commit/31c1232f325a418a3a80b300159de72558bf77e9
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-07-26 (Wed, 26 Jul 2023)

  Changed paths:
    M autodoc.pl

  Log Message:
  -----------
  autodoc.pl - dont warn about structs in type definitions

silences:
    'struct regexp' not \w+ in 'Ayh||struct regexp'
        in pod/perlreapi.pod at autodoc.pl line 536, <F> line 623.


  Commit: 728e7a9b28e3c8622c5ef8fb94edccc2bbd5a923
      
https://github.com/Perl/perl5/commit/728e7a9b28e3c8622c5ef8fb94edccc2bbd5a923
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-07-26 (Wed, 26 Jul 2023)

  Changed paths:
    M pod/perldiag.pod

  Log Message:
  -----------
  perldiag.pod - add missing diagnostic


  Commit: f819ca6122430898bad706d35a2920b4ad41e0dd
      
https://github.com/Perl/perl5/commit/f819ca6122430898bad706d35a2920b4ad41e0dd
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-07-26 (Wed, 26 Jul 2023)

  Changed paths:
    M pod/perldiag.pod

  Log Message:
  -----------
  perldiag.pod - change the (W deprecated..) warnings to the correct D.


  Commit: 6b332fef2f502c8e368575067efedfde7f53576f
      
https://github.com/Perl/perl5/commit/6b332fef2f502c8e368575067efedfde7f53576f
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-07-26 (Wed, 26 Jul 2023)

  Changed paths:
    M pod/perldiag.pod

  Log Message:
  -----------
  perldiag.pod - when the class is UNIVERSAL it is an error to call import.

This message from an earlier commit was not picked up by diag.t
and was overlooked.


  Commit: 71bdb3db94c59836f25abac44cc7008ce558f0a0
      
https://github.com/Perl/perl5/commit/71bdb3db94c59836f25abac44cc7008ce558f0a0
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-07-26 (Wed, 26 Jul 2023)

  Changed paths:
    M universal.c

  Log Message:
  -----------
  universal.c - skip some very old undocumented errors.


  Commit: 8f9f2c7db0a5c20a7f0ab4d3c0417942771ad1fb
      
https://github.com/Perl/perl5/commit/8f9f2c7db0a5c20a7f0ab4d3c0417942771ad1fb
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-07-26 (Wed, 26 Jul 2023)

  Changed paths:
    M t/porting/diag.t

  Log Message:
  -----------
  diag.t - process diagnostics in XS in universal.c

We have to explicitly opt files in for XS processing.


  Commit: eb1de92b20264e25681a6ab839d0ed0b86a513cf
      
https://github.com/Perl/perl5/commit/eb1de92b20264e25681a6ab839d0ed0b86a513cf
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-07-26 (Wed, 26 Jul 2023)

  Changed paths:
    M t/porting/diag.t

  Log Message:
  -----------
  porting/diag.t - make sure deprecations are marked D

Also provide some helpful advice if someone accidentally uses
severity 'W' instead of 'D'. (Warning vs Deprecated implies
a warning that is default off, and a warning that is default
on.)

The errors produced by the category checking logic are not
very friendly, and it is easy to misunderstand why they are
failing if you use 'W' instead of 'D'. In previous code
we explicitly allowed W when it should have been forbidden.
diag.t logic is fairly cryptic and its not always clear
what is going on.


  Commit: f1cf82e77b0865c6a2f3a6cb94f074196dbc6df2
      
https://github.com/Perl/perl5/commit/f1cf82e77b0865c6a2f3a6cb94f074196dbc6df2
  Author: Yves Orton <demer...@gmail.com>
  Date:   2023-07-26 (Wed, 26 Jul 2023)

  Changed paths:
    M lib/warnings.pm
    M pod/perldeprecation.pod
    M pod/perldiag.pod
    M regen/warnings.pl
    M t/op/universal.t
    M universal.c
    M warnings.h

  Log Message:
  -----------
  universal.c - change import with args error to be a deprecated warning

We have had a LOT of fallout from 2dcf3cf50d7 as it turns out that
there various common cases of people accidentally exploiting the
silent use of missing import with arguments.  The premise of detecting
this was that it would allow us to detect scenarios where users
on a case-insensitive file-system had a typo. But it turns that there
are a lot of accidental cases of this as well, a lot more than we
expected.

Common mistaken cases are:

    * Via use_ok() where people think the second argument is a test
      name instead of an argument to the import of the module being
      used.

    * Using a quoted version number in a version check instead of a true
      number. IE:

        use Foo '1.234';

      gets passed to Foo->import() and not Foo->VERSION(). This is
      compounded by the fact that Exporter->import() *does* support a
      version check via import(). Arguably if we allow string versions
      (IMO we should) then we should deal with this in the parser, not
      in import() (although the latter is a little more debatable IMO).

    * Explicit calls to import() with a version number.

    * Mistakenly requesting an export from a module that doesn't
      actually export anything. One possible explanation for this case
      is that a module was at one point in its lifetime not a class, but
      then was later on turned into a class and the arguments to use
      statements weren't changed even though the main code was
      changed to use class syntax.

Because of the scope of the breakage of the original error this patch
downgrades the error to a depecation warning instead, with the intention
that in 5.44 we will make it a hard error.


Compare: https://github.com/Perl/perl5/compare/12327087bbec...f1cf82e77b08

Reply via email to