[Perl/perl5] 77897c: Remove customizations for Compress::Raw::* in core

2023-07-18 Thread James E Keenan via perl5-changes
  Branch: refs/heads/jkeenan/compress-raw-remove-customizations-20230718
  Home:   https://github.com/Perl/perl5
  Commit: 77897c5f031387ac17c97eae84229562d2078026
  
https://github.com/Perl/perl5/commit/77897c5f031387ac17c97eae84229562d2078026
  Author: James E Keenan 
  Date:   2023-07-18 (Tue, 18 Jul 2023)

  Changed paths:
M Porting/Maintainers.pl

  Log Message:
  ---
  Remove customizations for Compress::Raw::* in core

Compress::Raw::Bzip2: https://github.com/Perl/perl5/issues/21262

Compress::Raw::Zlib:  https://github.com/Perl/perl5/issues/21263




[Perl/perl5] caef5a: .lgtm.yml: Delete obsolete file

2023-07-18 Thread Elvin Aslanov via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: caef5a7dffddb63ccd397171f834d8f5122356ee
  
https://github.com/Perl/perl5/commit/caef5a7dffddb63ccd397171f834d8f5122356ee
  Author: Elvin Aslanov 
  Date:   2023-07-18 (Tue, 18 Jul 2023)

  Changed paths:
R .lgtm.yml
M MANIFEST

  Log Message:
  ---
  .lgtm.yml: Delete obsolete file

Fixes #21252




[Perl/perl5]

2023-07-18 Thread Yves Orton via perl5-changes
  Branch: refs/heads/yves/fix_universal_import_fragility
  Home:   https://github.com/Perl/perl5


[Perl/perl5] 2dcf3c: Fix assorted bugs related to not having a UNIVERSA...

2023-07-18 Thread Yves Orton via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 2dcf3cf50d7cb67422ffe2c2a3e2d3dc404ea6c4
  
https://github.com/Perl/perl5/commit/2dcf3cf50d7cb67422ffe2c2a3e2d3dc404ea6c4
  Author: Yves Orton 
  Date:   2023-07-18 (Tue, 18 Jul 2023)

  Changed paths:
M gv.c
M lib/UNIVERSAL.pm
M pod/perldiag.pod
M t/op/universal.t
M universal.c

  Log Message:
  ---
  Fix assorted bugs related to not having a UNIVERSAL::import

Since perl 5.0 the methods "import" and "unimport" have been
special cased in gv.c (unimport was removed for a while) to
not produce errors if they are called. This is partly
because

use Foo;

is defined to be

BEGIN {
require Foo;
Foo->import();
}

which would blow up if there is no import function defined in
Foo, for instance if it were defining a class and not a package
which exports modules.

This special case can be broken by simple code like

\::isa

which will create a stub function which then blows up when it is
used. Notably the module "autouse" which is shipped with perl will
trigger this behavior.

A related issue is that if you ask for a function to be exported
from a module that does not have support for exporting there is no
error, eg:

use File::Spec qw(catfile);

will silently succeed without exporting a catfile function. This is
exacerbated on case insensitive file systems when the module name
is case-mismatched, the use succeeds but the export does not, leading
to confusion, eg:

use LIst::Util qw(sum); # note the typo!

will load List::Util but will not export the sum function.

This patch defines UNIVERSAL::import() and UNIVERSAL::unimport()
functions. This prevents the "reference to \::import" bug.
The function is defined to be a no-op unless arguments are passed into
the functions, in which case a warning is thrown indicating
that there is likely a problem. The error is modelled after the
error produced by calling a non-existent method or function:

./perl -Ilib -le'BEGIN{ my $import_sub= \::import;}
use File::Spec qw(catfile);'
Attempt to call UNIVERSAL::import() with arguments via package File::Spec
(Perhaps you forgot to load "File::Spec"?) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

This fixes Issue #19416, Issue #19417, Issue #19418. See also Issue #19410 for
discussion, however this patch does not fix that case (it may not be
fixable.)




[Perl/perl5] 7c1600: testsuite.yml: manually download and extract mingw

2023-07-18 Thread xenu via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 7c1600f08167a99af2b98ebb9b3230080a59d563
  
https://github.com/Perl/perl5/commit/7c1600f08167a99af2b98ebb9b3230080a59d563
  Author: Tomasz Konojacki 
  Date:   2023-07-18 (Tue, 18 Jul 2023)

  Changed paths:
M .github/workflows/testsuite.yml

  Log Message:
  ---
  testsuite.yml: manually download and extract mingw

This is much faster than the "setup-mingw" GitHub action (~1 min vs
~6min). It's also more flexible, we can easily switch to a different
mingw build.




[Perl/perl5] 5ca0b4: Fix assorted bugs related to not having a UNIVERSA...

2023-07-18 Thread Yves Orton via perl5-changes
  Branch: refs/heads/yves/fix_universal_import_fragility
  Home:   https://github.com/Perl/perl5
  Commit: 5ca0b4b539d7ce9ed9977a03d85e5fac33809f9e
  
https://github.com/Perl/perl5/commit/5ca0b4b539d7ce9ed9977a03d85e5fac33809f9e
  Author: Yves Orton 
  Date:   2023-07-18 (Tue, 18 Jul 2023)

  Changed paths:
M gv.c
M lib/UNIVERSAL.pm
M pod/perldiag.pod
M t/op/universal.t
M universal.c

  Log Message:
  ---
  Fix assorted bugs related to not having a UNIVERSAL::import

Since perl 5.0 the methods "import" and "unimport" have been
special cased in gv.c (unimport was removed for a while) to
not produce errors if they are called. This is partly
because

use Foo;

is defined to be

BEGIN {
require Foo;
Foo->import();
}

which would blow up if there is no import function defined in
Foo, for instance if it were defining a class and not a package
which exports modules.

This special case can be broken by simple code like

\::isa

which will create a stub function which then blows up when it is
used. Notably the module "autouse" which is shipped with perl will
trigger this behavior.

A related issue is that if you ask for a function to be exported
from a module that does not have support for exporting there is no
error, eg:

use File::Spec qw(catfile);

will silently succeed without exporting a catfile function. This is
exacerbated on case insensitive file systems when the module name
is case-mismatched, the use succeeds but the export does not, leading
to confusion, eg:

use LIst::Util qw(sum); # note the typo!

will load List::Util but will not export the sum function.

This patch defines UNIVERSAL::import() and UNIVERSAL::unimport()
functions. This prevents the "reference to \::import" bug.
The function is defined to be a no-op unless arguments are passed into
the functions, in which case a warning is thrown indicating
that there is likely a problem. The error is modelled after the
error produced by calling a non-existent method or function:

./perl -Ilib -le'BEGIN{ my $import_sub= \::import;}
use File::Spec qw(catfile);'
Attempt to call UNIVERSAL::import() with arguments via package File::Spec
(Perhaps you forgot to load "File::Spec"?) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

This fixes Issue #19416, Issue #19417, Issue #19418. See also Issue #19410 for
discussion, however this patch does not fix that case (it may not be
fixable.)




[Perl/perl5] 788dc9: Fix assorted bugs related to not having a UNIVERSA...

2023-07-18 Thread Yves Orton via perl5-changes
  Branch: refs/heads/yves/fix_universal_import_fragility
  Home:   https://github.com/Perl/perl5
  Commit: 788dc931519a1f7906e0839d087559bcdf843c18
  
https://github.com/Perl/perl5/commit/788dc931519a1f7906e0839d087559bcdf843c18
  Author: Yves Orton 
  Date:   2023-07-18 (Tue, 18 Jul 2023)

  Changed paths:
M gv.c
M lib/UNIVERSAL.pm
M pod/perldiag.pod
M t/op/universal.t
M universal.c

  Log Message:
  ---
  Fix assorted bugs related to not having a UNIVERSAL::import

Since perl 5.0 the methods "import" and "unimport" have been
special cased in gv.c (unimport was removed for a while) to
not produce errors if they are called. This is partly
because

use Foo;

is defined to be

BEGIN {
require Foo;
Foo->import();
}

which would blow up if there is no import function defined in
Foo, for instance if it were defining a class and not a package
which exports modules.

This special case can be broken by simple code like

\::isa

which will create a stub function which then blows up when it is
used. Notably the module "autouse" which is shipped with perl will
trigger this behavior.

A related issue is that if you ask for a function to be exported
from a module that does not have support for exporting there is no
error, eg:

use File::Spec qw(catfile);

will silently succeed without exporting a catfile function. This is
exacerbated on case insensitive file systems when the module name
is case-mismatched, the use succeeds but the export does not, leading
to confusion, eg:

use LIst::Util qw(sum); # note the typo!

will load List::Util but will not export the sum function.

This patch defines UNIVERSAL::import() and UNIVERSAL::unimport()
functions. This prevents the "reference to \::import" bug.
The function is defined to be a no-op unless arguments are passed into
the functions, in which case a warning is thrown indicating
that there is likely a problem. The error is modelled after the
error produced by calling a non-existent method or function:

./perl -Ilib -le'BEGIN{ my $import_sub= \::import;}
use File::Spec qw(catfile);'
Attempt to call UNIVERSAL::import() with arguments via package File::Spec
(Perhaps you forgot to load "File::Spec"?) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

This fixes Issue #19416, Issue #19417, Issue #19418. See also Issue #19410 for
discussion, however this patch does not fix that case (it may not be
fixable.)




[Perl/perl5]

2023-07-18 Thread Yves Orton via perl5-changes
  Branch: refs/heads/yves/headerparse_friendly_version_check
  Home:   https://github.com/Perl/perl5


[Perl/perl5] 1f7cfa: t/porting/podcheck.t - some verbatim text is copie...

2023-07-18 Thread Yves Orton via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 1f7cfaefd6cb9cabbdc4ffcb8e1de9ecc291792a
  
https://github.com/Perl/perl5/commit/1f7cfaefd6cb9cabbdc4ffcb8e1de9ecc291792a
  Author: Yves Orton 
  Date:   2023-07-18 (Tue, 18 Jul 2023)

  Changed paths:
M t/porting/podcheck.t

  Log Message:
  ---
  t/porting/podcheck.t - some verbatim text is copied from the source

So we should check if it is still in sync with the source, and ignore
any line length issues as the source needs to be changed, not the copy.

To enable this simply put "file source: FILENAME" or
"copied from: FILENAME" in the first line of the verbatim text.


  Commit: a6d10131eee6ee336e4bd63f22a378e9d5ae40bd
  
https://github.com/Perl/perl5/commit/a6d10131eee6ee336e4bd63f22a378e9d5ae40bd
  Author: Yves Orton 
  Date:   2023-07-18 (Tue, 18 Jul 2023)

  Changed paths:
M pod/perlreapi.pod
M regexp.h

  Log Message:
  ---
  regexp.h/perlreapi.pod - synchronize struct regexp documentation with source

and update the individual struct members documentation accordingly,
some time ago this structure was synchonize with the SV structure,
so some members that used to be documented are now actually macros.

This also includes a couple of field reordering to make the struct
easier to understand and also to cluster the 32 bit fields together
so that the structure is a minimal size.

Thanks to Tony C for noticing this and calling it to my attention.


Compare: https://github.com/Perl/perl5/compare/7465f862296e...a6d10131eee6