[Perl/perl5] f6691a: POSIX: win32 calls "putenv" "_putenv"
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...
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...
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...
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"
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
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+...
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...
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
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
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...
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]
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
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
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
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+...
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 -...
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...
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...
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...
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
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...
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...
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...
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
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
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
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 ...
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
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...
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
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
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
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...
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
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
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"
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
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).
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
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
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]
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]
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
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...
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...
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...
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
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...
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
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...
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 ...
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
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
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
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
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...
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...
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
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...
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
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
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
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
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
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
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
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
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 ...
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
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
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
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
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...
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
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
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
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
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
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]
Branch: refs/heads/smoke-me/tonyc/retire-vs-2013 Home: https://github.com/Perl/perl5
[Perl/perl5] 09bf96: perldelta for 6be4da51a4
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
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
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
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
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 ...
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
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
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 ...
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
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
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
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() ...
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
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...
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
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
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...
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, ...
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
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