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 <t...@develop-help.com>
  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 <t...@develop-help.com>
  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 <t...@develop-help.com>
  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 <t...@develop-help.com>
  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 <t...@develop-help.com>
  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 <t...@develop-help.com>
  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 <t...@develop-help.com>
  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

Reply via email to