develooper Front page | perl.perl5.changes | Postings from March 2023

[Perl/perl5] 7361d9: regcomp.h - use a common union for head andargs a...

From:
Yves Orton via perl5-changes
Date:
March 23, 2023 00:49
Subject:
[Perl/perl5] 7361d9: regcomp.h - use a common union for head andargs a...
Message ID:
Perl/perl5/push/refs/heads/yves/hpux_build_warning_suppression/2cbda4-669aad@github.com
  Branch: refs/heads/yves/hpux_build_warning_suppression
  Home:   https://github.com/Perl/perl5
  Commit: 7361d957ad1dcf0ff4d554b5a1928231b757b296
      https://github.com/Perl/perl5/commit/7361d957ad1dcf0ff4d554b5a1928231b757b296
  Author: Yves Orton <demerphq@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 union for head and args 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
also converts all the arg unions into a standardized union with
standardized member names.


  Commit: ef87cbe0b860cb1fae09f559452f4a82b9ec8068
      https://github.com/Perl/perl5/commit/ef87cbe0b860cb1fae09f559452f4a82b9ec8068
  Author: Yves Orton <demerphq@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: 3f4a44409d39b92a4bd6e45962da1dd00f4f5a30
      https://github.com/Perl/perl5/commit/3f4a44409d39b92a4bd6e45962da1dd00f4f5a30
  Author: Yves Orton <demerphq@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: a21a379f4ec9442fbb8951629d73045d4096c66d
      https://github.com/Perl/perl5/commit/a21a379f4ec9442fbb8951629d73045d4096c66d
  Author: Yves Orton <demerphq@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: b6ffa05d0a4d51f0e3ed327547d095a118ad0d03
      https://github.com/Perl/perl5/commit/b6ffa05d0a4d51f0e3ed327547d095a118ad0d03
  Author: Yves Orton <demerphq@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: 9fb1bcd16daaabea3996468c2fc411896c55ad5b
      https://github.com/Perl/perl5/commit/9fb1bcd16daaabea3996468c2fc411896c55ad5b
  Author: Yves Orton <demerphq@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: fab0e8a9e35f32bafce1747fa62590ec542a5833
      https://github.com/Perl/perl5/commit/fab0e8a9e35f32bafce1747fa62590ec542a5833
  Author: Yves Orton <demerphq@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: 9dff081313b2eb6d216a2c8c085616b8869a1d2e
      https://github.com/Perl/perl5/commit/9dff081313b2eb6d216a2c8c085616b8869a1d2e
  Author: Yves Orton <demerphq@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: 5f23f5de17fa6f62221042ef4814041d085be265
      https://github.com/Perl/perl5/commit/5f23f5de17fa6f62221042ef4814041d085be265
  Author: Yves Orton <demerphq@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: 738c8017e84e0c48bdd48ee39b2a2c11e90f76be
      https://github.com/Perl/perl5/commit/738c8017e84e0c48bdd48ee39b2a2c11e90f76be
  Author: Yves Orton <demerphq@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: 6ed619043faa309d08f0b9525c2e80c4cca64d28
      https://github.com/Perl/perl5/commit/6ed619043faa309d08f0b9525c2e80c4cca64d28
  Author: Yves Orton <demerphq@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: 8058e13c8ed1fb5415ffd1da6fb960853d8c1094
      https://github.com/Perl/perl5/commit/8058e13c8ed1fb5415ffd1da6fb960853d8c1094
  Author: Yves Orton <demerphq@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: 0293f7fd44865cfb55d770b6e7664307e52009ce
      https://github.com/Perl/perl5/commit/0293f7fd44865cfb55d770b6e7664307e52009ce
  Author: Yves Orton <demerphq@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: 669aade32e011d3bc7dd5322a73b5f5228bd5dfa
      https://github.com/Perl/perl5/commit/669aade32e011d3bc7dd5322a73b5f5228bd5dfa
  Author: Yves Orton <demerphq@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/2cbda4a037c9...669aade32e01



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About