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