[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




[Perl/perl5] 6be4da: win32: retire visual studio 2013 support

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

  Changed paths:
M README.win32
M win32/GNUmakefile
M win32/Makefile

  Log Message:
  ---
  win32: retire visual studio 2013 support

I recently (tried) to test VS 2013 builds, but while vs2013 in theory
supports mixed declarations and code, in practice that support is
broken, and failed to build toke.obj:

The one case I looked at in detail, VS 2013 required an extra ; after
a conditional statement to accept the following declaration, for
example:

```
C:\Users\Tony\dev\perl\git>cl /c mixed.c
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

mixed.c
mixed.c(8) : error C2143: syntax error : missing ';' before 'const'
mixed.c(9) : error C2065: 'pend' : undeclared identifier
mixed.c(9) : error C2100: illegal indirection

C:\Users\Tony\dev\perl\git>type mixed.c
/* adapted from S_intuit_more() in toke.c.
   don't run this code
*/
int g(const char *p) {
  if (!p)
return (0);

  const char * const pend = p+1;
  return *pend;
}
```

regcomp.obj also failed to build due to the use of the "inline"
keyword in regcomp.h.  This is fairly trivially fixable but
inline is also C99.

Despite these build issues we haven't received any error reports for
VS2013, so I don't think it's worth re-working any mixed declarations
to support it.

It might be worth updating regcomp.h to use PERL_STATIC_INLINE
but that's out of scope for this commit.




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

2023-11-12 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21623-globvar
  Home:   https://github.com/Perl/perl5
  Commit: e97a5ef73745474e04176dd3547a49c34908261d
  
https://github.com/Perl/perl5/commit/e97a5ef73745474e04176dd3547a49c34908261d
  Author: Tony Cook 
  Date:   2023-11-13 (Mon, 13 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: f96b74ebabf88cf20538f8f2b4c35bbb43fdd77d
  
https://github.com/Perl/perl5/commit/f96b74ebabf88cf20538f8f2b4c35bbb43fdd77d
  Author: Tony Cook 
  Date:   2023-11-13 (Mon, 13 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/e97a5ef73745%5E...f96b74ebabf8


[Perl/perl5] e8a4ce: win32: retire visual studio 2013 support

2023-11-12 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/retire-vs-2013
  Home:   https://github.com/Perl/perl5
  Commit: e8a4ced88386ca079ba9f3cc4d138086aacfa8fc
  
https://github.com/Perl/perl5/commit/e8a4ced88386ca079ba9f3cc4d138086aacfa8fc
  Author: Tony Cook 
  Date:   2023-11-13 (Mon, 13 Nov 2023)

  Changed paths:
M README.win32
M win32/GNUmakefile
M win32/Makefile

  Log Message:
  ---
  win32: retire visual studio 2013 support

I recently (tried) to test VS 2013 builds, but while vs2013 in theory
supports mixed declarations and code, in practice that support is
broken, and failed to build toke.obj:

The one case I looked at in detail, VS 2013 required an extra ; after
a conditional statement to accept the following declaration, for
example:

```
C:\Users\Tony\dev\perl\git>cl /c mixed.c
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

mixed.c
mixed.c(8) : error C2143: syntax error : missing ';' before 'const'
mixed.c(9) : error C2065: 'pend' : undeclared identifier
mixed.c(9) : error C2100: illegal indirection

C:\Users\Tony\dev\perl\git>type mixed.c
/* adapted from S_intuit_more() in toke.c.
   don't run this code
*/
int g(const char *p) {
  if (!p)
return (0);

  const char * const pend = p+1;
  return *pend;
}
```

regcomp.obj also failed to build due to the use of the "inline"
keyword in regcomp.h.  This is fairly trivially fixable but
inline is also C99.

Despite these build issues we haven't received any error reports for
VS2013, so I don't think it's worth re-working any mixed declarations
to support it.

It might be worth updating regcomp.h to use PERL_STATIC_INLINE
but that's out of scope for this commit.




[Perl/perl5] a2e89a: bump $POSIX::VERSION

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

  Changed paths:
M ext/POSIX/lib/POSIX.pm

  Log Message:
  ---
  bump $POSIX::VERSION

This was only test changes.


  Commit: 17f7129c85aac5c45866d7a4914ba4861c244875
  
https://github.com/Perl/perl5/commit/17f7129c85aac5c45866d7a4914ba4861c244875
  Author: Tony Cook 
  Date:   2023-11-09 (Thu, 09 Nov 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for 7a3762a, d2fb366, 6afd9e5, 72ae6b5, 6c55fe7, f6ac1ba

and af40277, a2e89a2


Compare: https://github.com/Perl/perl5/compare/af4027783a90...17f7129c85aa


[Perl/perl5] 7a3762: sun/oracle workshop cc: use -O1 (same as -xO1) to ...

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

  Changed paths:
M hints/linux.sh
M hints/solaris_2.sh

  Log Message:
  ---
  sun/oracle workshop cc: use -O1 (same as -xO1) to around probable bug

Fixes #21535


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

  Changed paths:
M hints/linux.sh

  Log Message:
  ---
  sun/oracle workshop c99: allow for trailing zero size arrays

Encountered while testing -O1 with the workshop compiler on
Oracle Linux, follows the same test and workaround done in
hints/solaris_2.sh


  Commit: 6afd9e5d1004df0811a61925feeb125a0b1d4496
  
https://github.com/Perl/perl5/commit/6afd9e5d1004df0811a61925feeb125a0b1d4496
  Author: Tony Cook 
  Date:   2023-11-09 (Thu, 09 Nov 2023)

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

  Log Message:
  ---
  ext/POSIX/t/math.t: don't assume the sign of NaN

The test in Configure warns:

/* Note that whether the sign bit is on or off
 * for NaN depends on the CPU/FPU, and possibly
 * can be affected by the build toolchain.

but this test assumed that the default NaN was always positive,
but this isn't the case with the Sun/Oracle workshop cc, whether
on Oracle Linux or on Solaris.

copysign() is however well defined for NaN, so we can modify the
sign on NaN and test that with signbit().

Fixes #21533


  Commit: 72ae6b57da17eddc7408991863b6a47bf7443f47
  
https://github.com/Perl/perl5/commit/72ae6b57da17eddc7408991863b6a47bf7443f47
  Author: Tony Cook 
  Date:   2023-11-09 (Thu, 09 Nov 2023)

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

  Log Message:
  ---
  POSIX: the fallback copysign() doesn't handle NaNs


  Commit: 6c55fe7ea151b78eabe4917f4b0b51b07f4507ee
  
https://github.com/Perl/perl5/commit/6c55fe7ea151b78eabe4917f4b0b51b07f4507ee
  Author: Tony Cook 
  Date:   2023-11-09 (Thu, 09 Nov 2023)

  Changed paths:
M win32/config.vc

  Log Message:
  ---
  POSIX: MSVC really does have copysign

This is enabled in config.gc, and gcc builds were using only msvcrt
for a long time, so presumably MSVC 2013 which uses msvcrt also
supports it.  Later MSVC uses ucrt which definitely supports
copysign.


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

  Changed paths:
M win32/config.vc

  Log Message:
  ---
  POSIX: MSVC really does have signbit()

But it appears that the fallback for Perl_signbit() in numeric.c
is broken when we've found a definition for Perl_fp_class_nzero().

When Perl_fp_class_nzero is defined, the fallback Perl_signbit()
simply returns that value, but Perl_fp_class_nzero() only returns
true when the number is negative zero, not for any negative number.

But C99 requires signbit(), so I don't think it's worth spending
any more time looking into this.  We might want to eliminate
Perl_signbit() from numeric.c, or try to fix it.


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

  Changed paths:
M ext/POSIX/t/math.t
M win32/config.vc

  Log Message:
  ---
  POSIX: MSVC defines all of these

It also defines fpclassify(), but that's a more complex change
due to the classification macros in perl.h


Compare: https://github.com/Perl/perl5/compare/40bc602d2e31...af4027783a90


[Perl/perl5] fef5fe: win32: retire visual studio 2013 support

2023-11-06 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/retire-vs-2013
  Home:   https://github.com/Perl/perl5
  Commit: fef5fef5b45e62f8a0e1925feb73fc3ce42e2ad1
  
https://github.com/Perl/perl5/commit/fef5fef5b45e62f8a0e1925feb73fc3ce42e2ad1
  Author: Tony Cook 
  Date:   2023-11-07 (Tue, 07 Nov 2023)

  Changed paths:
M README.win32
M win32/GNUmakefile
M win32/Makefile

  Log Message:
  ---
  win32: retire visual studio 2013 support

I recently (tried) to test VS 2013 builds, but while vs2013 in theory
supports mixed declarations and code, in practice that support is
broken, and failed to build toke.obj:

The one case I looked at in detail, VS 2013 required an extra ; after
a conditional statement to accept the following declaration, for
example:

```
C:\Users\Tony\dev\perl\git>cl /c mixed.c
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

mixed.c
mixed.c(8) : error C2143: syntax error : missing ';' before 'const'
mixed.c(9) : error C2065: 'pend' : undeclared identifier
mixed.c(9) : error C2100: illegal indirection

C:\Users\Tony\dev\perl\git>type mixed.c
/* adapted from S_intuit_more() in toke.c.
   don't run this code
*/
int g(const char *p) {
  if (!p)
return (0);

  const char * const pend = p+1;
  return *pend;
}
```

regcomp.obj also failed to build due to the use of the "inline"
keyword in regcomp.h.  This is fairly trivially fixable but
inline is also C99.

Despite these build issues we haven't received any error reports for
VS2013, so I don't think it's worth re-working any mixed declarations
to support it.

It might be worth updating regcomp.h to use PERL_STATIC_INLINE
but that's out of scope for this commit.




[Perl/perl5] 857715: win32: retire visual studio 2013 support

2023-11-06 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/retire-vs-2013
  Home:   https://github.com/Perl/perl5
  Commit: 8577156faf0a3cfa4d7dac48390ee6de4ea4c6bd
  
https://github.com/Perl/perl5/commit/8577156faf0a3cfa4d7dac48390ee6de4ea4c6bd
  Author: Tony Cook 
  Date:   2023-11-07 (Tue, 07 Nov 2023)

  Changed paths:
M README.win32
M win32/GNUmakefile
M win32/Makefile

  Log Message:
  ---
  win32: retire visual studio 2013 support

I recently (tried) to test VS 2013 builds, but while vs2013 in theory
supports mixed declarations and code, in practice that support is
broken, and failed to build toke.obj:

The one case I looked at in detail, VS 2013 required an extra ; after
a conditional statement to accept the following declaration, for
example:

```
C:\Users\Tony\dev\perl\git>cl /c mixed.c
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

mixed.c
mixed.c(8) : error C2143: syntax error : missing ';' before 'const'
mixed.c(9) : error C2065: 'pend' : undeclared identifier
mixed.c(9) : error C2100: illegal indirection

C:\Users\Tony\dev\perl\git>type mixed.c
/* adapted from S_intuit_more() in toke.c.
   don't run this code
*/
int g(const char *p) {
  if (!p)
return (0);

  const char * const pend = p+1;
  return *pend;
}
```

regcomp.obj also failed to build due to the use of the "inline"
keyword in regcomp.h.  This is fairly trivially fixable but
inline is also C99.

Despite these build issues we haven't received any error reports for
VS2013, so I don't think it's worth re-working any mixed declarations
to support it.

It might be worth updating regcomp.h to use PERL_STATIC_INLINE
but that's out of scope for this commit.




[Perl/perl5] f4ed4e: sun/oracle workshop cc: use -O1 (same as -xO1) to ...

2023-11-06 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21535-workshop-cc-optimize
  Home:   https://github.com/Perl/perl5
  Commit: f4ed4ee9efbeb0f2ee1aa5573fd48cfb3d01fb90
  
https://github.com/Perl/perl5/commit/f4ed4ee9efbeb0f2ee1aa5573fd48cfb3d01fb90
  Author: Tony Cook 
  Date:   2023-11-06 (Mon, 06 Nov 2023)

  Changed paths:
M hints/linux.sh
M hints/solaris_2.sh

  Log Message:
  ---
  sun/oracle workshop cc: use -O1 (same as -xO1) to around probable bug

Fixes #21535


  Commit: 2d3e973d67e79f3d7518241e59f0894c6e33b453
  
https://github.com/Perl/perl5/commit/2d3e973d67e79f3d7518241e59f0894c6e33b453
  Author: Tony Cook 
  Date:   2023-11-06 (Mon, 06 Nov 2023)

  Changed paths:
M hints/linux.sh

  Log Message:
  ---
  sun/oracle workshop c99: allow for trailing zero size arrays

Encountered while testing -O1 with the workshop compiler on
Oracle Linux, follows the same test and workaround done in
hints/solaris_2.sh


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

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

  Log Message:
  ---
  ext/POSIX/t/math.t: don't assume the sign of NaN

The test in Configure warns:

/* Note that whether the sign bit is on or off
 * for NaN depends on the CPU/FPU, and possibly
 * can be affected by the build toolchain.

but this test assumed that the default NaN was always positive,
but this isn't the case with the Sun/Oracle workshop cc, whether
on Oracle Linux or on Solaris.

copysign() is however well defined for NaN, so we can modify the
sign on NaN and test that with signbit().

Fixes #21533


  Commit: 9b6ba20c1abe4c44f98c0efe9fea3359cfb6e553
  
https://github.com/Perl/perl5/commit/9b6ba20c1abe4c44f98c0efe9fea3359cfb6e553
  Author: Tony Cook 
  Date:   2023-11-06 (Mon, 06 Nov 2023)

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

  Log Message:
  ---
  POSIX: the fallback copysign() doesn't handle NaNs


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

  Changed paths:
M win32/config.vc

  Log Message:
  ---
  POSIX: MSVC really does have copysign

This is enabled in config.gc, and gcc builds were using only msvcrt
for a long time, so presumably MSVC 2013 which uses msvcrt also
supports it.  Later MSVC uses ucrt which definitely supports
copysign.


  Commit: 2a6624f3e7cf0b8f36029d1b226878a621b00180
  
https://github.com/Perl/perl5/commit/2a6624f3e7cf0b8f36029d1b226878a621b00180
  Author: Tony Cook 
  Date:   2023-11-06 (Mon, 06 Nov 2023)

  Changed paths:
M win32/config.vc

  Log Message:
  ---
  POSIX: MSVC really does have signbit()

But it appears that the fallback for Perl_signbit() in numeric.c
is broken when we've found a definition for Perl_fp_class_nzero().

When Perl_fp_class_nzero is defined, the fallback Perl_signbit()
simply returns that value, but Perl_fp_class_nzero() only returns
true when the number is negative zero, not for any negative number.

But C99 requires signbit(), so I don't think it's worth spending
any more time looking into this.  We might want to eliminate
Perl_signbit() from numeric.c, or try to fix it.


  Commit: 5414431705c5e008987a313a65ac62573e0862a7
  
https://github.com/Perl/perl5/commit/5414431705c5e008987a313a65ac62573e0862a7
  Author: Tony Cook 
  Date:   2023-11-06 (Mon, 06 Nov 2023)

  Changed paths:
M ext/POSIX/t/math.t
M win32/config.vc

  Log Message:
  ---
  POSIX: MSVC defines all of these

It also defines fpclassify(), but that's a more complex change
due to the classification macros in perl.h


Compare: https://github.com/Perl/perl5/compare/f4ed4ee9efbe%5E...5414431705c5


[Perl/perl5] 55dcda: remove C++20 deprecated volatile argument

2023-10-29 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 55dcda00e1126415a2ca4356273f0bfe15af8f87
  
https://github.com/Perl/perl5/commit/55dcda00e1126415a2ca4356273f0bfe15af8f87
  Author: Tony Cook 
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
M embed.fnc
M perl.c
M proto.h

  Log Message:
  ---
  remove C++20 deprecated volatile argument

This produced warnings like:

g++ -c   -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing \
  -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \
  -xc++ -I/usr/lib/llvm-18/include -std=c++17 -fno-exceptions \
  -funwind-tables -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS \
  -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS  -fexceptions \
  -I/usr/lib/x86_64-linux-gnu/perl5/5.36/Imager/include -std=c++23 \
  -O2 -g   -DVERSION=\"1.000\" -DXS_VERSION=\"1.000\" -fPIC \
  "-I/usr/lib/x86_64-linux-gnu/perl/5.36/CORE"   LLVM.c
In file included from /usr/lib/x86_64-linux-gnu/perl/5.36/CORE/perl.h:5798,
 from LLVM.xs:15:
/usr/lib/x86_64-linux-gnu/perl/5.36/CORE/proto.h:392:65: warning: 
‘volatile’-qualified parameter is deprecated [-Wvolatile]
  392 | PERL_CALLCONV I32   Perl_call_sv(pTHX_ SV* sv, volatile I32 flags);
  |~^

I haven't been able to produce this when building perl itself as C++
since it requires a modern -std argument to reproduce, and that breaks
the build in other ways.  It is reproducible when building a C++
XS module with gcc and -std=c++20 or later.

In a strict standard sense flags does not need to be volatile since
flags is not modified between setjmp() and longjmp(), but due to a
bug in gcc, gcc complains flags could be clobbered.

GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21161




[Perl/perl5] 4b5c17: bump $builtin::VERSION to 0.012

2023-10-25 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 4b5c1775cec6d4fe978b19274b2c24098bb9f151
  
https://github.com/Perl/perl5/commit/4b5c1775cec6d4fe978b19274b2c24098bb9f151
  Author: Tony Cook 
  Date:   2023-10-26 (Thu, 26 Oct 2023)

  Changed paths:
M lib/builtin.pm
M pod/perldelta.pod

  Log Message:
  ---
  bump $builtin::VERSION to 0.012




[Perl/perl5] 287bfd: perldelta for bbc952215, 28256eeb0d, 7c40c962c46

2023-10-25 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 287bfdb8ea63c12f627ea6bd0142f3fb308f38cf
  
https://github.com/Perl/perl5/commit/287bfdb8ea63c12f627ea6bd0142f3fb308f38cf
  Author: Tony Cook 
  Date:   2023-10-26 (Thu, 26 Oct 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for bbc952215, 28256eeb0d, 7c40c962c46




[Perl/perl5] bbc952: use the supplied handle in IO::Handle::blocking() ...

2023-10-25 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: bbc95221521c78873b8feb62ccabe8b4b41a2226
  
https://github.com/Perl/perl5/commit/bbc95221521c78873b8feb62ccabe8b4b41a2226
  Author: Tony Cook 
  Date:   2023-10-26 (Thu, 26 Oct 2023)

  Changed paths:
M dist/IO/IO.xs
M dist/IO/t/io_xs.t

  Log Message:
  ---
  use the supplied handle in IO::Handle::blocking() on Win32

The refactor in 375ed12a42 meant that fd was initialized to -1,
rather than PerlIO_fileno(f) on Win32.

fixes #17455


  Commit: 28256eeb0de31694da975fac5cfc2f6dc67b9913
  
https://github.com/Perl/perl5/commit/28256eeb0de31694da975fac5cfc2f6dc67b9913
  Author: Tony Cook 
  Date:   2023-10-26 (Thu, 26 Oct 2023)

  Changed paths:
M dist/IO/IO.xs

  Log Message:
  ---
  IO/io_blocking: clean up #if/#endif etc nesting and indentation


  Commit: 7c40c962c46ee960c6afe03fb31cd13c0627f86f
  
https://github.com/Perl/perl5/commit/7c40c962c46ee960c6afe03fb31cd13c0627f86f
  Author: Tony Cook 
  Date:   2023-10-26 (Thu, 26 Oct 2023)

  Changed paths:
M dist/IO/IO.pm
M dist/IO/lib/IO/Dir.pm
M dist/IO/lib/IO/File.pm
M dist/IO/lib/IO/Handle.pm
M dist/IO/lib/IO/Pipe.pm
M dist/IO/lib/IO/Poll.pm
M dist/IO/lib/IO/Seekable.pm
M dist/IO/lib/IO/Select.pm
M dist/IO/lib/IO/Socket.pm
M dist/IO/lib/IO/Socket/INET.pm
M dist/IO/lib/IO/Socket/UNIX.pm

  Log Message:
  ---
  bump $IO::*::VERSION to 1.54


Compare: https://github.com/Perl/perl5/compare/952309013672...7c40c962c46e


[Perl/perl5] 6b976e: perldelta for e4afee5bc9

2023-10-19 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 6b976e4f164282e1837d02e9173db1bb49562431
  
https://github.com/Perl/perl5/commit/6b976e4f164282e1837d02e9173db1bb49562431
  Author: Tony Cook 
  Date:   2023-10-20 (Fri, 20 Oct 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for e4afee5bc9




[Perl/perl5] e4afee: don't clear IOK on @{"_<$file"} entries when a dbs...

2023-10-19 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: e4afee5bc9d5b14a4d9a02eff8c153831edd0547
  
https://github.com/Perl/perl5/commit/e4afee5bc9d5b14a4d9a02eff8c153831edd0547
  Author: Tony Cook 
  Date:   2023-10-20 (Fri, 20 Oct 2023)

  Changed paths:
M lib/perl5db.t
M op.c

  Log Message:
  ---
  don't clear IOK on @{"_<$file"} entries when a dbstate is freed

These are meant to be IOK even when non-breakable, and I broke that
when fixing #19198.

Fixes #21564




[Perl/perl5] 8389ac: perldelta for f36bd8db3

2023-10-17 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 8389acc4c47087ba5a16d8e8da89f09c7908537d
  
https://github.com/Perl/perl5/commit/8389acc4c47087ba5a16d8e8da89f09c7908537d
  Author: Tony Cook 
  Date:   2023-10-18 (Wed, 18 Oct 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for f36bd8db3




[Perl/perl5] 7d4773: perldelta for a1ab4f2, a1556fc, 8f47074, 6704b68

2023-10-10 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 7d4773e1e4ba4e643ef3657e482cae20315a9eff
  
https://github.com/Perl/perl5/commit/7d4773e1e4ba4e643ef3657e482cae20315a9eff
  Author: Tony Cook 
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for a1ab4f2, a1556fc, 8f47074, 6704b68




[Perl/perl5] a1ab4f: allow the markstack pointer type to be selected be...

2023-10-10 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: a1ab4f2eff965e590076d4b9d9d66ba8f1fc9040
  
https://github.com/Perl/perl5/commit/a1ab4f2eff965e590076d4b9d9d66ba8f1fc9040
  Author: Tony Cook 
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
M deb.c
M embed.fnc
M inline.h
M intrpvar.h
M perl.c
M perl.h
M pp.h
M proto.h
M scope.c
M sv.c

  Log Message:
  ---
  allow the markstack pointer type to be selected between I32 and SSize_t

By default it will use I32 for backward compatibility, but you
can select SSize_t during configuration with:

  -Accflags=-DPERL_STACK_OFFSET_SSIZET

which may one day become the default.

The actual offsets throughout the code continue to be SSize_t.


  Commit: a1556fc71970289e8affd91fe2dedc3e8a950e06
  
https://github.com/Perl/perl5/commit/a1556fc71970289e8affd91fe2dedc3e8a950e06
  Author: Tony Cook 
  Date:   2023-10-11 (Wed, 11 Oct 2023)

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

  Log Message:
  ---
  bigmem/stack.t: skip if we're not using SSize_t mark


  Commit: 8f4707479f3fffdaa6c243c4e6bcd5acac47
  
https://github.com/Perl/perl5/commit/8f4707479f3fffdaa6c243c4e6bcd5acac47
  Author: Tony Cook 
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
M MANIFEST
M perl.h
M scope.c
A t/bigmem/stack_over.t

  Log Message:
  ---
  ensure we don't extend the stack beyond the limit of MARK

Previously this checked against a limit of SSize_t, but if MARK
is only 32-bits then over 2G stack entries will likely cause a
crash.


  Commit: 6704b687358dbf8ab881d26cdee1dc34e70f1186
  
https://github.com/Perl/perl5/commit/6704b687358dbf8ab881d26cdee1dc34e70f1186
  Author: Tony Cook 
  Date:   2023-10-11 (Wed, 11 Oct 2023)

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

  Log Message:
  ---
  define Stack_off_t etc in ppport.h

For older perls it's always I32


Compare: https://github.com/Perl/perl5/compare/54b519ce9f48...6704b687358d


[Perl/perl5] a75d45: perldelta for 828ea27, 6a3cf23, e4be969, b209e1e, ...

2023-10-04 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: a75d45ae504a6c814556821deea62bee9d4403ca
  
https://github.com/Perl/perl5/commit/a75d45ae504a6c814556821deea62bee9d4403ca
  Author: Tony Cook 
  Date:   2023-10-05 (Thu, 05 Oct 2023)

  Changed paths:
M pod/perldelta.pod

  Log Message:
  ---
  perldelta for 828ea27, 6a3cf23, e4be969, b209e1e, 644bc0a




[Perl/perl5] 828ea2: join: tests from GH #21458

2023-10-04 Thread Tony Cook via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 828ea27ca4b165513ebebcbc39cb0f1ac3d04f17
  
https://github.com/Perl/perl5/commit/828ea27ca4b165513ebebcbc39cb0f1ac3d04f17
  Author: Tony Cook 
  Date:   2023-10-05 (Thu, 05 Oct 2023)

  Changed paths:
M t/op/join.t

  Log Message:
  ---
  join: tests from GH #21458


  Commit: 6a3cf232a6a4289fcf99cf8bbd3af5e3945913e0
  
https://github.com/Perl/perl5/commit/6a3cf232a6a4289fcf99cf8bbd3af5e3945913e0
  Author: Tony Cook 
  Date:   2023-10-05 (Thu, 05 Oct 2023)

  Changed paths:
M t/op/join.t

  Log Message:
  ---
  join: add tests from my comments on #21484


  Commit: e4be96923581d9d10b5d3dd155992ed3706234cc
  
https://github.com/Perl/perl5/commit/e4be96923581d9d10b5d3dd155992ed3706234cc
  Author: Tony Cook 
  Date:   2023-10-05 (Thu, 05 Oct 2023)

  Changed paths:
M doop.c
M t/op/join.t

  Log Message:
  ---
  join: save the delimiter string before anything magical happens to it

This code had a few problems:

- changes to the content of delim from set or overload magic could
  result in the separator between elements changing during the
  process of the join.
- changes to the content of delim which allocated a new PVX
  resulted in access to freed memory
- changes to the flags of delim, the UTF-8 flag in particular, could
  result in an invalid joined string, either mojibake or an invalidly
  encoded upgraded string

To avoid that, we copy the separator, either into a local buffer
if it's large enough, or an allocated buffer, and save the flag we
use, to prevent changes to the delim SV from changing or invalidating
the delimpv value.

Fixes #21458 and some similar problems.


  Commit: b209e1e49ee93fd18f111420372a125da94356a3
  
https://github.com/Perl/perl5/commit/b209e1e49ee93fd18f111420372a125da94356a3
  Author: Tony Cook 
  Date:   2023-10-05 (Thu, 05 Oct 2023)

  Changed paths:
M doop.c

  Log Message:
  ---
  do_join: validate arguments before we start using them


  Commit: 644bc0a68a0995acf6d0cd939115ce2d8080868e
  
https://github.com/Perl/perl5/commit/644bc0a68a0995acf6d0cd939115ce2d8080868e
  Author: Tony Cook 
  Date:   2023-10-05 (Thu, 05 Oct 2023)

  Changed paths:
M t/op/join.t

  Log Message:
  ---
  join tests: comments clarifying why we don't do simple assignment

I changed $n to 2 in each case as a defence against a reasonable
possible optimisation of $x x 1 sharing the PV with $x.


Compare: https://github.com/Perl/perl5/compare/922e8c46512e...644bc0a68a09


  1   2   3   4   5   6   7   8   9   10   >