[Perl/perl5] 8a9d53: add tests for #21661

2024-08-03 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21661-no-warn-ck
  Home:   https://github.com/Perl/perl5
  Commit: 8a9d5369db8e9f9849f3e1d20205e8a630ae106b
  
https://github.com/Perl/perl5/commit/8a9d5369db8e9f9849f3e1d20205e8a630ae106b
  Author: Tony Cook 
  Date:   2024-08-03 (Sat, 03 Aug 2024)

  Changed paths:
M t/re/pat.t

  Log Message:
  ---
  add tests for #21661


  Commit: 4455107d0252d863b9b4dc267af94ce412eadf42
  
https://github.com/Perl/perl5/commit/4455107d0252d863b9b4dc267af94ce412eadf42
  Author: Tony Cook 
  Date:   2024-08-03 (Sat, 03 Aug 2024)

  Changed paths:
M regcomp.c
M regcomp_internal.h

  Log Message:
  ---
  safer cleanup when failing to compile regexps

Prior to this commit when producing a warning the regexp compiler
would check if the warning category was marked as FATAL, and if it was
it would add clean up to the save stack to release buffers used during
compilation and to release the working REGEXP SV.

This causes two type of problems:

- if an error was already queued, Perl_ck_warner() returns even if
  the warning is fatal, this meant that the normal clean up code
  Perl_re_op_compile() would also run, resulting in a double free
  of the buffers.

- without fatal warnings, if a $SIG{__WARN__} handler died, the
  buffers and the working REGEXP SV would leak.

Avoid this by using SAVEDESTRUCTOR_X() to release the memory and
optionally the SV at the end of scope.

Fixes #21661


  Commit: a77c059910062e1fcb84ab33a185e5de09b77b3d
  
https://github.com/Perl/perl5/commit/a77c059910062e1fcb84ab33a185e5de09b77b3d
  Author: Tony Cook 
  Date:   2024-08-03 (Sat, 03 Aug 2024)

  Changed paths:
M regcomp_internal.h

  Log Message:
  ---
  regcomp_internal.h: simplify vFAIL*() macros

These can be simpler, and since we allow use of __VA_ARGS__
we can consolidate Simple_vFAIL[1-4]() into Simple_vFAILn()


  Commit: ce34730d09ad8e6e38363d378e576205c5ed7f84
  
https://github.com/Perl/perl5/commit/ce34730d09ad8e6e38363d378e576205c5ed7f84
  Author: Tony Cook 
  Date:   2024-08-03 (Sat, 03 Aug 2024)

  Changed paths:
M regcomp_internal.h

  Log Message:
  ---
  regcomp_internal.h: removed unused PREPARE_TO_DIE

We are now always prepared for death.


Compare: https://github.com/Perl/perl5/compare/2016cd189774...ce34730d09ad

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] ba648d: perldelta for 300daee11

2024-07-28 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: ba648dfb0f2ec6aec5ada06872a0d4459d462613
  
https://github.com/Perl/perl5/commit/ba648dfb0f2ec6aec5ada06872a0d4459d462613
  Author: Tony Cook 
  Date:   2024-07-29 (Mon, 29 Jul 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for 300daee11



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 300dae: readdir() etc: better warning if called on handle ...

2024-07-28 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 300daee115d7db34046e449a893aafc0e34b368c
  
https://github.com/Perl/perl5/commit/300daee115d7db34046e449a893aafc0e34b368c
  Author: Tony Cook 
  Date:   2024-07-29 (Mon, 29 Jul 2024)

  Changed paths:
M embed.fnc
M embed.h
M pod/perldiag.pod
M pp_sys.c
M proto.h
M t/op/readdir.t

  Log Message:
  ---
  readdir() etc: better warning if called on handle open()ed as file

Fixes #22394



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] cdc26f: perldelta for de5c773a8f0b

2024-07-22 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: cdc26f786ed336e8d9234b8b03ea02061aea71ce
  
https://github.com/Perl/perl5/commit/cdc26f786ed336e8d9234b8b03ea02061aea71ce
  Author: Tony Cook 
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for de5c773a8f0b



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 0fbaa6: hints/cygwin.sh: don't touch system symbol __STRIC...

2024-07-22 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 0fbaa61cadd4107aa1e9737266b985742949004c
  
https://github.com/Perl/perl5/commit/0fbaa61cadd4107aa1e9737266b985742949004c
  Author: Tony Cook 
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
M hints/cygwin.sh

  Log Message:
  ---
  hints/cygwin.sh: don't touch system symbol __STRICT_ANSI__

Adding _GNU_SOURCE, which was done much later, should give us the
GNU-ish symbols (though POSIX_C_SOURCE would be more general.)

I couldn't find the reason for this being added, but the C++
headers react badly to it:

In file included from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/iostream:38,
 from source.cpp:1:
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/x86_64-pc-cygwin/bits/c++config.h:573:2:
 warning: #warning "__STRICT_ANSI__ seems to have been undefined; this is not 
supported" [-Wcpp]
  573 | #warning "__STRICT_ANSI__ seems to have been undefined; this is not 
supported"
  |  ^~~
In file included from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/max_size_type.h:37,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/ranges_base.h:38,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/string_view:48,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/basic_string.h:48,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/string:55,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/locale_classes.h:40,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/ios_base.h:41,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/ios:42,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/ostream:38,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/iostream:39,
 from source.cpp:1:
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/numbers:139:9: error: unable to 
find numeric literal operator 'operator""Q'
  139 |   = 2.718281828459045235360287471352662498Q;
  | ^~~
...


  Commit: de5c773a8f0b6ad68db300ffd18117f078bbdb5a
  
https://github.com/Perl/perl5/commit/de5c773a8f0b6ad68db300ffd18117f078bbdb5a
  Author: Tony Cook 
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
M MANIFEST
A t/porting/cpphdrcheck.t

  Log Message:
  ---
  porting/cpphdrcheck.t: test perl's headers with C++ compilers

This searches for a C++ compiler based on the supplied C compiler, and
checks that compiler for any options controlling the C++ standard
requested, including simple checks that the compiler supports that
standard.

If a C++ compiler is found, test compilation of the same simple code
as above but with the perl headers included after any C++ headers.

Ideally we'd also test runtime, but would require more complex test
code, which I leave to later contributors (which may still be me).

Tested at various times with:

 - MSVC
 - gcc
 - clang
 - Oracle/Sun Development Workshop cc (CC is the C++ compiler), on
   Oracle Linux
 - Intel oneAPI compiler (llvm based apparently, and now free to use)
 - Intel classic compiler (discontinued)

Currently this probes the compiler for C++ sanity with the perl
ccflags, since icc (Intel classic) would successfully build the sample
without perl's ccflags, but then fail with both the headers and perl's
ccflags.  It turned out to fail with just the ccflags, and since the
primary intent is to test the headers, I probe *with* ccflags.

The Sun Workshop compiler failed to build the C++11 or 14 sample at
all in my testing, which may have been due to an installation problem.


Compare: https://github.com/Perl/perl5/compare/27fb3da4282f...de5c773a8f0b

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 27fb3d: perldelta for 6507a1d24b, 0b035daf24666

2024-07-22 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 27fb3da4282fb1e71f7b7cd08eb5687db6a714ef
  
https://github.com/Perl/perl5/commit/27fb3da4282fb1e71f7b7cd08eb5687db6a714ef
  Author: Tony Cook 
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for 6507a1d24b, 0b035daf24666



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 27974f: perl5db.pl: it fiddles with %sub, not @sub

2024-07-22 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 27974fe813200d3d61d223418d942f70ba772563
  
https://github.com/Perl/perl5/commit/27974fe813200d3d61d223418d942f70ba772563
  Author: Tony Cook 
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
M lib/perl5db.pl

  Log Message:
  ---
  perl5db.pl: it fiddles with %sub, not @sub


  Commit: 6507a1d24b17b1807ae1bb8ddec26f7ee2778a48
  
https://github.com/Perl/perl5/commit/6507a1d24b17b1807ae1bb8ddec26f7ee2778a48
  Author: Tony Cook 
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
M lib/perl5db.pl
M lib/perl5db.t

  Log Message:
  ---
  perl5db.pl: b subname and c subname break on first executable line

This currently doesn't try to handle "b postpone subname" since that
internally has an offset function that doesn't really work
with this implementation.

This is a partial fix for #799


  Commit: 0b035daf2466608dcac4f5051711e1708d9e5db4
  
https://github.com/Perl/perl5/commit/0b035daf2466608dcac4f5051711e1708d9e5db4
  Author: Tony Cook 
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
M lib/perl5db.pl
M lib/perl5db.t

  Log Message:
  ---
  perl5db.pl: apply the "break on first line" fix to b postpone subname

and just plain fix "b postpone subname", which didn't stop at all
on my postponed sub test code at all as far back at 5.10.

Fixes #799


  Commit: fd9c3b24b97c29cdc2ebbc5d7467a61a7b8c6b25
  
https://github.com/Perl/perl5/commit/fd9c3b24b97c29cdc2ebbc5d7467a61a7b8c6b25
  Author: Tony Cook 
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
M lib/perl5db.t

  Log Message:
  ---
  perl5db.t: add a test for "b compile subname"

I've just been looking at the implementation, and there's no
test, so add one.


Compare: https://github.com/Perl/perl5/compare/352ca4bc58b6...fd9c3b24b97c

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5]

2024-07-18 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smartmatch-removal
  Home:   https://github.com/Perl/perl5

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 995f06: switch removal: remove given/when/break/continue

2024-07-17 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smartmatch-removal
  Home:   https://github.com/Perl/perl5
  Commit: 995f0662f4f3f5e0ba82ccba6a9c8948c01d4b6c
  
https://github.com/Perl/perl5/commit/995f0662f4f3f5e0ba82ccba6a9c8948c01d4b6c
  Author: Tony Cook 
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
M MANIFEST
M cop.h
M dump.c
M embed.fnc
M embed.h
M ext/Opcode/Opcode.pm
M gv.c
M inline.h
M keywords.c
M keywords.h
M lib/B/Deparse-core.t
M lib/B/Deparse.pm
M lib/B/Deparse.t
M lib/B/Op_private.pm
M op.c
M opcode.h
M opnames.h
M perl.h
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perldiag.pod
M pod/perlguts.pod
M pod/perlsyn.pod
M pp_ctl.c
M pp_proto.h
M proto.h
M regen/keywords.pl
M regen/opcodes
M sv.c
M t/lib/croak/pp_ctl
R t/lib/feature/switch
M t/op/coreamp.t
M t/op/coresubs.t
M t/op/cproto.t
M t/op/state.t
R t/op/switch.t
M t/op/taint.t
M toke.c

  Log Message:
  ---
  switch removal: remove given/when/break/continue

continue blocks are not removed


  Commit: fb7c6d762195075209f099bcef6261b2ab6ffd67
  
https://github.com/Perl/perl5/commit/fb7c6d762195075209f099bcef6261b2ab6ffd67
  Author: Tony Cook 
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
M MANIFEST
M embed.fnc
M embed.h
M ext/Opcode/Opcode.pm
M lib/B/Deparse.pm
M lib/B/Op_private.pm
M lib/overload.pm
M lib/overload.t
M lib/overload/numbers.pm
M op.c
M opcode.h
M opnames.h
M overload.h
M overload.inc
M pod/perlcheat.pod
M pod/perldiag.pod
M pod/perlop.pod
M pp_ctl.c
M pp_proto.h
M proto.h
M regen/opcodes
M regen/overload.pl
M sv.c
M t/lib/warnings/9uninit
M t/lib/warnings/op
M t/lib/warnings/utf8
R t/op/smartmatch.t
M t/op/svleak.t
M t/op/taint.t
M t/op/tie_fetch_count.t
M toke.c

  Log Message:
  ---
  switch removal: remove smartmatch


  Commit: c88bef28cad881fb3b6b2dea0e84a53326158979
  
https://github.com/Perl/perl5/commit/c88bef28cad881fb3b6b2dea0e84a53326158979
  Author: Tony Cook 
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
M feature.h
M lib/B/Deparse.t
M lib/feature.pm
M regen/feature.pl
M t/lib/feature/api
M t/lib/feature/removed

  Log Message:
  ---
  smartmatch removal: remove the feature from feature.pm


Compare: https://github.com/Perl/perl5/compare/995f0662f4f3%5E...c88bef28cad8

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 411ade: perldelta for 08962c5467e2a7e

2024-07-16 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 411ade5162317467d6c4142737a77f65b68620e8
  
https://github.com/Perl/perl5/commit/411ade5162317467d6c4142737a77f65b68620e8
  Author: Tony Cook 
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for 08962c5467e2a7e



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 08962c: cpan/Win32: import PR 39

2024-07-16 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 08962c5467e2a7e68626052bc8d9c66670992f9a
  
https://github.com/Perl/perl5/commit/08962c5467e2a7e68626052bc8d9c66670992f9a
  Author: Tony Cook 
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
M cpan/Win32/Win32.pm
M cpan/Win32/Win32.xs

  Log Message:
  ---
  cpan/Win32: import PR 39

https://github.com/perl-libwin32/win32/pull/37 was submitted in June
2022, it fixes a bug that causes tests to fail for Win32.pm for
32-bit builds on windows, including in perl (and in 5.40.)

Jan requested a minor change to that PR which wasn't followed up on, so
I submitted https://github.com/perl-libwin32/win32/pull/39 which
includes that requested change in August 2023.

This still hasn't been acted on.

So import this change into blead.



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] f4a775: test-dist-modules.pl: make separate installation t...

2024-07-16 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: f4a775ea785a27dbeb069cb8cff699cd5d91d8ec
  
https://github.com/Perl/perl5/commit/f4a775ea785a27dbeb069cb8cff699cd5d91d8ec
  Author: Tony Cook 
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
M .github/workflows/testsuite.yml
M Porting/test-dist-modules.pl

  Log Message:
  ---
  test-dist-modules.pl: make separate installation the default

This avoids the dangerous default of overwriting installed modules.


  Commit: 0cd3930a5eda46cc0852b128988c46becbce7512
  
https://github.com/Perl/perl5/commit/0cd3930a5eda46cc0852b128988c46becbce7512
  Author: Tony Cook 
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  ---
  testsuite.yml: test dist/ modules on threaded perls too

This originally also tested on Windows, but Storable fails a test on
5.24, and several other modules fail on 5.10 and 5.8.


  Commit: d033adf874e9a1054ff816d8986d570821e2f440
  
https://github.com/Perl/perl5/commit/d033adf874e9a1054ff816d8986d570821e2f440
  Author: Tony Cook 
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
M dist/Devel-PPPort/PPPort_pm.PL
M dist/Devel-PPPort/parts/inc/misc

  Log Message:
  ---
  Devel::PPPort: add PERL_STACK_REALIGN

This was causing build failures when building threads.pm against older
perls.


  Commit: 0637dad265e6fa21c2357c565cb35d487d092d55
  
https://github.com/Perl/perl5/commit/0637dad265e6fa21c2357c565cb35d487d092d55
  Author: Tony Cook 
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
M dist/threads/lib/threads.pm
M dist/threads/threads.xs

  Log Message:
  ---
  threads: thread_locale_init/term() needs 5.27.9 or later


  Commit: baab724ded8d628c1edf89829361ce4bba281ade
  
https://github.com/Perl/perl5/commit/baab724ded8d628c1edf89829361ce4bba281ade
  Author: Tony Cook 
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
M dist/Storable/ChangeLog
M dist/Storable/Storable.pm
M dist/Storable/t/utf8.t

  Log Message:
  ---
  Storable: add test names to t/utf8.t


  Commit: 65dbd0e2bd3ce74617a363a5e448b5730df1c136
  
https://github.com/Perl/perl5/commit/65dbd0e2bd3ce74617a363a5e448b5730df1c136
  Author: Tony Cook 
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
M dist/Devel-PPPort/parts/inc/SvREFCNT
M dist/threads/threads.xs

  Log Message:
  ---
  Devel::PPPort: threads-shared needs SvREFCNT_dec_NN()

and threads.xs no longer needs to define SvREFCNT_dec_NN()


  Commit: 6a83e0d27f2871f248fa35afcae2897ca20488a3
  
https://github.com/Perl/perl5/commit/6a83e0d27f2871f248fa35afcae2897ca20488a3
  Author: Tony Cook 
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  ---
  test-dist-modules.pl: update usage(), exit on usage


  Commit: ca8d60d1b5b3bdf135a6c8eba9ced89fbb74fbb5
  
https://github.com/Perl/perl5/commit/ca8d60d1b5b3bdf135a6c8eba9ced89fbb74fbb5
  Author: Tony Cook 
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  ---
  test-dist-modules.pl: add some POD


Compare: https://github.com/Perl/perl5/compare/1f92987284f5...ca8d60d1b5b3

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 9cc725: perldelta for e3d27bea9a4

2024-07-10 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 9cc725b301b978dd8c9d4afdfeacfe232290beed
  
https://github.com/Perl/perl5/commit/9cc725b301b978dd8c9d4afdfeacfe232290beed
  Author: Tony Cook 
  Date:   2024-07-11 (Thu, 11 Jul 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for e3d27bea9a4



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5]

2024-07-08 Thread Tony Cook via perl5-changes
  Branch: refs/heads/rework-dist-modules
  Home:   https://github.com/Perl/perl5

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 4cc962: test-dist-modules.pl: make separate installation t...

2024-07-08 Thread Tony Cook via perl5-changes
  Branch: refs/heads/rework-dist-modules
  Home:   https://github.com/Perl/perl5
  Commit: 4cc962b236da9e8e68bc067d94cda1e340e1fb81
  
https://github.com/Perl/perl5/commit/4cc962b236da9e8e68bc067d94cda1e340e1fb81
  Author: Tony Cook 
  Date:   2024-07-09 (Tue, 09 Jul 2024)

  Changed paths:
M .github/workflows/testsuite.yml
M Porting/test-dist-modules.pl

  Log Message:
  ---
  test-dist-modules.pl: make separate installation the default

This avoids the default of overwriting installed modules.


  Commit: 87969216497f0850498b89bb8dfa2ef2511042e2
  
https://github.com/Perl/perl5/commit/87969216497f0850498b89bb8dfa2ef2511042e2
  Author: Tony Cook 
  Date:   2024-07-09 (Tue, 09 Jul 2024)

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

  Log Message:
  ---
  Tony is dumb


Compare: https://github.com/Perl/perl5/compare/4cc962b236da%5E...87969216497f

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] d3994c: t/op/require_errors.t, t/op/stat.t: skip permissio...

2024-07-03 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: d3994ca46180eb619f2533130d4b9d8d68aff005
  
https://github.com/Perl/perl5/commit/d3994ca46180eb619f2533130d4b9d8d68aff005
  Author: Tony Cook 
  Date:   2024-07-04 (Thu, 04 Jul 2024)

  Changed paths:
M t/op/require_errors.t
M t/op/stat.t

  Log Message:
  ---
  t/op/require_errors.t, t/op/stat.t: skip permissions test on AFS

Fixes #22068

Fixes #22067


  Commit: 7ea9cde9d9e0d812b65ff3b248bc30ebc980958f
  
https://github.com/Perl/perl5/commit/7ea9cde9d9e0d812b65ff3b248bc30ebc980958f
  Author: Tony Cook 
  Date:   2024-07-04 (Thu, 04 Jul 2024)

  Changed paths:
M ext/POSIX/t/termios.t

  Log Message:
  ---
  POSIX/t/termios.t: AFS doesn't report ENOTTY as it should

Fixes #22079


Compare: https://github.com/Perl/perl5/compare/fe31e2a9c1cd...7ea9cde9d9e0

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 9facb6: perldelta for 2e9c7c448d234

2024-07-03 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 9facb6a5a02ebe1ca10c3fd03a90c05a51657429
  
https://github.com/Perl/perl5/commit/9facb6a5a02ebe1ca10c3fd03a90c05a51657429
  Author: Tony Cook 
  Date:   2024-07-04 (Thu, 04 Jul 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for 2e9c7c448d234


  Commit: fe31e2a9c1cd273637aed576e9a99b30021f91c8
  
https://github.com/Perl/perl5/commit/fe31e2a9c1cd273637aed576e9a99b30021f91c8
  Author: Tony Cook 
  Date:   2024-07-04 (Thu, 04 Jul 2024)

  Changed paths:
M .mailmap

  Log Message:
  ---
  Tux has a new from line (porting/authors was complaining)


Compare: https://github.com/Perl/perl5/compare/d1e7b8b8aae5...fe31e2a9c1cd

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 2e9c7c: Perl_call_argv(): clean up the temps it creates wh...

2024-07-03 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 2e9c7c448d234fba91c5bc097476f4622408b945
  
https://github.com/Perl/perl5/commit/2e9c7c448d234fba91c5bc097476f4622408b945
  Author: Tony Cook 
  Date:   2024-07-04 (Thu, 04 Jul 2024)

  Changed paths:
M ext/XS-APItest/APItest.pm
M ext/XS-APItest/APItest.xs
M ext/XS-APItest/t/call.t
M perl.c

  Log Message:
  ---
  Perl_call_argv(): clean up the temps it creates when G_DISCARD is set

We can only do this clean up for G_DISCARD since otherwise we might
free the return values on the stack.

Fixes #22255



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 625fd6: Remove smartmatch, given, when, default and non-lo...

2024-06-30 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/smartmatch-removal
  Home:   https://github.com/Perl/perl5
  Commit: 625fd6d710a442eb42a26bb29604a9dfb89fd309
  
https://github.com/Perl/perl5/commit/625fd6d710a442eb42a26bb29604a9dfb89fd309
  Author: Tony Cook 
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
M MANIFEST
M cop.h
M dump.c
M embed.fnc
M embed.h
M ext/Opcode/Opcode.pm
M feature.h
M gv.c
M inline.h
M keywords.c
M keywords.h
M lib/B/Deparse-core.t
M lib/B/Deparse.pm
M lib/B/Deparse.t
M lib/B/Op_private.pm
M lib/feature.pm
M lib/overload.pm
M lib/overload.t
M lib/overload/numbers.pm
M op.c
M opcode.h
M opnames.h
M overload.h
M overload.inc
M perl.h
M perly.act
M perly.h
M perly.tab
M perly.y
M pod/perlcheat.pod
M pod/perldiag.pod
M pod/perlguts.pod
M pod/perlop.pod
M pod/perlsyn.pod
M pp_ctl.c
M pp_proto.h
M proto.h
M regen/feature.pl
M regen/keywords.pl
M regen/opcodes
M regen/overload.pl
M sv.c
M t/lib/croak/pp_ctl
M t/lib/feature/api
M t/lib/feature/removed
R t/lib/feature/switch
M t/lib/warnings/9uninit
M t/lib/warnings/op
M t/lib/warnings/utf8
M t/op/coreamp.t
M t/op/coresubs.t
M t/op/cproto.t
R t/op/smartmatch.t
M t/op/state.t
M t/op/svleak.t
R t/op/switch.t
M t/op/taint.t
M t/op/tie_fetch_count.t
M toke.c

  Log Message:
  ---
  Remove smartmatch, given, when, default and non-loop continue

This removes the switch feature, which covers smartmatch, and the
given/when structure.



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] f6691a: POSIX: win32 calls "putenv" "_putenv"

2024-06-23 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: f6691a84dfa9fe39c67d0f974bf4663aefe26695
  
https://github.com/Perl/perl5/commit/f6691a84dfa9fe39c67d0f974bf4663aefe26695
  Author: Tony Cook 
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
M ext/POSIX/POSIX.xs

  Log Message:
  ---
  POSIX: win32 calls "putenv" "_putenv"

This produced build errors with gcc 14.


  Commit: 95d19e0063352ead71bb8a3d54ee329bc06d6f86
  
https://github.com/Perl/perl5/commit/95d19e0063352ead71bb8a3d54ee329bc06d6f86
  Author: Tony Cook 
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
M pod/perlguts.pod

  Log Message:
  ---
  perlguts: PTR2ul() is unsafe

For a 64-bit build on Windows, pointers are 64-bits, while
long is 32-bits, so PTR2ul() discards some bits.


  Commit: 6c10350f7c0e4fe55f8b4a332c7cc7b227f996b2
  
https://github.com/Perl/perl5/commit/6c10350f7c0e4fe55f8b4a332c7cc7b227f996b2
  Author: Tony Cook 
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
M perl.h

  Log Message:
  ---
  isnan (long double): always use the C99 version

C99 requires that isnan() is a generic macro that accepts the
standard floating point types (float, double, long double).

We always include math.h eventually, so this macro should be
available.

This is complicated by C++.  C++98 depends on C89, which does
not require isnan(), but since we do require C99, I think we
need to require a minimum of C++11, which follows C99.

C++11 does *not* define isnan() as a macro, but as a set of
overloaded functions, which produces almost the same result,
the difference being that the macro test that was done by this
code is no longer valid.

The old code would fail to build with C++ long double builds
with gcc on Window:

..\sv.c: In function 'size_t S_infnan_2pv(NV, char*, size_t, char)':
..\perl.h:2680:34: error: 'isnanl' was not declared in this scope; did you mean 
'isnan'?
 2680 | #   define Perl_isnan(x) isnanl(x)
  |  ^~
..\sv.c:2882:14: note: in expansion of macro 'Perl_isnan'
 2882 | else if (Perl_isnan(nv)) {
  |  ^~
..\sv.c: In function 'U8* S_hextract(NV, int*, bool*, U8*, U8*)':
..\perl.h:2680:34: error: 'isnanl' was not declared in this scope; did you mean 
'isnan'?
 2680 | #   define Perl_isnan(x) isnanl(x)
  |  ^~
..\perl.h:8605:69: note: in expansion of macro 'Perl_isnan'
 8605 | #  define Perl_fp_class_denorm(x) ((x) != 0.0 && !Perl_isinf(x) && 
!Perl_isnan(x) && PERL_ABS(x) < NV_MIN)
  | 
^~
..\sv.c:11604:49: note: in expansion of macro 'Perl_fp_class_denorm'
11604 | #define HEXTRACT_GET_SUBNORMAL(nv) *subnormal = Perl_fp_class_denorm(nv)
  | ^~~~
..\sv.c:11672:9: note: in expansion of macro 'HEXTRACT_GET_SUBNORMAL'
11672 | HEXTRACT_GET_SUBNORMAL(nv);
  | ^~

and with gcc 14.2, which requires prototypes per C99:

In file included from ..\sv.c:32:
..\sv.c: In function 'S_infnan_2pv':
..\perl.h:2680:34: error: implicit declaration of function 'isnanl'; did you 
mean 'isnan'? [-Wimplicit-function-declaration]
 2680 | #   define Perl_isnan(x) isnanl(x)
  |  ^~
..\sv.c:2882:14: note: in expansion of macro 'Perl_isnan'
 2882 | else if (Perl_isnan(nv)) {
  |  ^~
gmake: *** [GNUmakefile:1430: mini\sv.o] Error 1


  Commit: cbe01cd7d9efb68071360368fbf035d3014d6d30
  
https://github.com/Perl/perl5/commit/cbe01cd7d9efb68071360368fbf035d3014d6d30
  Author: Tony Cook 
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
M ext/POSIX/POSIX.xs

  Log Message:
  ---
  POSIX: mingw64 doesn't make the bessel functions visible with -std=c99

And doesn't provide a way to make them visible, even though they
are visible by default for MSVC UCRT builds.

The __MINGW32__ macro is set for both 32-bit and 64-bit MINGW builds.


  Commit: 0fdc16a98b54de021d921da8e32fe67e2fb6ffd3
  
https://github.com/Perl/perl5/commit/0fdc16a98b54de021d921da8e32fe67e2fb6ffd3
  Author: Tony Cook 
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
M win32/config.gc
M win32/config.vc
M win32/config_H.gc
M win32/config_H.vc

  Log Message:
  ---
  win32/config*: all the supported compilers have isfinite()


  Commit: 56d5b6ef820802cd4c57fc2cfd8301a3f5d7af04
  
https://github.com/Perl/perl5/commit/56d5b6ef820802cd4c57fc2cfd8301a3f5d7af04
  Author: Tony Cook 
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
M ext/POSIX/t/math.t

  Log Message:
  ---
  POSIX: add simple bessel function tests


Compare: https://github.com/Perl/perl5/compare/fddbca21db8e...56d5b6ef8208

[Perl/perl5] fddbca: the macos-11 runner is deprecated and retires 28 J...

2024-06-23 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: fddbca21db8e30526486afd7046037aaff8986df
  
https://github.com/Perl/perl5/commit/fddbca21db8e30526486afd7046037aaff8986df
  Author: Tony Cook 
  Date:   2024-06-24 (Mon, 24 Jun 2024)

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

  Log Message:
  ---
  the macos-11 runner is deprecated and retires 28 June 2024

https://github.blog/changelog/2024-05-20-actions-upcoming-changes-to-github-hosted-macos-runners/

The brownouts described here appear to be causing some failures.



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 39dd28: class.c: store the stash in the constructor CV sta...

2024-06-19 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 39dd28f9eafb1932132c9d1099532d371c913923
  
https://github.com/Perl/perl5/commit/39dd28f9eafb1932132c9d1099532d371c913923
  Author: Tony Cook 
  Date:   2024-06-20 (Thu, 20 Jun 2024)

  Changed paths:
M class.c

  Log Message:
  ---
  class.c: store the stash in the constructor CV stash slot

This code previously stored the stash for the class in the CV's
any_cv slot, and marked that to be released when the CV is released.

But it does not bump the reference count of the stash that I can
see.

When I tried releasing the constructor SV while working on #22169
I found perl would crash, incrementing the stash reference count
prevents that, but leaves us with a reference loop.

But it turns out that CVs already have a slot to store their stash in
and an API that correctly handles reference counting for that slot.

So use CvSTASH_set()/CvSTASH() to manage the stash for "$class::new"
methods.



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] dbaf52: my_strnlen(): eliminate unneeded casting away of c...

2024-06-17 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: dbaf52f602f7474231460fe8930b3c5564df10c5
  
https://github.com/Perl/perl5/commit/dbaf52f602f7474231460fe8930b3c5564df10c5
  Author: Tony Cook 
  Date:   2024-06-18 (Tue, 18 Jun 2024)

  Changed paths:
M inline.h

  Log Message:
  ---
  my_strnlen(): eliminate unneeded casting away of const

Noticed this while reviewing #22271.

If you build with:

  ./Configure -des -Dusedevel -Ud_strnlen -Accflags=-Wcast-qual -Dcc=g++

you will see amongst many other warnings:

inline.h: In function ‘size_t Perl_my_strnlen(const char*, size_t)’:
inline.h:4220:23: warning: cast from type ‘const void*’ to type ‘char*’ casts 
away qualifiers [-Wcast-qual]
 4220 | const char *end = (char *) memchr(str, '\0', maxlen);
  |   ^~

The cast itself is only needed on C++ to cast from "const void *", C
doesn't require any cast here.


  Commit: ca81be37067e1358d98f77b8f7df53cc22a554b6
  
https://github.com/Perl/perl5/commit/ca81be37067e1358d98f77b8f7df53cc22a554b6
  Author: Tony Cook 
  Date:   2024-06-18 (Tue, 18 Jun 2024)

  Changed paths:
M utf8.h

  Log Message:
  ---
  UTF8_CHK_SKIP: eliminate casting away const

Seen with:

  ./Configure -des -Dusedevel -Accflags=-Wcast-qual

mathoms.c: In function ‘Perl_utf8_to_uvchr’:
utf8.h:804:53: warning: cast discards ‘const’ qualifier from pointer target type
 [-Wcast-qual]
  804 |(UNLIKELY(s[0] == '\0') ? 1 : my_strnlen((char *) (s), UTF8SK
IP(s)))
  | ^
embed.h:792:87: note: in definition of macro ‘utf8_to_uvchr_buf_helper’
  792 | # define utf8_to_uvchr_buf_helper(a,b,c)Perl_utf8_to_uvchr_buf_h
elper(aTHX_ a,b,c)
  |
  ^
mathoms.c:970:12: note: in expansion of macro ‘utf8_to_uvchr_buf’
  970 | return utf8_to_uvchr_buf(s, s + UTF8_CHK_SKIP(s), retlen);
  |^
mathoms.c:970:37: note: in expansion of macro ‘UTF8_CHK_SKIP’
  970 | return utf8_to_uvchr_buf(s, s + UTF8_CHK_SKIP(s), retlen);
  | ^

mathoms.c seems to be the only user of this macro.

This came up when reviewing #22271


Compare: https://github.com/Perl/perl5/compare/6c1a9be7c8b2...ca81be37067e

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 3ede54: POSIX: win32 calls "putenv" "_putenv"

2024-05-27 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/22211-gcc-posix-build-issues
  Home:   https://github.com/Perl/perl5
  Commit: 3ede54cc250ec70c356e22bad1996cc7fea6acdc
  
https://github.com/Perl/perl5/commit/3ede54cc250ec70c356e22bad1996cc7fea6acdc
  Author: Tony Cook 
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
M ext/POSIX/POSIX.xs

  Log Message:
  ---
  POSIX: win32 calls "putenv" "_putenv"

This produced build errors with gcc 14.


  Commit: 0d3f242d1acc84f375f2cd74d20ea5bb60d2bb16
  
https://github.com/Perl/perl5/commit/0d3f242d1acc84f375f2cd74d20ea5bb60d2bb16
  Author: Tony Cook 
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
M pod/perlguts.pod

  Log Message:
  ---
  perlguts: PTR2ul() is unsafe

For a 64-bit build on Windows, pointers are 64-bits, while
long is 32-bits, so PTR2ul() discards some bits.


  Commit: c3c9c12d6a4e2db8c49aa8c0a53ac65fcfe1c89d
  
https://github.com/Perl/perl5/commit/c3c9c12d6a4e2db8c49aa8c0a53ac65fcfe1c89d
  Author: Tony Cook 
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
M perl.h

  Log Message:
  ---
  isnan (long double): always use the C99 version

C99 requires that isnan() is a generic macro that accepts the
standard floating point types (float, double, long double).

We always include math.h eventually, so this macro should be
available.

This is complicated by C++.  C++98 depends on C89, which does
not require isnan(), but since we do require C99, I think we
need to require a minimum of C++11, which follows C99.

C++11 does *not* define isnan() as a macro, but as a set of
overloaded functions, which produces almost the same result,
the difference being that the macro test that was done by this
code is no longer valid.

The old code would fail to build with long double builds C++
builds with gcc on Window:

..\sv.c: In function 'size_t S_infnan_2pv(NV, char*, size_t, char)':
..\perl.h:2680:34: error: 'isnanl' was not declared in this scope; did you mean 
'isnan'?
 2680 | #   define Perl_isnan(x) isnanl(x)
  |  ^~
..\sv.c:2882:14: note: in expansion of macro 'Perl_isnan'
 2882 | else if (Perl_isnan(nv)) {
  |  ^~
..\sv.c: In function 'U8* S_hextract(NV, int*, bool*, U8*, U8*)':
..\perl.h:2680:34: error: 'isnanl' was not declared in this scope; did you mean 
'isnan'?
 2680 | #   define Perl_isnan(x) isnanl(x)
  |  ^~
..\perl.h:8605:69: note: in expansion of macro 'Perl_isnan'
 8605 | #  define Perl_fp_class_denorm(x) ((x) != 0.0 && !Perl_isinf(x) && 
!Perl_isnan(x) && PERL_ABS(x) < NV_MIN)
  | 
^~
..\sv.c:11604:49: note: in expansion of macro 'Perl_fp_class_denorm'
11604 | #define HEXTRACT_GET_SUBNORMAL(nv) *subnormal = Perl_fp_class_denorm(nv)
  | ^~~~
..\sv.c:11672:9: note: in expansion of macro 'HEXTRACT_GET_SUBNORMAL'
11672 | HEXTRACT_GET_SUBNORMAL(nv);
  | ^~

and with gcc 14.2, which requires prototypes per C99:

In file included from ..\sv.c:32:
..\sv.c: In function 'S_infnan_2pv':
..\perl.h:2680:34: error: implicit declaration of function 'isnanl'; did you 
mean 'isnan'? [-Wimplicit-function-declaration]
 2680 | #   define Perl_isnan(x) isnanl(x)
  |  ^~
..\sv.c:2882:14: note: in expansion of macro 'Perl_isnan'
 2882 | else if (Perl_isnan(nv)) {
  |  ^~
gmake: *** [GNUmakefile:1430: mini\sv.o] Error 1


  Commit: 193399ae1fc80bfd1b914374e87c0728a0f02c50
  
https://github.com/Perl/perl5/commit/193399ae1fc80bfd1b914374e87c0728a0f02c50
  Author: Tony Cook 
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
M ext/POSIX/POSIX.xs

  Log Message:
  ---
  POSIX: mingw64 doesn't make the bessel functions visible with -std=c99

And doesn't provide a way to make them visible, even though they
are visible by default for MSVC UCRT builds.

The __MINGW32__ macro is set for both 32-bit and 64-bit MINGW builds.


  Commit: 9e68950a61cf61dc5bf2f3eeb7369b532e1ab600
  
https://github.com/Perl/perl5/commit/9e68950a61cf61dc5bf2f3eeb7369b532e1ab600
  Author: Tony Cook 
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
M win32/config.gc
M win32/config.vc
M win32/config_H.gc
M win32/config_H.vc

  Log Message:
  ---
  win32/config*: all the supported compilers have isfinite()


  Commit: 4991f5a24486ff562184953e11728ca073bc6cc3
  
https://github.com/Perl/perl5/commit/4991f5a24486ff562184953e11728ca073bc6cc3
  Author: Tony Cook 
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
M ext/POSIX/t/math.t

  Log Message:
  ---
  POSIX: add simple bessel function tests


Compare: https://github.com/Pe

[Perl/perl5] 46f8c6: hints/linux.sh: handle the Intel oneAPI compiler

2024-05-23 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 46f8c658ab2332b5c4b2279f53cfcdd4fc161d47
  
https://github.com/Perl/perl5/commit/46f8c658ab2332b5c4b2279f53cfcdd4fc161d47
  Author: Tony Cook 
  Date:   2024-05-23 (Thu, 23 May 2024)

  Changed paths:
M hints/linux.sh

  Log Message:
  ---
  hints/linux.sh: handle the Intel oneAPI compiler

This failed some floating point tests, so the hints add fp-model=precise

Also capture the compiler version.

Fixes #22209



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] ac23c4: porting/cpphdrcheck.t: test perl's headers with C+...

2024-05-19 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/cpp-header-porting
  Home:   https://github.com/Perl/perl5
  Commit: ac23c4f0003367e2fd1178fc4bb2264ffdee8c39
  
https://github.com/Perl/perl5/commit/ac23c4f0003367e2fd1178fc4bb2264ffdee8c39
  Author: Tony Cook 
  Date:   2024-05-20 (Mon, 20 May 2024)

  Changed paths:
M MANIFEST
A t/porting/cpphdrcheck.t

  Log Message:
  ---
  porting/cpphdrcheck.t: test perl's headers with C++ compilers

This searches for a C++ compiler based on the supplied C compiler, and
checks that compiler for any options controlling the C++ standard
requested, including simple checks that the compiler supports that
standard.

If a C++ compiler is found, test compilation of the same simple code
as above but with the perl headers included after any C++ headers.

Ideally we'd also test runtime, but would require more complex test
code, which I leave to later contributors (which may still be me).

Tested at various times with:

 - MSVC
 - gcc
 - clang
 - Oracle/Sun Development Workshop cc (CC is the C++ compiler), on
   Oracle Linux
 - Intel oneAPI compiler (llvm based apparently, and now free to use)
 - Intel classic compiler (discontinued)

Currently this probes the compiler for C++ sanity with the perl
ccflags, since icc (Intel classic) would successfully build the sample
without perl's ccflags, but then fail with both the headers and perl's
ccflags.  It turned out to fail with just the ccflags, and since the
primary intent is to test the headers, I probe *with* ccflags.

The Sun Workshop compiler failed to build the C++11 or 14 sample at
all in my testing, which may have been due to an installation problem.



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] ac01d5: hints/cygwin.sh: don't touch system symbol __STRIC...

2024-05-19 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/cpp-header-porting
  Home:   https://github.com/Perl/perl5
  Commit: ac01d5389adafc80f4c7209453919fd155aead76
  
https://github.com/Perl/perl5/commit/ac01d5389adafc80f4c7209453919fd155aead76
  Author: Tony Cook 
  Date:   2024-05-20 (Mon, 20 May 2024)

  Changed paths:
M hints/cygwin.sh

  Log Message:
  ---
  hints/cygwin.sh: don't touch system symbol __STRICT_ANSI__

Adding _GNU_SOURCE, which was done much later, should give us the
GNU-ish symbols (though POSIX_C_SOURCE would be more general.)

I couldn't find the reason for this being added, but the C++
headers react badly to it:

In file included from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/iostream:38,
 from source.cpp:1:
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/x86_64-pc-cygwin/bits/c++config.h:573:2:
 warning: #warning "__STRICT_ANSI__ seems to have been undefined; this is not 
supported" [-Wcpp]
  573 | #warning "__STRICT_ANSI__ seems to have been undefined; this is not 
supported"
  |  ^~~
In file included from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/max_size_type.h:37,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/ranges_base.h:38,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/string_view:48,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/basic_string.h:48,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/string:55,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/locale_classes.h:40,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/ios_base.h:41,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/ios:42,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/ostream:38,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/iostream:39,
 from source.cpp:1:
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/numbers:139:9: error: unable to 
find numeric literal operator 'operator""Q'
  139 |   = 2.718281828459045235360287471352662498Q;
  | ^~~
...


  Commit: 379de51ef89f42e368fc04db5a27d4e27aac0ac7
  
https://github.com/Perl/perl5/commit/379de51ef89f42e368fc04db5a27d4e27aac0ac7
  Author: Tony Cook 
  Date:   2024-05-20 (Mon, 20 May 2024)

  Changed paths:
M MANIFEST
A t/porting/cpphdrcheck.t

  Log Message:
  ---
  porting/cpphdrcheck.t: test perl's headers with C++ compilers

t/porting/cpphdrcheck.t: fix finding config.h on windows

t/porting/cpphdrcheck.t: actually use ccflags

improve error reporting

t/porting/cpphdrcheck.t: improve error reporting

and make not finding a C++ compiler fail for now, to make it easier
to see the cases where we don't find one but expected to find one.

cpphdrcheck.t: capture -V output, and fix Intel compiler match

cpphdrcheck: test without -std too

cpphdrcheck: test even without -std found

cpphdrcheck: handle cc with arguments

also, do the test builds with ccflags, since I had some strange
results from the test builds, the test code would build without
ccflags, but not with, with errors deep within the system headers.

cpphdrcheck: support cc already being a C++ compiler

requires that the name contains "++"


  Commit: 0ada1362ce407acc883357cdfe5e2899d6c7a0cc
  
https://github.com/Perl/perl5/commit/0ada1362ce407acc883357cdfe5e2899d6c7a0cc
  Author: Tony Cook 
  Date:   2024-05-20 (Mon, 20 May 2024)

  Changed paths:
M t/porting/cpphdrcheck.t

  Log Message:
  ---
  cpphdrcheck: move reporting out of the probe functions

also remove fatality for not finding the C++ compiler


Compare: https://github.com/Perl/perl5/compare/e8501fbdc9d7...0ada1362ce40

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] c99ca7: cpphdrcheck: handle cc with arguments

2024-05-15 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/cpp-header-porting
  Home:   https://github.com/Perl/perl5
  Commit: c99ca76a699dabe6202b8f2fad801f70284a22fe
  
https://github.com/Perl/perl5/commit/c99ca76a699dabe6202b8f2fad801f70284a22fe
  Author: Tony Cook 
  Date:   2024-05-15 (Wed, 15 May 2024)

  Changed paths:
M t/porting/cpphdrcheck.t

  Log Message:
  ---
  cpphdrcheck: handle cc with arguments

also, do the test builds with ccflags, since I had some strange
results from the test builds, the test code would build without
ccflags, but not with, with errors deep within the system headers.


  Commit: e8501fbdc9d7764fc836bc1247c7f40dd9d6657e
  
https://github.com/Perl/perl5/commit/e8501fbdc9d7764fc836bc1247c7f40dd9d6657e
  Author: Tony Cook 
  Date:   2024-05-15 (Wed, 15 May 2024)

  Changed paths:
M t/porting/cpphdrcheck.t

  Log Message:
  ---
  cpphdrcheck: support cc already being a C++ compiler

requires that the name contains "++"


Compare: https://github.com/Perl/perl5/compare/7941cce171c7...e8501fbdc9d7

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 7941cc: cpphdrcheck: test even without -std found

2024-05-12 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/cpp-header-porting
  Home:   https://github.com/Perl/perl5
  Commit: 7941cce171c772c479e436577a7e8b7e771ec5be
  
https://github.com/Perl/perl5/commit/7941cce171c772c479e436577a7e8b7e771ec5be
  Author: Tony Cook 
  Date:   2024-05-13 (Mon, 13 May 2024)

  Changed paths:
M t/porting/cpphdrcheck.t

  Log Message:
  ---
  cpphdrcheck: test even without -std found



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] c808c1: cpphdrcheck.t: capture -V output, and fix Intel co...

2024-05-12 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/cpp-header-porting
  Home:   https://github.com/Perl/perl5
  Commit: c808c1690e3c042ce31278c0a843685581542d3e
  
https://github.com/Perl/perl5/commit/c808c1690e3c042ce31278c0a843685581542d3e
  Author: Tony Cook 
  Date:   2024-05-09 (Thu, 09 May 2024)

  Changed paths:
M t/porting/cpphdrcheck.t

  Log Message:
  ---
  cpphdrcheck.t: capture -V output, and fix Intel compiler match


  Commit: 6f83d2933fb13d55d99f8a4818bcf63c73f5309d
  
https://github.com/Perl/perl5/commit/6f83d2933fb13d55d99f8a4818bcf63c73f5309d
  Author: Tony Cook 
  Date:   2024-05-13 (Mon, 13 May 2024)

  Changed paths:
M t/porting/cpphdrcheck.t

  Log Message:
  ---
  cpphdrcheck: test without -std too


Compare: https://github.com/Perl/perl5/compare/435e917efb0e...6f83d2933fb1

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5]

2024-05-08 Thread Tony Cook via perl5-changes
  Branch: refs/heads/c++-header-porting
  Home:   https://github.com/Perl/perl5

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 435e91: t/porting/cpphdrcheck.t: improve error reporting

2024-05-07 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/cpp-header-porting
  Home:   https://github.com/Perl/perl5
  Commit: 435e917efb0edeac2667066b0faef6aa90ab5d69
  
https://github.com/Perl/perl5/commit/435e917efb0edeac2667066b0faef6aa90ab5d69
  Author: Tony Cook 
  Date:   2024-05-08 (Wed, 08 May 2024)

  Changed paths:
M t/porting/cpphdrcheck.t

  Log Message:
  ---
  t/porting/cpphdrcheck.t: improve error reporting

and make not finding a C++ compiler fail for now, to make it easier
to see the cases where we don't find one but expected to find one.



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] de470c: improve error reporting

2024-05-07 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/cpp-header-porting
  Home:   https://github.com/Perl/perl5
  Commit: de470c74038d699dc809b0645ac391b897c0db76
  
https://github.com/Perl/perl5/commit/de470c74038d699dc809b0645ac391b897c0db76
  Author: Tony Cook 
  Date:   2024-05-07 (Tue, 07 May 2024)

  Changed paths:
M t/porting/cpphdrcheck.t

  Log Message:
  ---
  improve error reporting


  Commit: 82777c7e89a97ea134c4514897cb34765bdff38b
  
https://github.com/Perl/perl5/commit/82777c7e89a97ea134c4514897cb34765bdff38b
  Author: Tony Cook 
  Date:   2024-05-08 (Wed, 08 May 2024)

  Changed paths:
M hints/cygwin.sh

  Log Message:
  ---
  hints/cygwin.sh: don't touch system symbol __STRICT_ANSI__

Adding _GNU_SOURCE, which was done much later, should give us the
GNU-ish symbols (though POSIX_C_SOURCE would be more general.)

I couldn't find the reason for this being added, but the C++
headers react badly to it:

In file included from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/iostream:38,
 from source.cpp:1:
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/x86_64-pc-cygwin/bits/c++config.h:573:2:
 warning: #warning "__STRICT_ANSI__ seems to have been undefined; this is not 
supported" [-Wcpp]
  573 | #warning "__STRICT_ANSI__ seems to have been undefined; this is not 
supported"
  |  ^~~
In file included from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/max_size_type.h:37,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/ranges_base.h:38,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/string_view:48,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/basic_string.h:48,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/string:55,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/locale_classes.h:40,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/ios_base.h:41,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/ios:42,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/ostream:38,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/iostream:39,
 from source.cpp:1:
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/numbers:139:9: error: unable to 
find numeric literal operator 'operator""Q'
  139 |   = 2.718281828459045235360287471352662498Q;
  | ^~~
...


Compare: https://github.com/Perl/perl5/compare/31f622baab79...82777c7e89a9

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] de470c: improve error reporting

2024-05-07 Thread Tony Cook via perl5-changes
  Branch: refs/heads/c++-header-porting
  Home:   https://github.com/Perl/perl5
  Commit: de470c74038d699dc809b0645ac391b897c0db76
  
https://github.com/Perl/perl5/commit/de470c74038d699dc809b0645ac391b897c0db76
  Author: Tony Cook 
  Date:   2024-05-07 (Tue, 07 May 2024)

  Changed paths:
M t/porting/cpphdrcheck.t

  Log Message:
  ---
  improve error reporting


  Commit: 82777c7e89a97ea134c4514897cb34765bdff38b
  
https://github.com/Perl/perl5/commit/82777c7e89a97ea134c4514897cb34765bdff38b
  Author: Tony Cook 
  Date:   2024-05-08 (Wed, 08 May 2024)

  Changed paths:
M hints/cygwin.sh

  Log Message:
  ---
  hints/cygwin.sh: don't touch system symbol __STRICT_ANSI__

Adding _GNU_SOURCE, which was done much later, should give us the
GNU-ish symbols (though POSIX_C_SOURCE would be more general.)

I couldn't find the reason for this being added, but the C++
headers react badly to it:

In file included from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/iostream:38,
 from source.cpp:1:
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/x86_64-pc-cygwin/bits/c++config.h:573:2:
 warning: #warning "__STRICT_ANSI__ seems to have been undefined; this is not 
supported" [-Wcpp]
  573 | #warning "__STRICT_ANSI__ seems to have been undefined; this is not 
supported"
  |  ^~~
In file included from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/max_size_type.h:37,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/ranges_base.h:38,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/string_view:48,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/basic_string.h:48,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/string:55,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/locale_classes.h:40,
 from 
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/bits/ios_base.h:41,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/ios:42,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/ostream:38,
 from /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/iostream:39,
 from source.cpp:1:
/usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/numbers:139:9: error: unable to 
find numeric literal operator 'operator""Q'
  139 |   = 2.718281828459045235360287471352662498Q;
  | ^~~
...


Compare: https://github.com/Perl/perl5/compare/de470c74038d%5E...82777c7e89a9

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 6f2be1: porting/cpphdrcheck.t: test perl's headers with C+...

2024-05-05 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/cpp-header-porting
  Home:   https://github.com/Perl/perl5
  Commit: 6f2be18f4239c3ad0c75902cfb24aecdd1e6d511
  
https://github.com/Perl/perl5/commit/6f2be18f4239c3ad0c75902cfb24aecdd1e6d511
  Author: Tony Cook 
  Date:   2024-05-06 (Mon, 06 May 2024)

  Changed paths:
M MANIFEST
A t/porting/cpphdrcheck.t

  Log Message:
  ---
  porting/cpphdrcheck.t: test perl's headers with C++ compilers


  Commit: d0d2562e56619a7e0959adefddb8aebdb181fe2d
  
https://github.com/Perl/perl5/commit/d0d2562e56619a7e0959adefddb8aebdb181fe2d
  Author: Tony Cook 
  Date:   2024-05-06 (Mon, 06 May 2024)

  Changed paths:
M t/porting/cpphdrcheck.t

  Log Message:
  ---
  t/porting/cpphdrcheck.t: fix finding config.h on windows


  Commit: 31f622baab7948f471bfa9676ffabe75eeecd772
  
https://github.com/Perl/perl5/commit/31f622baab7948f471bfa9676ffabe75eeecd772
  Author: Tony Cook 
  Date:   2024-05-06 (Mon, 06 May 2024)

  Changed paths:
M t/porting/cpphdrcheck.t

  Log Message:
  ---
  t/porting/cpphdrcheck.t: actually use ccflags


Compare: https://github.com/Perl/perl5/compare/6f2be18f4239%5E...31f622baab79

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 20fe13: hints/netbsd.sh: prevent noise when checking for -...

2024-05-04 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 20fe1382965ae05938569abde22746b73012fdb6
  
https://github.com/Perl/perl5/commit/20fe1382965ae05938569abde22746b73012fdb6
  Author: Tony Cook 
  Date:   2024-05-04 (Sat, 04 May 2024)

  Changed paths:
M hints/netbsd.sh

  Log Message:
  ---
  hints/netbsd.sh: prevent noise when checking for --whole-archive

https://www.nntp.perl.org/group/perl.perl5.porters/2024/04/msg268141.html



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 0d9e3b: perly LSTOPSUB: prevent a double op free between p...

2024-05-02 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 0d9e3bc6dbe88da0464ba4b77219ed5b7c276340
  
https://github.com/Perl/perl5/commit/0d9e3bc6dbe88da0464ba4b77219ed5b7c276340
  Author: Tony Cook 
  Date:   2024-05-02 (Thu, 02 May 2024)

  Changed paths:
M MANIFEST
M perly.act
M perly.h
M perly.tab
M perly.y
A t/lib/croak/parser

  Log Message:
  ---
  perly LSTOPSUB: prevent a double op free between parse stack and CV

The reeproducer resulted in the "block" OP being both on the parser
stack and attacked to the CV.  If an error occurred while parsing the
rest of the list operator clean up would release the OP as attached
to the CV, and the same OP on the parse stack, resulting in a double
free.

It's unclear to me whether bison is intended to support modifying
the parse stack entry like this, but it appears to work here.

Fixes #21724



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 6fafc5: Revert "testsuite.yml: workaround cygwin base addr...

2024-05-01 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 6fafc5042465478722cf21a0d46cbe5679be6750
  
https://github.com/Perl/perl5/commit/6fafc5042465478722cf21a0d46cbe5679be6750
  Author: Tony Cook 
  Date:   2024-05-02 (Thu, 02 May 2024)

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

  Log Message:
  ---
  Revert "testsuite.yml: workaround cygwin base address conflict in 5.39.10"

This reverts commit c635fa2209aa81381fc45f5e89f5b16144056521.

With the 5.39.11 version bump there's no longer any risk of this collision.



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] ed87f9: hints/dragonfly.sh: actually disable the POSIX 200...

2024-04-29 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: ed87f9270c45de838606a888d758bac000c334c8
  
https://github.com/Perl/perl5/commit/ed87f9270c45de838606a888d758bac000c334c8
  Author: Tony Cook 
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
M hints/dragonfly.sh

  Log Message:
  ---
  hints/dragonfly.sh: actually disable the POSIX 2008 locale API

ae3e9dd0b was intended to disable this API, due to a leak in the
DragonflyBSD implementation, but the wrong macro was used, which
I missed in review.

Use the right macro.



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 0598e4: perldelta for 6b628002d8

2024-04-23 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 0598e47f3370dd1ec767ac5234803dcb75995dbb
  
https://github.com/Perl/perl5/commit/0598e47f3370dd1ec767ac5234803dcb75995dbb
  Author: Tony Cook 
  Date:   2024-04-24 (Wed, 24 Apr 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for 6b628002d8



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 5b2c91: regcomp_study.c: merged value only used under -DDE...

2024-04-23 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 5b2c91c3c57e411ffed2b23039f769f30abb4d9f
  
https://github.com/Perl/perl5/commit/5b2c91c3c57e411ffed2b23039f769f30abb4d9f
  Author: Tony Cook 
  Date:   2024-04-24 (Wed, 24 Apr 2024)

  Changed paths:
M regcomp_study.c

  Log Message:
  ---
  regcomp_study.c: merged value only used under -DDEBUGGING

For a non-debugging build this would warn with clang 17:

regcomp_study.c:1067:9: warning: variable 'merged' set but not used 
[-Wunused-but-set-variable]
 1067 | U32 merged = 0;
  | ^


  Commit: 122500c227656f4f9334ca280614d721dcabacba
  
https://github.com/Perl/perl5/commit/122500c227656f4f9334ca280614d721dcabacba
  Author: Tony Cook 
  Date:   2024-04-24 (Wed, 24 Apr 2024)

  Changed paths:
M regcomp_trie.c

  Log Message:
  ---
  regcomp_trie: prevent wordlen value not used warning

This occurs with clang-17, and possibly other versions:

regcomp_trie.c:667:13: warning: variable 'wordlen' set but not used 
[-Wunused-but-set-variable]
  667 | U32 wordlen  = 0; /* required init */
  | ^

This happens because while the first loop in Perl_make_trie calculates
wordlen, mostly via the TRIE_READ_CHAR macro, that calculated value
isn't used.

The later loops do use the value of wordlen via the TRIE_HANDLE_WORD()
macro.

Unfortunately the use in TRIE_READ_CHAR() means we can't remove
this first definition, so suppress the warning.


Compare: https://github.com/Perl/perl5/compare/c37e28edf736...122500c22765

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] c37e28: allow porting/diag.t to detect messages from XSUBs...

2024-04-23 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: c37e28edf73655f7085d46bad8060a781d1bdfed
  
https://github.com/Perl/perl5/commit/c37e28edf73655f7085d46bad8060a781d1bdfed
  Author: Tony Cook 
  Date:   2024-04-24 (Wed, 24 Apr 2024)

  Changed paths:
M pod/perldiag.pod
M t/porting/diag.t

  Log Message:
  ---
  allow porting/diag.t to detect messages from XSUBs in class.c

and briefly document the undocumented messages it found.

Note that the "Odd number of arguments" message isn't suppressible,
I do not know if that is by design:

  $ ./perl -Ilib -Mfeature=class -e 'no warnings; class C { field $x:param; } 
C->new("x")'
  Odd number of arguments passed to "C" constructor at -e line 1.

Discovered when porting/diag.t didn't warn about my new message
in the fix for #22159



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 6b6280: report an error when making an object of an incomp...

2024-04-23 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 6b628002d8c3b4f27498101e8ec682207d5aa466
  
https://github.com/Perl/perl5/commit/6b628002d8c3b4f27498101e8ec682207d5aa466
  Author: Tony Cook 
  Date:   2024-04-24 (Wed, 24 Apr 2024)

  Changed paths:
M class.c
M pod/perldiag.pod
M t/lib/croak/class

  Log Message:
  ---
  report an error when making an object of an incomplete class

instead of asserting or crashing

Fixes #22159



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 67164c: perldelta updates

2024-04-17 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 67164c39687a916908b6322d361cdf3d86df59ac
  
https://github.com/Perl/perl5/commit/67164c39687a916908b6322d361cdf3d86df59ac
  Author: Tony Cook 
  Date:   2024-04-18 (Thu, 18 Apr 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta updates



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 3b03ff: allow perl to build with the re extension is static

2024-04-16 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 3b03ffb49b24a05e8de3844ea7e754df141b39cf
  
https://github.com/Perl/perl5/commit/3b03ffb49b24a05e8de3844ea7e754df141b39cf
  Author: Tony Cook 
  Date:   2024-04-17 (Wed, 17 Apr 2024)

  Changed paths:
M ext/re/Makefile.PL
M regcomp.h

  Log Message:
  ---
  allow perl to build with the re extension is static

Previously configuring with -Uusedl built successfully, but didn't
with -Dstatic_ext=re, now both build successfully.

Fixes #21550



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 93ed5f: yyl_dollar: we don't need to diagnose tick-in-id here

2024-04-16 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 93ed5f02b2505f3c4d5c6e24c317b5b92e5dcd5f
  
https://github.com/Perl/perl5/commit/93ed5f02b2505f3c4d5c6e24c317b5b92e5dcd5f
  Author: Tony Cook 
  Date:   2024-04-17 (Wed, 17 Apr 2024)

  Changed paths:
M t/lib/warnings/toke
M toke.c

  Log Message:
  ---
  yyl_dollar: we don't need to diagnose tick-in-id here

when scanning for an id for a heuristic.

Fixes #22145



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] eff57c: hv_undef_flags: eliminate spurious -Warray-bounds ...

2024-04-14 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: eff57c4d73898d2174f80490cb2efe2821f5ea46
  
https://github.com/Perl/perl5/commit/eff57c4d73898d2174f80490cb2efe2821f5ea46
  Author: Tony Cook 
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
M hv.c

  Log Message:
  ---
  hv_undef_flags: eliminate spurious -Warray-bounds warning

Eliminates:

In file included from perl.h:6205,
 from hv.c:35:
hv.c: In function ‘Perl_hv_undef_flags’:
hv.h:460:26: warning: array subscript [0, 9223372036854775807] is outside array 
bounds of ‘char[0]’ [-Warray-bounds]
  460 | #define HEK_FLAGS(hek)  (*((unsigned char 
*)(HEK_KEY(hek))+HEK_LEN(hek)+1))
  | 
~^~
embed.h:292:78: note: in definition of macro ‘hv_common’
  292 | mmon(a,b,c,d,e,f,g,h) Perl_hv_common(aTHX_ a,b,c,d,e,f,g,h)
  |^

hv.h:474:34: note: in expansion of macro ‘HEK_FLAGS’
  474 | #define HEK_UTF8(hek)   (HEK_FLAGS(hek) & HVhek_UTF8)
  |  ^
hv.h:579:55: note: in expansion of macro ‘HEK_UTF8’
  579 | hv_common((hv), NULL, HEK_KEY(hek), HEK_LEN(hek), HEK_UTF8(hek), \
  |   ^~~~
hv.c:2268:19: note: in expansion of macro ‘hv_deletehek’
 2268 | (void)hv_deletehek(PL_stashcache, HvNAME_HEK(hv), 
G_DISCARD);
  |   ^~~~

This does appear to be spurious, the gcc documentation claims not
to check array bounds on trailing 1 element arrays for backward
compatibility.

This warning would be reasonable if the hek itself was allocated on
the stack, part of an array of HEKs, or embedded in another struct,
but HvNAME_HEK() returns a pointer to a HEK, for which gcc has no
knowledge of the source.

This warning only appears in debugging builds, but the only
difference from non-debugging builds is the HEKfARG() within the
DEBUG_o(), which is a simple cast to (void *), which I don't see
having an effect on whether the compiler considers HEK itself as
part of a structure, or of unknown origin.

So I expect it's just a gcc bug, and there are know issues with this
warning.


  Commit: 1edc2b4ee3077fc72d6364edfe0281ea10aab252
  
https://github.com/Perl/perl5/commit/1edc2b4ee3077fc72d6364edfe0281ea10aab252
  Author: Tony Cook 
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
M locale.c

  Log Message:
  ---
  toggle_locale_i: eliminate NULL for %s format warning

The C99 printf() family of functions do not permit a NULL
pointer for the %s format specifier.

In this case, there's a NULL check done immediately afterwards,
allowing the compiler to detect that locale_to_restore_to could
be NULL.

While PerlIO_printf() (via sv_vcatpvfn_flags()) does allow NULL,
it isn't permitted by the standard implementation, so gcc warns.

Ideally the compiler would provide customisation hooks for this
warning, but it doesn't, and since the -Wformat family of
warnings are useful, do the minimal change to prevent it in
this case.


Compare: https://github.com/Perl/perl5/compare/a7b106d5563e...1edc2b4ee307

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] a7b106: perlhacktips: point at some more tools

2024-04-14 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: a7b106d5563e1b4fb906b378d558d9c68abba69e
  
https://github.com/Perl/perl5/commit/a7b106d5563e1b4fb906b378d558d9c68abba69e
  Author: Tony Cook 
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
M pod/perlhacktips.pod

  Log Message:
  ---
  perlhacktips: point at some more tools



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] a742fa: allow building with high-water mark to be independ...

2024-04-14 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: a742fa0e6169e9ee5576a516293d015390c2444d
  
https://github.com/Perl/perl5/commit/a742fa0e6169e9ee5576a516293d015390c2444d
  Author: Tony Cook 
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
M cop.h
M dump.c
M ext/XS-APItest/APItest.pm
M ext/XS-APItest/APItest.xs
M ext/XS-APItest/t/extend.t
M op.c
M perl.c
M perl.h
M pp.h
M pp_hot.c
M scope.c
M sv.c

  Log Message:
  ---
  allow building with high-water mark to be independent of -DDEBUGGING

This allows a debugging perl to be built with the high water mark
checks disabled, or a non-debugging perl to be built with the
high water marks enabled.

This should allow Debian, the reporter for #16607 to build both their
normal perl and debugperl with the same state of high water mark
checks and avoid the mismatch between a debugperl and non-debug
dynamic extension.

Fixes #16607



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 224c53: win32.c: suppress -Wcast-function-type warnings

2024-04-14 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 224c53df969893d76a3d94c4ce4e3684925f36a8
  
https://github.com/Perl/perl5/commit/224c53df969893d76a3d94c4ce4e3684925f36a8
  Author: Tony Cook 
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
M win32/win32.c

  Log Message:
  ---
  win32.c: suppress -Wcast-function-type warnings

This appears to be the only place these warnings are produced even
though win32/win32.c contains several other function type casts.

None of the non-warning casts use the "void (*)(void)" type that is
documented to suppress the warning, and adding such a cast to
the lines warning seems less safe to me, cast from a stdcall
function pointer to a cdecl function pointer and back.

So, just suppress the warning where I saw it.


  Commit: a33729fe9919fce96c2a5fd196825c4208b2cbe2
  
https://github.com/Perl/perl5/commit/a33729fe9919fce96c2a5fd196825c4208b2cbe2
  Author: Tony Cook 
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
M win32/win32.c

  Log Message:
  ---
  win32.c: don't call wcscpy() with in == out

Since both the input and output parameters are restrict qualified,
this would be invalid, and it is possibe for PerlDir_mapW() to return
its parameter.  This warned on gcc:

win32.c: In function 'win32_link':
win32.c:3712:40: warning: passing argument 1 to 'restrict'-qualified parameter 
aliases with argument 2 [-Wrestrict]
 3712 | ((aTHXa(PERL_GET_THX)), wcscpy(wOldName, 
PerlDir_mapW(wOldName)),
  |^~~~


Compare: https://github.com/Perl/perl5/compare/0e766d6b46e9...a33729fe9919

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 0e766d: perlrun: document the exit status for the -c option

2024-04-14 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 0e766d6b46e909a7f6bdb02c724ce0b051a47056
  
https://github.com/Perl/perl5/commit/0e766d6b46e909a7f6bdb02c724ce0b051a47056
  Author: Tony Cook 
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
M pod/perlrun.pod

  Log Message:
  ---
  perlrun: document the exit status for the -c option

Fixes #21686



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] cab7c3: Configure: eliminate some left over debug output

2024-04-11 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: cab7c329680aa887117b3e0568f000f7e5acf605
  
https://github.com/Perl/perl5/commit/cab7c329680aa887117b3e0568f000f7e5acf605
  Author: Tony Cook 
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
M Configure

  Log Message:
  ---
  Configure: eliminate some left over debug output

The LC_ALL syntax detection wrote some of what it detected to
the console with no labels.

On Linux this was:

  "=;"

for both lines, but I've seen more complex output on other systems.



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] c635fa: testsuite.yml: workaround cygwin base address conf...

2024-04-01 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: c635fa2209aa81381fc45f5e89f5b16144056521
  
https://github.com/Perl/perl5/commit/c635fa2209aa81381fc45f5e89f5b16144056521
  Author: Tony Cook 
  Date:   2024-04-02 (Tue, 02 Apr 2024)

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

  Log Message:
  ---
  testsuite.yml: workaround cygwin base address conflict in 5.39.10

Workaround for #22104

This will likely be reverted for 5.39.11


  Commit: 748d5f47d4c7fe30742f4d7dcef2ee27a2d613f2
  
https://github.com/Perl/perl5/commit/748d5f47d4c7fe30742f4d7dcef2ee27a2d613f2
  Author: Tony Cook 
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta: note the address space conflict on cygwin


Compare: https://github.com/Perl/perl5/compare/e2c324f7a9d3...748d5f47d4c7

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 49650d: perldelta for a2b66c25985f, save PL_comppad safely

2024-03-24 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 49650dc5422d71c3b8b8c29867d9f1af6a246a43
  
https://github.com/Perl/perl5/commit/49650dc5422d71c3b8b8c29867d9f1af6a246a43
  Author: Tony Cook 
  Date:   2024-03-25 (Mon, 25 Mar 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for a2b66c25985f, save PL_comppad safely



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] a2b66c: prepare_export_lexical: save PL_comppad safely

2024-03-24 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: a2b66c25985f6e0bb428250eaa31ef1d288f7785
  
https://github.com/Perl/perl5/commit/a2b66c25985f6e0bb428250eaa31ef1d288f7785
  Author: Tony Cook 
  Date:   2024-03-25 (Mon, 25 Mar 2024)

  Changed paths:
M builtin.c
M lib/builtin.t

  Log Message:
  ---
  prepare_export_lexical: save PL_comppad safely

When the pad being saved and the pad for PL_compcv is the same,
in some cases the actual exports would result in reallocating the
AvARRAY() for the saved PL_comppad.

The LEAVE in finish_export_lexical() would restore the old PL_comppad
(which is fine) and the pre-reallocation PL_curpad (which isn't fine).

This would later panic.

SAVECOMPPAD; restores PL_comppad on LEAVE and then restores PL_curpad
from PL_comppad, preventing the desync between those values.

It's unclear to me why only the save_BEGINs; causes this, but the fix
does fix a real problem and prevents the panics that I'm aware of
here.

Fixes #21981



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 4ec23d: Revert "testsuite.yml: fix ASAN build tests"

2024-03-24 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 4ec23de8b38b3a0432d4c73e4c13f7a1c1f7cd6c
  
https://github.com/Perl/perl5/commit/4ec23de8b38b3a0432d4c73e4c13f7a1c1f7cd6c
  Author: Tony Cook 
  Date:   2024-03-25 (Mon, 25 Mar 2024)

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

  Log Message:
  ---
  Revert "testsuite.yml: fix ASAN build tests"

This reverts commit d1971b5f57c5a31b1d61d7b2e5816942d69ed954.

ctions/runner-images#9491 has been fixed.



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] d1971b: testsuite.yml: fix ASAN build tests

2024-03-17 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: d1971b5f57c5a31b1d61d7b2e5816942d69ed954
  
https://github.com/Perl/perl5/commit/d1971b5f57c5a31b1d61d7b2e5816942d69ed954
  Author: Tony Cook 
  Date:   2024-03-18 (Mon, 18 Mar 2024)

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

  Log Message:
  ---
  testsuite.yml: fix ASAN build tests

This works around actions/runner-images#9491

Apparently a recent Ubuntu update changed the ASLR entropy to
use more bits which is incompatible with ASAN as shipped with
Ubuntu.

This adjusts the entropy bits to be compatible with ASAN.

Thanks to ilmari who found the ticket linked above.



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 9213b2: Silence compilation warnings (PR 21925).

2024-03-05 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 9213b22726eeed2117a341ff34d7f0eadeb734c3
  
https://github.com/Perl/perl5/commit/9213b22726eeed2117a341ff34d7f0eadeb734c3
  Author: sisyphus 
  Date:   2024-03-06 (Wed, 06 Mar 2024)

  Changed paths:
M win32/win32.c

  Log Message:
  ---
  Silence compilation warnings (PR 21925).



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] abac09: bump $DynaLoader::VERSION

2024-02-28 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: abac0992d7f83a488e5ef71af60b424cd52d47e1
  
https://github.com/Perl/perl5/commit/abac0992d7f83a488e5ef71af60b424cd52d47e1
  Author: Tony Cook 
  Date:   2024-02-29 (Thu, 29 Feb 2024)

  Changed paths:
M ext/DynaLoader/DynaLoader_pm.PL

  Log Message:
  ---
  bump $DynaLoader::VERSION



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] d3f42b: DynaLoader: dl_dyld.xs: don't undef bool

2024-02-28 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: d3f42b8d3823ce40f4f62758562ad4c02ffa3e27
  
https://github.com/Perl/perl5/commit/d3f42b8d3823ce40f4f62758562ad4c02ffa3e27
  Author: Tony Cook 
  Date:   2024-02-29 (Thu, 29 Feb 2024)

  Changed paths:
M ext/DynaLoader/dl_dyld.xs

  Log Message:
  ---
  DynaLoader: dl_dyld.xs: don't undef bool

I expect this was added when we added our own bool, and before
we used bool so liberally ourselves.  Now dl_dyld.xs fails to
compile, since MY_CXT_CLONE indirectly uses UNLIKELY() which
casts to bool.

Tested locally with:

  ./Configure -des -Dusedevel -Dusethreads -Ddlsrc=dl_dyld.xs

on a modern Darwin, which failed before this change and builds
after.

Based on work done by Sevan Janiyan in #21751.

Fixes #21751



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5]

2024-02-21 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21661-no-warn-ckdead
  Home:   https://github.com/Perl/perl5

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5]

2024-02-21 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21661-no-warn-ck
  Home:   https://github.com/Perl/perl5

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 30f39e: add tests for #21661

2024-02-21 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21661-no-warn-ckdead
  Home:   https://github.com/Perl/perl5
  Commit: 30f39e5b9b181d9a7897f946ba8f8dbe91b31d4d
  
https://github.com/Perl/perl5/commit/30f39e5b9b181d9a7897f946ba8f8dbe91b31d4d
  Author: Tony Cook 
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
M t/re/pat.t

  Log Message:
  ---
  add tests for #21661


  Commit: 13d5ca7ee2d8a60bbe4d836cc7642499932625d2
  
https://github.com/Perl/perl5/commit/13d5ca7ee2d8a60bbe4d836cc7642499932625d2
  Author: Tony Cook 
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
M regcomp.c
M regcomp_internal.h

  Log Message:
  ---
  safer cleanup when failing to compile regexps

Prior to this commit when producing a warning the regexp compiler
would check if the warning category was marked as FATAL, and if it was
it would add clean up to the save stack to release buffers used during
compilation and to release the working REGEXP SV.

This causes two type of problems:

- if an error was already queued, Perl_ck_warner() returns even if
  the warning is fatal, this meant that the normal clean up code
  Perl_re_op_compile() would also run, resulting in a double free
  of the buffers.

- without fatal warnings, if a $SIG{__WARN__} handler died, the
  buffers and the working REGEXP SV would leak.

Avoid this by using SAVEDESTRUCTOR_X() to release the memory and
optionally the SV at the end of scope.

Fixes #21661


  Commit: 1d8b2c654a9e60c4d8c64eb46056bc52001d0575
  
https://github.com/Perl/perl5/commit/1d8b2c654a9e60c4d8c64eb46056bc52001d0575
  Author: Tony Cook 
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
M regcomp_internal.h

  Log Message:
  ---
  regcomp_internal.h: simplify vFAIL*() macros

These can be simpler, and since we allow use of __VA_ARGS__
we can consolidate Simple_vFAIL[1-4]() into Simple_vFAILn()


  Commit: 2016cd18977423d9e66d50214e319a6ee6702298
  
https://github.com/Perl/perl5/commit/2016cd18977423d9e66d50214e319a6ee6702298
  Author: Tony Cook 
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
M regcomp_internal.h

  Log Message:
  ---
  regcomp_internal.h: removed unused PREPARE_TO_DIE

We are now always prepared for death.


Compare: https://github.com/Perl/perl5/compare/30f39e5b9b18%5E...2016cd189774

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 293793: perldelta f2d6099: no "bareword_filehandles" and c...

2024-02-21 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 293793e69904e5f58f12e4ce7088be431021e49b
  
https://github.com/Perl/perl5/commit/293793e69904e5f58f12e4ce7088be431021e49b
  Author: Tony Cook 
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta f2d6099: no "bareword_filehandles" and class barewords



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] f2d609: no bareword_filehandes: don't look up class barewo...

2024-02-21 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: f2d609912578dcbaf0c2c9a8901724f72bb276c4
  
https://github.com/Perl/perl5/commit/f2d609912578dcbaf0c2c9a8901724f72bb276c4
  Author: Tony Cook 
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
M embed.fnc
M embed.h
M lib/B/Op_private.pm
M op.c
M opcode.h
M pp_hot.c
M proto.h
M regen/op_private
M t/lib/feature/bareword_filehandles

  Log Message:
  ---
  no bareword_filehandes: don't look up class barewords as handles

This prevents SomeBareword from being looked up as a filehandle:

  no feature "bareword_filehandles";
  SomeBareword->method();

Since "bareword_filehandles" is explicitly about bareword handles,
it does not prevent other string to object/class look ups from
resolving the class as a filehandle, eg for the following:

  "SomeLiteral"->method();
  my $x = "SomeVariable";
  $x->method();

both are looked up as file handles per normal.

Note that in any of these cases, with or without the
bareword_filehandles feature, if the name is a bareword that
has been resolved as a class name since the last time the
stash cache was cleared, it will be resolved as a class name,
not a filehandle.

Fixes #19426

# Conflicts:
#   opcode.h

# Conflicts:
#   opcode.h



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 391c8c: perldelta 4fc2379: make a new stub to clone into w...

2024-02-20 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 391c8c36f64175c2247756f4cef3dc27b4798265
  
https://github.com/Perl/perl5/commit/391c8c36f64175c2247756f4cef3dc27b4798265
  Author: Tony Cook 
  Date:   2024-02-21 (Wed, 21 Feb 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta 4fc2379: make a new stub to clone into when pushing a new pad



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] 4fc237: make a new stub to clone into when pushing a new pad

2024-02-19 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 4fc2379a01266cf71da777023e603d44e5cccf6e
  
https://github.com/Perl/perl5/commit/4fc2379a01266cf71da777023e603d44e5cccf6e
  Author: Tony Cook 
  Date:   2024-02-20 (Tue, 20 Feb 2024)

  Changed paths:
M pad.c
M t/op/lexsub.t

  Log Message:
  ---
  make a new stub to clone into when pushing a new pad

This previously put the same CV into the inner pad, so on a
recursive call into the owning sub, from this sub, this CV would
still be active, and the attempt to clone into the still busy CV
would throw an error.

Fixes #18606



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications


[Perl/perl5] b1b37a: perlfunc: document relationship between wait() and...

2024-02-14 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: b1b37a9c9acbf977eaca8b5dcf6a4ccfa257b503
  
https://github.com/Perl/perl5/commit/b1b37a9c9acbf977eaca8b5dcf6a4ccfa257b503
  Author: Tony Cook 
  Date:   2024-02-15 (Thu, 15 Feb 2024)

  Changed paths:
M pod/perlfunc.pod

  Log Message:
  ---
  perlfunc: document relationship between wait() and waitpid()

Finally fixes #15108, which was mostly fixed by mauke in a6b6b8e
and 237516c.




[Perl/perl5] 6ea84e: pad_add_name_pvn(): the name is in UTF-8

2024-02-13 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 6ea84ede02e57601e75b337921ae58f895d8a21c
  
https://github.com/Perl/perl5/commit/6ea84ede02e57601e75b337921ae58f895d8a21c
  Author: Tony Cook 
  Date:   2024-02-14 (Wed, 14 Feb 2024)

  Changed paths:
M pad.c

  Log Message:
  ---
  pad_add_name_pvn(): the name is in UTF-8

This came up in discussion for #21927




[Perl/perl5] 07a53d: win32/GNUmakefile: only use gcc warnings for the p...

2024-02-04 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 07a53dca6ee0b9c82acfb8d777fe4e7cc6aae661
  
https://github.com/Perl/perl5/commit/07a53dca6ee0b9c82acfb8d777fe4e7cc6aae661
  Author: Tony Cook 
  Date:   2024-02-05 (Mon, 05 Feb 2024)

  Changed paths:
M win32/GNUmakefile

  Log Message:
  ---
  win32/GNUmakefile: only use gcc warnings for the perl binary sources

Fixes #21873




[Perl/perl5] 12bfaf: [inline.h] Silence "[-Wunknown-pragmas]" warnings ...

2024-01-30 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 12bfaf55b1cd5d72a7381be53a14e480fa3e70da
  
https://github.com/Perl/perl5/commit/12bfaf55b1cd5d72a7381be53a14e480fa3e70da
  Author: sisyphus 
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
M inline.h

  Log Message:
  ---
  [inline.h] Silence "[-Wunknown-pragmas]" warnings in MinGW builds.




[Perl/perl5] 94664d: XS::APItest: don't allow a NULL AV * through

2024-01-30 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 94664de147ae2d0866c8f79a7dce7ea237bc880a
  
https://github.com/Perl/perl5/commit/94664de147ae2d0866c8f79a7dce7ea237bc880a
  Author: Tony Cook 
  Date:   2024-01-31 (Wed, 31 Jan 2024)

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

  Log Message:
  ---
  XS::APItest: don't allow a NULL AV * through

e6c95c59c changed how av is initialised in multicall_return,
leaving it possible for it to be NULL after the switch.

Of course the values of "context" for that are invalid, so throw
an error.  This should also resolve this for Coverity and perhaps
other static analysis.

cid 480208




[Perl/perl5] 527e76: win32/GNUmakefile: enable warnings for gcc

2024-01-16 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 527e765cf579b4374cbeb60151f3d7bbb138bdf1
  
https://github.com/Perl/perl5/commit/527e765cf579b4374cbeb60151f3d7bbb138bdf1
  Author: Tony Cook 
  Date:   2024-01-17 (Wed, 17 Jan 2024)

  Changed paths:
M win32/GNUmakefile

  Log Message:
  ---
  win32/GNUmakefile: enable warnings for gcc

Warnings are already enabled for MSVC, so enable them for GCC too.

-Wformat is disabled since the default "__printf__" format checker
doesn't understand the C99-isms like "%zd", resulting in many spurious
warnings.  The __gnu_printf__ checker does understand them, but it
doesn't understand the Windows specific "%I64d" and similar formats.




[Perl/perl5] 745153: perldelta for 11c545feea

2024-01-10 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 745153a54e6f83aa095b21c98a19677792d8843b
  
https://github.com/Perl/perl5/commit/745153a54e6f83aa095b21c98a19677792d8843b
  Author: Tony Cook 
  Date:   2024-01-11 (Thu, 11 Jan 2024)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for 11c545feea




[Perl/perl5] 11c545: XSUB.h: use Stack_off_t for AX and items

2024-01-10 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 11c545feeab1b822b7ebf4fca92645a4bfcf49b5
  
https://github.com/Perl/perl5/commit/11c545feeab1b822b7ebf4fca92645a4bfcf49b5
  Author: Tony Cook 
  Date:   2024-01-11 (Thu, 11 Jan 2024)

  Changed paths:
M XSUB.h
M embed.fnc
M proto.h
M util.c

  Log Message:
  ---
  XSUB.h: use Stack_off_t for AX and items

I hadn't expected code to be taking pointers or references to AX,
which turned out to be wrong, so make them Stack_off_t.

This allows XS::Framework or similar code to build with a default
build of perl, but it will still fail to build if perl is built
with -DPERL_STACK_OFFSET_SSIZET, which can only be fixed by updating
XS::Framework to use Stack_off_t itself.

Fixes #21782




[Perl/perl5] afe3e6: allow some basic infrastructure to load with -Duse...

2024-01-03 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: afe3e67fb0863443a08b1e2f0d9aada21c79a279
  
https://github.com/Perl/perl5/commit/afe3e67fb0863443a08b1e2f0d9aada21c79a279
  Author: Tony Cook 
  Date:   2024-01-04 (Thu, 04 Jan 2024)

  Changed paths:
M TestInit.pm
M regen/embed_lib.pl
M t/test.pl

  Log Message:
  ---
  allow some basic infrastructure to load with -Dusedefaultstrict

The changes to t/test.pl appear to be real bugs.

This allows `make test_harness` to run, but many tests will still
fail under -Dusedefaultstrict

This addresses #21732 but does not fix it.  I'm unsure how
supported that build option is.




[Perl/perl5] 06c1b7: pp_backtick: remove RC_STACK wrapper and use the n...

2024-01-03 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 06c1b785f4f2327eaae8427ba0077b1c3675df93
  
https://github.com/Perl/perl5/commit/06c1b785f4f2327eaae8427ba0077b1c3675df93
  Author: Tony Cook 
  Date:   2024-01-04 (Thu, 04 Jan 2024)

  Changed paths:
M pp_sys.c

  Log Message:
  ---
  pp_backtick: remove RC_STACK wrapper and use the new APIs




[Perl/perl5] 539477: return doesn't allow an indirect object

2023-12-18 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 539477602f9633bb277ebc3d244b50958df79b0f
  
https://github.com/Perl/perl5/commit/539477602f9633bb277ebc3d244b50958df79b0f
  Author: Tony Cook 
  Date:   2023-12-19 (Tue, 19 Dec 2023)

  Changed paths:
M op.c
M pod/perldiag.pod
M t/lib/croak/op

  Log Message:
  ---
  return doesn't allow an indirect object

Since return isn't actually a function, I didn't think the "function"
part of the original message applied.

Fixes #21716


  Commit: f41b73e7bcd775aff00cf861911c45b196feed39
  
https://github.com/Perl/perl5/commit/f41b73e7bcd775aff00cf861911c45b196feed39
  Author: Tony Cook 
  Date:   2023-12-19 (Tue, 19 Dec 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for the #21716 fix


Compare: https://github.com/Perl/perl5/compare/e1e351e89a16...f41b73e7bcd7


[Perl/perl5] 973d1d: win32/Makefiles: don't try to be clever with modif...

2023-12-11 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 973d1d344ff666b7e375724e8c1054e524171066
  
https://github.com/Perl/perl5/commit/973d1d344ff666b7e375724e8c1054e524171066
  Author: Tony Cook 
  Date:   2023-12-12 (Tue, 12 Dec 2023)

  Changed paths:
M MANIFEST
M win32/GNUmakefile
M win32/Makefile
R win32/set_depend_modtime.pl

  Log Message:
  ---
  win32/Makefiles: don't try to be clever with modification times

When I re-worked this I tried to reduce the amount of rebuilding
needed in some cases, but this has caused other problems, so
simplify.

Fixes #21680




[Perl/perl5] 4fe5e3: win32/GNUmakefile: disable the .y to .c implicit rule

2023-12-10 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 4fe5e3d24be0f367ee174df0a683b7c8b3d2d9ed
  
https://github.com/Perl/perl5/commit/4fe5e3d24be0f367ee174df0a683b7c8b3d2d9ed
  Author: Tony Cook 
  Date:   2023-12-11 (Mon, 11 Dec 2023)

  Changed paths:
M win32/GNUmakefile

  Log Message:
  ---
  win32/GNUmakefile: disable the .y to .c implicit rule

If perly.y happens to be newer than perly.c gmake 4.4.1 wouldn't
bother trying to build the .c from .y, but it would delete the .c
as an intermediate anyway.

Fixes #21651




[Perl/perl5] b75ca1: perldelta for 01b60077c518

2023-12-07 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: b75ca11bea6a96aed3fcd32839f97d5c18e4c58f
  
https://github.com/Perl/perl5/commit/b75ca11bea6a96aed3fcd32839f97d5c18e4c58f
  Author: Tony Cook 
  Date:   2023-12-08 (Fri, 08 Dec 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for 01b60077c518




[Perl/perl5] 01b600: allow "used only once" warnings to be fatal

2023-12-07 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 01b60077c5188e465b1b2eeb5d24b79ed1e4cb95
  
https://github.com/Perl/perl5/commit/01b60077c5188e465b1b2eeb5d24b79ed1e4cb95
  Author: Tony Cook 
  Date:   2023-12-08 (Fri, 08 Dec 2023)

  Changed paths:
M embed.fnc
M embed.h
M gv.c
M gv.h
M proto.h
M t/lib/warnings/gv
M util.c

  Log Message:
  ---
  allow "used only once" warnings to be fatal

"used only once" warnings are special, instead of being emitted at
the code where the name in question is used, they are emitted during
a scan of the symbol table done after parsing has finished.

This meant that any FATAL flags set in the COP for the parse point of
the name is no longer in scope, so the warnings we emit can't be
treated as fatal.

To make them behave as FATAL set a new flag on the name if fatal
WARN_ONCE warnings are enabled and use that to dispatch the warnings
as normal or fatally when we do the symbol table scan.

I originally approached the dispatch as fatal or non-fatal by messing
around with cop_warnings, but that was dumb, and I went for a much
simpler change.

Fixes #13814




[Perl/perl5] 93f4c2: IO: Update Changes

2023-12-07 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 93f4c298b9b960f8437d0ef403aba3e6f054733c
  
https://github.com/Perl/perl5/commit/93f4c298b9b960f8437d0ef403aba3e6f054733c
  Author: Tony Cook 
  Date:   2023-12-08 (Fri, 08 Dec 2023)

  Changed paths:
M dist/IO/ChangeLog

  Log Message:
  ---
  IO: Update Changes




[Perl/perl5] 7f3e25: dist/IO: move binmode from IO::File to IO::Handle

2023-12-07 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 7f3e25ac9c307164201ecafd005b453668f5e75f
  
https://github.com/Perl/perl5/commit/7f3e25ac9c307164201ecafd005b453668f5e75f
  Author: Tony Cook 
  Date:   2023-12-08 (Fri, 08 Dec 2023)

  Changed paths:
M MANIFEST
M dist/IO/lib/IO/File.pm
M dist/IO/lib/IO/Handle.pm
A dist/IO/t/io_handle.t

  Log Message:
  ---
  dist/IO: move binmode from IO::File to IO::Handle

since you can binmode() any handle.

Fixes #17457 which is most of this change, I only added tests, such
as they are.




[Perl/perl5] 486aff: perldelta for 412d75ef55

2023-12-06 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 486affe730619decbdffd7b87161c117f57c8b11
  
https://github.com/Perl/perl5/commit/486affe730619decbdffd7b87161c117f57c8b11
  Author: Tony Cook 
  Date:   2023-12-07 (Thu, 07 Dec 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for 412d75ef55




[Perl/perl5] 412d75: skip porting/libperl.t on maint releases

2023-12-06 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 412d75ef55319856182b7e20ce0079362dfce41e
  
https://github.com/Perl/perl5/commit/412d75ef55319856182b7e20ce0079362dfce41e
  Author: Tony Cook 
  Date:   2023-12-07 (Thu, 07 Dec 2023)

  Changed paths:
M t/porting/libperl.t

  Log Message:
  ---
  skip porting/libperl.t on maint releases

maint-* branches, whether supported or not, may not be updated to
handle changes to nm's output due to updates to the operating system
or toolchain.

The same applies doubly to release tarballs.

So skip this test for maint/version numbers.

Keep the test for devel releases, since they have limited support
windows anyway, and we want this test to be done where possible.

Fixes #21677




[Perl/perl5] 20b929: perldelta for fea90cfbe1f

2023-12-04 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 20b9297558d49b1ea3a549afe4f753b148f26f99
  
https://github.com/Perl/perl5/commit/20b9297558d49b1ea3a549afe4f753b148f26f99
  Author: Tony Cook 
  Date:   2023-12-05 (Tue, 05 Dec 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for fea90cfbe1f




[Perl/perl5] fea90c: grow the tmps (mortal) stack exponentially rather ...

2023-12-04 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: fea90cfbe1f221d50be90ca5ceb0c6c7f121e442
  
https://github.com/Perl/perl5/commit/fea90cfbe1f221d50be90ca5ceb0c6c7f121e442
  Author: Tony Cook 
  Date:   2023-12-05 (Tue, 05 Dec 2023)

  Changed paths:
M scope.c

  Log Message:
  ---
  grow the tmps (mortal) stack exponentially rather than linearly

As with the value stack and the save stack, this gives us constant
amortized growth per element.

After this patch the profiler shows the "SvPV_shrink_to_cur(sv)"
and "sv = sv_2mortal(newSV(80))" calls in do_readline as the
hotspots for the io unheated test case, using 55% of the measured
time in total.

Fixes #21654




[Perl/perl5] a28a6c: add tests for #21661

2023-12-03 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21661-no-warn-ck
  Home:   https://github.com/Perl/perl5
  Commit: a28a6c184ced58a358f2bb28efebd8eabafa005e
  
https://github.com/Perl/perl5/commit/a28a6c184ced58a358f2bb28efebd8eabafa005e
  Author: Tony Cook 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M t/re/pat.t

  Log Message:
  ---
  add tests for #21661


  Commit: 72efebc0b5e4d07ff8bb47c2f7478ceda031dca3
  
https://github.com/Perl/perl5/commit/72efebc0b5e4d07ff8bb47c2f7478ceda031dca3
  Author: Tony Cook 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M regcomp.c
M regcomp_internal.h

  Log Message:
  ---
  safer cleanup when failing to compile regexps

Prior to this commit when producing a warning the regexp compiler
would check if the warning category was marked as FATAL, and if it was
it would add clean up to the save stack to release buffers used during
compilation and to release the working REGEXP SV.

This causes two type of problems:

- if an error was already queued, Perl_ck_warner() returns even if
  the warning is fatal, this meant that the normal clean up code
  Perl_re_op_compile() would also run, resulting in a double free
  of the buffers.

- without fatal warnings, if a $SIG{__WARN__} handler died, the
  buffers and the working REGEXP SV would leak.

Avoid this by using SAVEDESTRUCTOR_X() to release the memory and
optionally the SV at the end of scope.

Fixes #21661


Compare: https://github.com/Perl/perl5/compare/659ff22d9e1d...72efebc0b5e4


[Perl/perl5] 80c17c: add tests for #21661

2023-11-29 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21661-no-warn-ck
  Home:   https://github.com/Perl/perl5
  Commit: 80c17cc134eaeddd0f4b244925b21b222a16828e
  
https://github.com/Perl/perl5/commit/80c17cc134eaeddd0f4b244925b21b222a16828e
  Author: Tony Cook 
  Date:   2023-11-30 (Thu, 30 Nov 2023)

  Changed paths:
M t/re/pat.t

  Log Message:
  ---
  add tests for #21661


  Commit: 659ff22d9e1d313fbf78793c9a180ded94748976
  
https://github.com/Perl/perl5/commit/659ff22d9e1d313fbf78793c9a180ded94748976
  Author: Tony Cook 
  Date:   2023-11-30 (Thu, 30 Nov 2023)

  Changed paths:
M regcomp.c
M regcomp_internal.h

  Log Message:
  ---
  safer cleanup when failing to compile regexps

Prior to this commit when producing a warning the regexp compiler
would check if the warning was marked as FATAL, and if it was it
would add clean up to the save stack to release buffers used
during compilation and to release the working REGEXP SV.

This cause two type of problems:

- if an error was already queued, Perl_ck_warner() returns even if
  the warning is fatal, this meant that the normal clean up code
  Perl_re_op_compile() would also run, resulting in a double free
  of the buffers.

- without fatal warnings, if a $SIG{__WARN__} handler died, the
  buffers and the working REGEXP SV would leak.

Workaround this by using SAVEDESTRUCTOR_X() to release the memory
and optionally the SV at the end of scope.

Fixes #21661


Compare: https://github.com/Perl/perl5/compare/cf0a1dd00724...659ff22d9e1d


[Perl/perl5] cf0a1d: safer cleanup when failing to compile regexps

2023-11-28 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21661-no-warn-ck
  Home:   https://github.com/Perl/perl5
  Commit: cf0a1dd00724c70526c707cd2fdd66d4e378829f
  
https://github.com/Perl/perl5/commit/cf0a1dd00724c70526c707cd2fdd66d4e378829f
  Author: Tony Cook 
  Date:   2023-11-29 (Wed, 29 Nov 2023)

  Changed paths:
M regcomp.c
M regcomp_internal.h

  Log Message:
  ---
  safer cleanup when failing to compile regexps

(needs more commit message, I want CI/smokes)

Fixes #21661




[Perl/perl5] 230737: skip the actual performance check with ASAN

2023-11-28 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21654-N-squared-slow
  Home:   https://github.com/Perl/perl5
  Commit: 2307373e72460121d92d25b3e1b0594ce77605e2
  
https://github.com/Perl/perl5/commit/2307373e72460121d92d25b3e1b0594ce77605e2
  Author: Tony Cook 
  Date:   2023-11-29 (Wed, 29 Nov 2023)

  Changed paths:
M t/perf/tmps.t

  Log Message:
  ---
  skip the actual performance check with ASAN

The seems to greatly extend the runtime.




[Perl/perl5] 1adeb0: perlport: -S on Win32 has been meaningful since 01...

2023-11-28 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 1adeb0c3413cc3f2f5971c6be74f7f4ae0436f9c
  
https://github.com/Perl/perl5/commit/1adeb0c3413cc3f2f5971c6be74f7f4ae0436f9c
  Author: Tony Cook 
  Date:   2023-11-29 (Wed, 29 Nov 2023)

  Changed paths:
M pod/perlport.pod

  Log Message:
  ---
  perlport: -S on Win32 has been meaningful since 01052a1d7


  Commit: e453f6823e2f2dd36f28e74dcd5c9298eb272667
  
https://github.com/Perl/perl5/commit/e453f6823e2f2dd36f28e74dcd5c9298eb272667
  Author: Tony Cook 
  Date:   2023-11-29 (Wed, 29 Nov 2023)

  Changed paths:
M pod/perlport.pod

  Log Message:
  ---
  perlport: windows strange behaviour with . at the end of names

Fixes #14687


  Commit: c9e6b691e26f5b290e971d56288ffce03df7bc6a
  
https://github.com/Perl/perl5/commit/c9e6b691e26f5b290e971d56288ffce03df7bc6a
  Author: Tony Cook 
  Date:   2023-11-29 (Wed, 29 Nov 2023)

  Changed paths:
M pod/perlport.pod

  Log Message:
  ---
  perlport: -l is now meaningful on Win32


Compare: https://github.com/Perl/perl5/compare/0bdf161f3cc8...c9e6b691e26f


[Perl/perl5] 3e3ef4: skip the actual performance check with ASAN

2023-11-27 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21654-N-squared-slow
  Home:   https://github.com/Perl/perl5
  Commit: 3e3ef48e030e62f49f1b1fffc1e574c3bdea6450
  
https://github.com/Perl/perl5/commit/3e3ef48e030e62f49f1b1fffc1e574c3bdea6450
  Author: Tony Cook 
  Date:   2023-11-28 (Tue, 28 Nov 2023)

  Changed paths:
M t/perf/tmps.t

  Log Message:
  ---
  skip the actual performance check with ASAN

The seems to greatly extend the runtime.




[Perl/perl5] 55b088: TODO test the performance of growing the tmps stack

2023-11-27 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21654-N-squared-slow
  Home:   https://github.com/Perl/perl5
  Commit: 55b0882f99bb41f26378e91d619e77707a044e74
  
https://github.com/Perl/perl5/commit/55b0882f99bb41f26378e91d619e77707a044e74
  Author: Tony Cook 
  Date:   2023-11-27 (Mon, 27 Nov 2023)

  Changed paths:
M MANIFEST
A t/perf/tmps.t

  Log Message:
  ---
  TODO test the performance of growing the tmps stack


  Commit: 7a28defe93b9bb8f3944648692c5d01ac486aed1
  
https://github.com/Perl/perl5/commit/7a28defe93b9bb8f3944648692c5d01ac486aed1
  Author: Tony Cook 
  Date:   2023-11-27 (Mon, 27 Nov 2023)

  Changed paths:
M scope.c
M t/perf/tmps.t

  Log Message:
  ---
  grow the tmps (mortal) stack exponentially rather than linearly

As with the value stack and the save stack, this gives us constant
amortized growth per element.

After this patch the profiler shows the "SvPV_shrink_to_cur(sv)"
and "sv = sv_2mortal(newSV(80))" calls in do_readline as the
hotspots for the io unheated test case, using 55% of the measured
time in total.

Fixes #21654


Compare: https://github.com/Perl/perl5/compare/55b0882f99bb%5E...7a28defe93b9


[Perl/perl5] ff1f9f: Fix read/write past buffer end: perl-security#140

2023-11-26 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: ff1f9f59360afeebd6f75ca1502f5c3ebf077da3
  
https://github.com/Perl/perl5/commit/ff1f9f59360afeebd6f75ca1502f5c3ebf077da3
  Author: Karl Williamson 
  Date:   2023-11-26 (Sun, 26 Nov 2023)

  Changed paths:
M regcomp.c
M t/re/pat_advanced.t

  Log Message:
  ---
  Fix read/write past buffer end: perl-security#140

A package name may be specified in a \p{...} regular expression
construct.  If unspecified, "utf8::" is assumed, which is the package
all official Unicode properties are in.  By specifying a different
package, one can create a user-defined property with the same
unqualified name as a Unicode one.  Such a property is defined by a sub
whose name begins with "Is" or "In", and if the sub wishes to refer to
an official Unicode property, it must explicitly specify the "utf8::".
S_parse_uniprop_string() is used to parse the interior of both \p{} and
the user-defined sub lines.

In S_parse_uniprop_string(), it parses the input "name" parameter,
creating a modified copy, "lookup_name", malloc'ed with the same size as
"name".  The modifications are essentially to create a canonicalized
version of the input, with such things as extraneous white-space
stripped off.  I found it convenient to strip off the package specifier
"utf8::".  To to so, the code simply pretends "lookup_name" begins just
after the "utf8::", and adjusts various other values to compensate.
However, it missed the adjustment of one required one.

This is only a problem when the property name begins with "perl" and
isn't "perlspace" nor "perlword".  All such ones are undocumented
internal properties.

What happens in this case is that the input is reparsed with slightly
different rules in effect as to what is legal versus illegal.  The
problem is that "lookup_name" no longer is pointing to its initial
value, but "name" is.  Thus the space allocated for filling "lookup_name"
is now shorter than "name", and as this shortened "lookup_name" is
filled by copying suitable portions of "name", the write can be to
unallocated space.

The solution is to skip the "utf8::" when reparsing "name".  Then both
"lookup_name" and "name" are effectively shortened by the same amount,
and there is no going off the end.

This commit also does white-space adjustment so that things align
vertically for readability.

This can be easily backported to earlier Perl releases.


  Commit: 906e92715f4ee68ea95086867f4f97b1f4f10ac3
  
https://github.com/Perl/perl5/commit/906e92715f4ee68ea95086867f4f97b1f4f10ac3
  Author: Tony Cook 
  Date:   2023-11-26 (Sun, 26 Nov 2023)

  Changed paths:
M t/win32/system.t
M win32/win32.c

  Log Message:
  ---
  win32: default the shell to cmd.exe in the Windows system directory

This prevents picking up cmd.exe from the current directory, or
even from the PATH.

This protects against a privilege escalation attack where an attacker
in a separate session creates a cmd.exe in a directory where the
target account happens to have its current directory.


Compare: https://github.com/Perl/perl5/compare/f64eb1530947...906e92715f4e


[Perl/perl5] 0fc8a7: perldelta for f4c88b59, 2804f7df

2023-11-15 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 0fc8a78066b687b6a94c809020b00827bef6e265
  
https://github.com/Perl/perl5/commit/0fc8a78066b687b6a94c809020b00827bef6e265
  Author: Tony Cook 
  Date:   2023-11-16 (Thu, 16 Nov 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for f4c88b59, 2804f7df




[Perl/perl5] f4c88b: globvar.t: use nm -P for portability

2023-11-15 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: f4c88b59305d4c77b11e4197b0d3755add1125bb
  
https://github.com/Perl/perl5/commit/f4c88b59305d4c77b11e4197b0d3755add1125bb
  Author: Tony Cook 
  Date:   2023-11-16 (Thu, 16 Nov 2023)

  Changed paths:
M t/porting/globvar.t

  Log Message:
  ---
  globvar.t: use nm -P for portability

POSIX specifies well defined output for nm -P

This will hopefully run this test on more platforms, including old AIX,
for which nm produces a different output from what the test expected.

Part of #21623


  Commit: 2804f7df8ab289b7a020e89cb5971f5f922ff33f
  
https://github.com/Perl/perl5/commit/2804f7df8ab289b7a020e89cb5971f5f922ff33f
  Author: Tony Cook 
  Date:   2023-11-16 (Thu, 16 Nov 2023)

  Changed paths:
M t/porting/globvar.t

  Log Message:
  ---
  globvar.t: allow duplicate definitions of symbols

nm on AIX can list both local and global definitions for the same
variable, which meant the parsing would delete the first instance
from %exported, but then add the second to %unexported, failing the
test.

This didn't fail on AIX 5 because the default nm output didn't
match what the code expected when checking for PL_Yes, and so
the entire test script skipped.

Fixes #21623


Compare: https://github.com/Perl/perl5/compare/be4fcf4ff45d...2804f7df8ab2


[Perl/perl5]

2023-11-13 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/retire-vs-2013
  Home:   https://github.com/Perl/perl5


[Perl/perl5] 09bf96: perldelta for 6be4da51a4

2023-11-13 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 09bf96e5f12e735089467e76df29747c878d4097
  
https://github.com/Perl/perl5/commit/09bf96e5f12e735089467e76df29747c878d4097
  Author: Tony Cook 
  Date:   2023-11-14 (Tue, 14 Nov 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for 6be4da51a4




  1   2   3   4   5   6   7   8   9   10   >