Branch: refs/heads/yves/hpux_build_warning_suppression Home: https://github.com/Perl/perl5 Commit: b5f5991ce1f8f883892bba2c4ae29195f7cdb07c https://github.com/Perl/perl5/commit/b5f5991ce1f8f883892bba2c4ae29195f7cdb07c Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023)
Changed paths: M handy.h M perl.h Log Message: ----------- perl.h - silence certain warnings on HPUX globally. There are two warnings classes which account for a very large number of the warnings produced when building on HPUX Itanium. We know the cause of these warnings and we are ok with ignoring them. One set comes from our memory wrap checks, where we end up doing a comparison against constants in certain conditions. See the comments in handy.h line 2723 related to PERL_MALLOC_WRAP. The other set comes from our common "trick" of doing OO in C code with casting. This is the foundation of how we manage SV types and how we manage regular expression ops (regops). If this logic really was a problem then we would have lots of test failures and segfaults, and we do not, so we can silence them. Commit: 1a3a5db0f1ac43ca42be2c9e5ac94d9cde4a3405 https://github.com/Perl/perl5/commit/1a3a5db0f1ac43ca42be2c9e5ac94d9cde4a3405 Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M regcomp.h Log Message: ----------- regcomp.h - use different struct member names for U8 vs U32 str_len It is confusing to have two different members, at different struct offsets and with different sizes, with the same name. So rename them so they have different names that include their size so it is obvious what is going on. Commit: 1a4713cfe7f21f32803423d205cd1a4acf1215dc https://github.com/Perl/perl5/commit/1a4713cfe7f21f32803423d205cd1a4acf1215dc Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M regcomp.c M regcomp.h M regcomp_debug.c M regcomp_study.c M regcomp_trie.c M regexec.c M regexp.h Log Message: ----------- regcomp.h - use a common regop head union across all regnodes. This helps with HPUX builds where we need to ensure everything is aligned the same (on 32 bit boundaries). It also strongly encourages everything to use the accessor macros and not access the members directly. By using a union for the variadic fields we make it more obvious that some regops use the field in different ways. This patch couples with the previous patch renaming "str_len". Commit: 3ceb877ddb5c227c32f38408681f05647d64061e https://github.com/Perl/perl5/commit/3ceb877ddb5c227c32f38408681f05647d64061e Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M peep.c Log Message: ----------- peep.c - ensure deferred_queue is initialized before use HPUX was warning that it can be used before it is initialized. There is no cost to nulling it out early so do so. Commit: c8ba450483c315b643e814f72b26992337ed73aa https://github.com/Perl/perl5/commit/c8ba450483c315b643e814f72b26992337ed73aa Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M op.c Log Message: ----------- op.c - deal with not-reached statement warning Change this to test on o, and if it goes null to panic. We used to assume that o was a valid pointer and loop infinitely, but this meant that the old return statement at the bottom of function was never reached. Commit: 11595d2d200da8d7690ad51711f7e4fa793ddda1 https://github.com/Perl/perl5/commit/11595d2d200da8d7690ad51711f7e4fa793ddda1 Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M pp_sys.c Log Message: ----------- pp_sys.c - suppress warning about comparison to unsigned value Commit: 27447ef8804336a580bbfd50e894e7fd027f43a7 https://github.com/Perl/perl5/commit/27447ef8804336a580bbfd50e894e7fd027f43a7 Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M regcomp.c Log Message: ----------- regcomp.c - simplify logic to eliminate unreached code We always goto out of this if, so eliminate the unreached code and also eliminate the useless else block. Commit: 219ddf0129f442517b62a41772f492221c342e6e https://github.com/Perl/perl5/commit/219ddf0129f442517b62a41772f492221c342e6e Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M regexec.c Log Message: ----------- regexec.c - mark the bottom of a sub as never reached We used to have a return statement here that picky compilers would complain about. Commit: c81a9483b5f5215bfc58db4363dc6be5ec684426 https://github.com/Perl/perl5/commit/c81a9483b5f5215bfc58db4363dc6be5ec684426 Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M hv.c M perl.c M sv.c Log Message: ----------- sv.c - don't cast SVTYPEMASK to svtype. svtype is an enum with 18 values. SVTYPEMASK is 31. A picky compiler will complain that casting 31 to a svtype is an error. Casting both sides to a U8 should silence this. Commit: 144777eebc7b1585938248659a7ed18c2390ab00 https://github.com/Perl/perl5/commit/144777eebc7b1585938248659a7ed18c2390ab00 Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M Porting/cmpVERSION.pl Log Message: ----------- Porting/cmpVERSION.pl - deal with old git clients better in tag date parsing The HPUX box we smoke on does not have a modern git and chokes on taggerdate:unix, so we use taggerdata:iso8601 instead, and then parse the date with Time::Local. Commit: 562cb205c0a01f380e669d1048616b71234b74b4 https://github.com/Perl/perl5/commit/562cb205c0a01f380e669d1048616b71234b74b4 Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M t/op/sprintf2.t Log Message: ----------- t/op/sprintf2 - TODO a failing test for now The failure of this test usually signifies that the libc implementation upon which perl's %g formatting relies is broken. In such cases the test should probably be todo'd or skipped. See: https://github.com/Perl/perl5/issues/20953#issuecomment-1478744988 Fixes: #20953 Commit: 5cd412d8c3c8fe46cb0b66a8a068bb1c7ebcadb3 https://github.com/Perl/perl5/commit/5cd412d8c3c8fe46cb0b66a8a068bb1c7ebcadb3 Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm M dist/ExtUtils-ParseXS/lib/perlxs.pod M dist/ExtUtils-ParseXS/t/001-basic.t Log Message: ----------- ExtUtils-ParseXS - silence warnings about unreached code in generated XS code On HPUX we get a lot of: "APItest.c", line 4004: warning #2111-D: statement is unreachable: PUTBACK because people have used something like XSRETURN(1); and we generate code that does PUTBACK; return; Adding a pragma to silence it makes the builds happier; Commit: 96dacd7cc67896935f3fb7efdcc0ba7dac6679b4 https://github.com/Perl/perl5/commit/96dacd7cc67896935f3fb7efdcc0ba7dac6679b4 Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M regcomp.c Log Message: ----------- regcomp.c - eliminate assignment in while condition This gives covertiy heartburn, and also makes the HPUX compiler whine. Reworking it so that it is a while 1 and the condition determines if we break out of the loop resolves the heartburn and makes for more readable code. Commit: 1c88deb1aabfd59b955eea20c72b34253c34517e https://github.com/Perl/perl5/commit/1c88deb1aabfd59b955eea20c72b34253c34517e Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M numeric.c Log Message: ----------- numeric.c - change logical && to bitwise & in nantype test This appears to have been broken since 2015, found by HPUX compiler warnings: "numeric.c", line 927: warning #4277-D: logical AND with a constant, do you mean to use '&'? !(nantype && IS_NUMBER_IN_UV)) { Commit: 23b0942dc04b96d15eefa4c49ac6cda57d590e1d https://github.com/Perl/perl5/commit/23b0942dc04b96d15eefa4c49ac6cda57d590e1d Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M dist/Devel-PPPort/PPPort_pm.PL M dist/Devel-PPPort/parts/inc/misc Log Message: ----------- Devel-PPPort - deal with signed klen in check_HeUTF8 Some of the HV logic uses a negative key length to indicate utf8 keys, and this logic was using an unsigned keylength, which obviously does not work Commit: 2cbda4a037c94cf0b4087952f7deedd5b242d353 https://github.com/Perl/perl5/commit/2cbda4a037c94cf0b4087952f7deedd5b242d353 Author: Yves Orton <demer...@gmail.com> Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M perlio.c Log Message: ----------- perlio.c - double cast PerlIO_lockcnt() This avoids various warnings about alignment on HPUX. Compare: https://github.com/Perl/perl5/compare/faeca8464164...2cbda4a037c9