[Perl/perl5]

2022-08-02 Thread Tony Cook via perl5-changes
  Branch: refs/heads/19888-dist-ci-testing
  Home:   https://github.com/Perl/perl5


[Perl/perl5] 070c46: reduce noise while testing the dist/ CI code

2022-08-02 Thread Tony Cook via perl5-changes
  Branch: refs/heads/19888-dist-ci-testing
  Home:   https://github.com/Perl/perl5
  Commit: 070c4688b192b07ab966d261d8aad38afb3cc4b7
  
https://github.com/Perl/perl5/commit/070c4688b192b07ab966d261d8aad38afb3cc4b7
  Author: Tony Cook 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

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

  Log Message:
  ---
  reduce noise while testing the dist/ CI code

This will be reverted and the reversion squashed later


  Commit: 6e74896e84541f9ae9e7831d2b7c66126cb6c635
  
https://github.com/Perl/perl5/commit/6e74896e84541f9ae9e7831d2b7c66126cb6c635
  Author: Tony Cook 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
A .github/workflows/dist.yaml
A Porting/test-dist-modules.pl

  Log Message:
  ---
  initial attempt for Devel-PPPort


  Commit: 253edc7c0900f9b2a96f469f1958f46acc8469e5
  
https://github.com/Perl/perl5/commit/253edc7c0900f9b2a96f469f1958f46acc8469e5
  Author: Tony Cook 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M Porting/test-dist-modules.pl

  Log Message:
  ---
  fix typo


  Commit: 3ec9cfbb78f1ba11a8407f66cee4c0ea48a6b42c
  
https://github.com/Perl/perl5/commit/3ec9cfbb78f1ba11a8407f66cee4c0ea48a6b42c
  Author: Tony Cook 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M .github/workflows/dist.yaml

  Log Message:
  ---
  test only a subset of perl versions fo save time for now

we might only test a subset if this is merged too


  Commit: baf1cc080223345b617e0cd7a660598d8acdd2f3
  
https://github.com/Perl/perl5/commit/baf1cc080223345b617e0cd7a660598d8acdd2f3
  Author: Tony Cook 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M Porting/test-dist-modules.pl

  Log Message:
  ---
  see why files missing


  Commit: f8fd5346e6907c6a48261ebad663056e048c50f2
  
https://github.com/Perl/perl5/commit/f8fd5346e6907c6a48261ebad663056e048c50f2
  Author: Tony Cook 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M Porting/test-dist-modules.pl

  Log Message:
  ---
  more debug


  Commit: f71763e57cd6ecbbac7b61846549c602b605656f
  
https://github.com/Perl/perl5/commit/f71763e57cd6ecbbac7b61846549c602b605656f
  Author: Tony Cook 
  Date:   2022-08-03 (Wed, 03 Aug 2022)

  Changed paths:
M Porting/test-dist-modules.pl

  Log Message:
  ---
  test the rest (which will fail for now)


  Commit: a7b8c9a57b37d20ddb216b796b615992f5fcac59
  
https://github.com/Perl/perl5/commit/a7b8c9a57b37d20ddb216b796b615992f5fcac59
  Author: Tony Cook 
  Date:   2022-08-03 (Wed, 03 Aug 2022)

  Changed paths:
M Porting/test-dist-modules.pl

  Log Message:
  ---
  first try at generating Makefile.PL


  Commit: e7284e29bf6da0b66bd329d22b58c68705b47b42
  
https://github.com/Perl/perl5/commit/e7284e29bf6da0b66bd329d22b58c68705b47b42
  Author: Tony Cook 
  Date:   2022-08-03 (Wed, 03 Aug 2022)

  Changed paths:
M Porting/test-dist-modules.pl

  Log Message:
  ---
  don't test '.'


  Commit: 0842cca06966b1658919b4d3e49c9dca72c71521
  
https://github.com/Perl/perl5/commit/0842cca06966b1658919b4d3e49c9dca72c71521
  Author: Tony Cook 
  Date:   2022-08-03 (Wed, 03 Aug 2022)

  Changed paths:
M Porting/test-dist-modules.pl

  Log Message:
  ---
  don't do .gitignore either


  Commit: 6143ffe1528ae99c788c6cf28cc3f76c0d561798
  
https://github.com/Perl/perl5/commit/6143ffe1528ae99c788c6cf28cc3f76c0d561798
  Author: Tony Cook 
  Date:   2022-08-03 (Wed, 03 Aug 2022)

  Changed paths:
M Porting/test-dist-modules.pl

  Log Message:
  ---
  doh


  Commit: 0e020120d3db5363b55a6c79996099fc7846dd08
  
https://github.com/Perl/perl5/commit/0e020120d3db5363b55a6c79996099fc7846dd08
  Author: Tony Cook 
  Date:   2022-08-03 (Wed, 03 Aug 2022)

  Changed paths:
M Porting/test-dist-modules.pl

  Log Message:
  ---
  copy ppport.h


Compare: https://github.com/Perl/perl5/compare/070c4688b192%5E...0e020120d3db


[Perl/perl5] 7556e7: Simplify magic test

2022-08-02 Thread Leon Timmermans via perl5-changes
  Branch: refs/heads/leont/value_magic
  Home:   https://github.com/Perl/perl5
  Commit: 7556e7159bbe8e19fb10b65b7c6562424267fafb
  
https://github.com/Perl/perl5/commit/7556e7159bbe8e19fb10b65b7c6562424267fafb
  Author: Leon Timmermans 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M ext/XS-APItest/APItest.pm
M ext/XS-APItest/APItest.xs
M ext/XS-APItest/t/magic.t

  Log Message:
  ---
  Simplify magic test


  Commit: 3136f7cf4e831813e615f45cc1962a3057ccda86
  
https://github.com/Perl/perl5/commit/3136f7cf4e831813e615f45cc1962a3057ccda86
  Author: Leon Timmermans 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M ext/XS-APItest/t/magic.t

  Log Message:
  ---
  Test localization of ext magic


  Commit: d8fbe8c12300bef8b5c0c256c370751931f4c238
  
https://github.com/Perl/perl5/commit/d8fbe8c12300bef8b5c0c256c370751931f4c238
  Author: Leon Timmermans 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M ext/XS-APItest/APItest.xs
M ext/XS-APItest/t/magic.t

  Log Message:
  ---
  Add tests for value magic


Compare: https://github.com/Perl/perl5/compare/ac4c90a4ec30...d8fbe8c12300


[Perl/perl5] 251f5c: Add a refcount_is() helper to t/test.pl

2022-08-02 Thread Paul Evans via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 251f5c8c2a283fea8a5ffadcb81e75dfe086a7b0
  
https://github.com/Perl/perl5/commit/251f5c8c2a283fea8a5ffadcb81e75dfe086a7b0
  Author: Paul "LeoNerd" Evans 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M t/test.pl

  Log Message:
  ---
  Add a refcount_is() helper to t/test.pl

A handy helper function that can be used in unit test .t files, rather
than currently a weird mix of using Internals::SvREFCNT everywhere.


  Commit: fab1abc517d5cbb1b03bf845006c3a5b2c9cf3b5
  
https://github.com/Perl/perl5/commit/fab1abc517d5cbb1b03bf845006c3a5b2c9cf3b5
  Author: Paul "LeoNerd" Evans 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M t/op/eval.t
M t/op/inccode.t
M t/op/sort.t
M t/re/qr-72922.t
M t/re/subst.t

  Log Message:
  ---
  Fix some unit tests to use new refcount_is() function


Compare: https://github.com/Perl/perl5/compare/46bfb3c49f22...fab1abc517d5


[Perl/perl5] 6aa91f: Add PERL_MAGIC_value

2022-08-02 Thread Leon Timmermans via perl5-changes
  Branch: refs/heads/leont/value_magic
  Home:   https://github.com/Perl/perl5
  Commit: 6aa91f7aa07fba3bc86378505ef5ac9474f8ed4d
  
https://github.com/Perl/perl5/commit/6aa91f7aa07fba3bc86378505ef5ac9474f8ed4d
  Author: Leon Timmermans 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M mg_names.inc
M mg_raw.h
M mg_vtable.h
M pod/perldelta.pod
M pod/perlguts.pod
M regen/mg_vtable.pl

  Log Message:
  ---
  Add PERL_MAGIC_value

A new magic type PERL_MAGIC_value has been added. This is available for
use like PERL_MAGIC_ext, but is a value magic: upon localization the new
value will not be magical.


  Commit: f4dc80bbb5014975b48643b07da2299b33c0f6b2
  
https://github.com/Perl/perl5/commit/f4dc80bbb5014975b48643b07da2299b33c0f6b2
  Author: Leon Timmermans 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M ext/XS-APItest/APItest.xs
M ext/XS-APItest/t/magic.t

  Log Message:
  ---
  Simplify magic test


  Commit: 520fc835e298967d1503b23ecfe2a6cf52d549ec
  
https://github.com/Perl/perl5/commit/520fc835e298967d1503b23ecfe2a6cf52d549ec
  Author: Leon Timmermans 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M ext/XS-APItest/t/magic.t

  Log Message:
  ---
  Test localization of ext magic


  Commit: ac4c90a4ec3000e4e99882a67a9ba104ef0b1e25
  
https://github.com/Perl/perl5/commit/ac4c90a4ec3000e4e99882a67a9ba104ef0b1e25
  Author: Leon Timmermans 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M ext/XS-APItest/APItest.xs
M ext/XS-APItest/t/magic.t

  Log Message:
  ---
  Add tests for value magic


Compare: https://github.com/Perl/perl5/compare/f6be3435594e...ac4c90a4ec30


[Perl/perl5] 46bfb3: Configure should avoid looping infinitely repeatin...

2022-08-02 Thread Nicholas Clark via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 46bfb3c49f22629a21d99ff2d02461a2a8a9aac4
  
https://github.com/Perl/perl5/commit/46bfb3c49f22629a21d99ff2d02461a2a8a9aac4
  Author: Nicholas Clark 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M Configure

  Log Message:
  ---
  Configure should avoid looping infinitely repeating the same question

Configure's helper function ./myread is intended to loop until it gets an
acceptable answer. For a couple of cases, an empty string is not acceptable
(eg 'Where is your C library?', if all automated attempts at answering this
have failed). In these cases, if Configure's standard input is /dev/null (or
closed), the shell read returns an empty string, and ./myread repeats the
question.

Before this commit, it would loop infinitely (generating continuous terminal
output). With this commit, we add a retry counter - if it asks the same
question to many times, it aborts Configure. This means that unattended
./Configure runs should now always terminate, as termination with an error
is better than spinning forever.




[Perl/perl5] 6d02a9: perlfunc - correct argument terminology for dbmopen

2022-08-02 Thread Dan Book via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 6d02a9e121d037896df9b91ac623c1ab4c98c99a
  
https://github.com/Perl/perl5/commit/6d02a9e121d037896df9b91ac623c1ab4c98c99a
  Author: Dan Book 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M pod/perlfunc.pod

  Log Message:
  ---
  perlfunc - correct argument terminology for dbmopen

The MODE argument was renamed to MASK in 5.6, but later verbiage was added that 
calls it MODE again. Change the reference to MASK for consistency.




[Perl/perl5] 14ad5a: sv.c - add a _QUOTEDPREFIX version of SVf, UTF8f, ...

2022-08-02 Thread Yves Orton via perl5-changes
  Branch: refs/heads/yves/fix_universal_import_fragility
  Home:   https://github.com/Perl/perl5
  Commit: 14ad5a85ec0616f35ca0d0b72e3a9a50c5556e6c
  
https://github.com/Perl/perl5/commit/14ad5a85ec0616f35ca0d0b72e3a9a50c5556e6c
  Author: Yves Orton 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
M dump.c
M gv.c
M mg.c
M perl.h
M pod/perlguts.pod
M pp_sys.c
M sv.c
M t/op/method.t
M t/porting/diag.t
M t/uni/method.t

  Log Message:
  ---
  sv.c - add a _QUOTEDPREFIX version of SVf, UTF8f, and HEKf for use in error 
messages.

These new formats are intended to be used in error messages where
we want to show the contents of a string without any possible
hidden characters not rendering in the error message, and where
it would be unreasonable to show every character of the string
if it is very long.

A good example would be when we want to say that a class name is
illegal. Consider:

"Foo\0"->thing()

should not throw an error message about "Foo" being missing, the fact
there is a null in there should be visible to the developer.
Similarly if we had

("x" x 1000_000)->thing()

we also wouldn't want to throw a 1MB error message.

Currently this patch restricts it to the first 256 characters, but the
docs are such that we can change that if we wish, I suspect something
like 100 would be more reasonable. You can override the define
PERL_QUOTEDPREFIX_LEN to a longer value in Configure if you wish.

Example usage:

other= newSVpvs("Some\0::Thing\n");
sv_catpvf(msg_sv,"%" SVfQUOTEDPREFIX, SVfARG(other));

Should append

"Some\0::Thing\n"

to the msg_sv. If it were very long it would have elipses suffixed:

"whatever"...

This patch changes the error messages related to method calls. I haven't
changed every place that this could happen yet, just the main ones.


  Commit: 7a7f23c3c46f01ef058749105ebddaedc47e39e6
  
https://github.com/Perl/perl5/commit/7a7f23c3c46f01ef058749105ebddaedc47e39e6
  Author: Yves Orton 
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  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.)


Compare: https://github.com/Perl/perl5/compare/086ea7bbb9d8...7a7f23c3c46f