Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: f6691a84dfa9fe39c67d0f974bf4663aefe26695
      
https://github.com/Perl/perl5/commit/f6691a84dfa9fe39c67d0f974bf4663aefe26695
  Author: Tony Cook <t...@develop-help.com>
  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 <t...@develop-help.com>
  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 <t...@develop-help.com>
  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 <t...@develop-help.com>
  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 <t...@develop-help.com>
  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 <t...@develop-help.com>
  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

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications

Reply via email to