summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-08-09 13:21:51 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-08-09 13:21:51 +0000
commit758a5d7997f283f8e3786c3e353533cc466d5004 (patch)
tree8ef56dd97bbe416bf6a27f16213d1dcd827d4e7b
parent016501c1bd27cb10e1edd3e59809e490357b700c (diff)
downloadperl-758a5d7997f283f8e3786c3e353533cc466d5004.tar.gz
Introduce more floating point classifying APIs;
try to define (most importantly) Perl_is{inf,nan}(x). For this first cut, assume none such APIs exist in non-UNIXoid platforms-- this is of course too unkind: Win32 rumoredly has _fpclass() and _isnan(), and VMS/VOS very probably have some of the APIs available. The only thing Perl uses at the moment is Perl_isnan() (has been in use for a while now). NOTE: the Win32 and NetWare config_h.?c need regenerating. p4raw-id: //depot/perl@11618
-rwxr-xr-xConfigure74
-rw-r--r--NetWare/config.wc14
-rw-r--r--Porting/Glossary48
-rw-r--r--Porting/config.sh26
-rw-r--r--Porting/config_H132
-rw-r--r--config_h.SH130
-rw-r--r--configure.com12
-rw-r--r--epoc/config.sh12
-rw-r--r--hints/hpux.sh4
-rw-r--r--perl.h148
-rw-r--r--pod/perltoc.pod276
-rw-r--r--uconfig.h130
-rwxr-xr-xuconfig.sh12
-rw-r--r--vos/config.alpha.def12
-rw-r--r--vos/config.alpha.h130
-rw-r--r--vos/config.ga.def12
-rw-r--r--vos/config.ga.h130
-rw-r--r--win32/config.bc12
-rw-r--r--win32/config.gc12
-rw-r--r--win32/config.vc12
20 files changed, 1126 insertions, 212 deletions
diff --git a/Configure b/Configure
index 98621ab39e..c6c4ff3245 100755
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Wed Aug 1 02:58:53 EET DST 2001 [metaconfig 3.0 PL70]
+# Generated on Thu Aug 9 16:34:00 EET DST 2001 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
@@ -328,6 +328,7 @@ d_castneg=''
d_chown=''
d_chroot=''
d_chsize=''
+d_class=''
d_closedir=''
d_void_closedir=''
d_cmsghdr_s=''
@@ -363,10 +364,16 @@ d_fd_macros=''
d_fd_set=''
d_fds_bits=''
d_fgetpos=''
+d_finite=''
+d_finitel=''
d_flexfnam=''
d_flock=''
d_flockproto=''
d_fork=''
+d_fp_class=''
+d_fpclass=''
+d_fpclassify=''
+d_fpclassl=''
d_fpos64_t=''
d_frexpl=''
d_fs_data_s=''
@@ -424,6 +431,8 @@ d_iconv=''
d_inetaton=''
d_int64_t=''
d_isascii=''
+d_isfinite=''
+d_isinf=''
d_isnan=''
d_isnanl=''
d_killpg=''
@@ -612,6 +621,7 @@ d_umask=''
d_semctl_semid_ds=''
d_semctl_semun=''
d_union_semun=''
+d_unordered=''
d_usleep=''
d_usleepproto=''
d_ustat=''
@@ -665,6 +675,8 @@ i_dld=''
i_dlfcn=''
i_fcntl=''
i_float=''
+i_fp=''
+i_fp_class=''
i_gdbm=''
d_grpasswd=''
i_grp=''
@@ -9106,6 +9118,10 @@ eval $inlibc
set chsize d_chsize
eval $inlibc
+: see if class exists
+set class d_class
+eval $inlibc
+
hasstruct='varname=$1; struct=$2; shift; shift;
while $test $# -ge 2; do
case "$1" in
@@ -10143,6 +10159,14 @@ $rm -f try try.*
set fgetpos d_fgetpos
eval $inlibc
+: see if finite exists
+set finite d_finite
+eval $inlibc
+
+: see if finitel exists
+set finitel d_finitel
+eval $inlibc
+
: see if flock exists
set flock d_flock
eval $inlibc
@@ -10180,6 +10204,10 @@ eval $hasproto
set fork d_fork
eval $inlibc
+: see if fp_class exists
+set fp_class d_fp_class
+eval $inlibc
+
: see if pathconf exists
set pathconf d_pathconf
eval $inlibc
@@ -10188,6 +10216,18 @@ eval $inlibc
set fpathconf d_fpathconf
eval $inlibc
+: see if fpclass exists
+set fpclass d_fpclass
+eval $inlibc
+
+: see if fpclassify exists
+set fpclassify d_fpclassify
+eval $inlibc
+
+: see if fpclassl exists
+set fpclassl d_fpclassl
+eval $inlibc
+
: check for fpos64_t
echo " "
@@ -10654,6 +10694,14 @@ set d_isascii
eval $setvar
$rm -f isascii*
+: see if isfinite exists
+set isfinite d_isfinite
+eval $inlibc
+
+: see if isinf exists
+set isinf d_isinf
+eval $inlibc
+
: see if isnan exists
set isnan d_isnan
eval $inlibc
@@ -13292,6 +13340,10 @@ eval $inlibc
set umask d_umask
eval $inlibc
+: see if unordered exists
+set unordered d_unordered
+eval $inlibc
+
: see if usleep exists
set usleep d_usleep
eval $inlibc
@@ -15767,6 +15819,14 @@ esac
set i_fcntl
eval $setvar
+: see if this is a fp.h system
+set fp.h i_fp
+eval $inhdr
+
+: see if this is a fp_class.h system
+set fp_class.h i_fp_class
+eval $inhdr
+
: see if this is a iconv.h system
set iconv.h i_iconv
eval $inhdr
@@ -16703,6 +16763,7 @@ d_charvspr='$d_charvspr'
d_chown='$d_chown'
d_chroot='$d_chroot'
d_chsize='$d_chsize'
+d_class='$d_class'
d_closedir='$d_closedir'
d_cmsghdr_s='$d_cmsghdr_s'
d_const='$d_const'
@@ -16737,11 +16798,17 @@ d_fd_macros='$d_fd_macros'
d_fd_set='$d_fd_set'
d_fds_bits='$d_fds_bits'
d_fgetpos='$d_fgetpos'
+d_finite='$d_finite'
+d_finitel='$d_finitel'
d_flexfnam='$d_flexfnam'
d_flock='$d_flock'
d_flockproto='$d_flockproto'
d_fork='$d_fork'
+d_fp_class='$d_fp_class'
d_fpathconf='$d_fpathconf'
+d_fpclass='$d_fpclass'
+d_fpclassify='$d_fpclassify'
+d_fpclassl='$d_fpclassl'
d_fpos64_t='$d_fpos64_t'
d_frexpl='$d_frexpl'
d_fs_data_s='$d_fs_data_s'
@@ -16797,6 +16864,8 @@ d_index='$d_index'
d_inetaton='$d_inetaton'
d_int64_t='$d_int64_t'
d_isascii='$d_isascii'
+d_isfinite='$d_isfinite'
+d_isinf='$d_isinf'
d_isnan='$d_isnan'
d_isnanl='$d_isnanl'
d_killpg='$d_killpg'
@@ -16983,6 +17052,7 @@ d_ualarm='$d_ualarm'
d_umask='$d_umask'
d_uname='$d_uname'
d_union_semun='$d_union_semun'
+d_unordered='$d_unordered'
d_usleep='$d_usleep'
d_usleepproto='$d_usleepproto'
d_ustat='$d_ustat'
@@ -17068,6 +17138,8 @@ i_dld='$i_dld'
i_dlfcn='$i_dlfcn'
i_fcntl='$i_fcntl'
i_float='$i_float'
+i_fp='$i_fp'
+i_fp_class='$i_fp_class'
i_gdbm='$i_gdbm'
i_grp='$i_grp'
i_iconv='$i_iconv'
diff --git a/NetWare/config.wc b/NetWare/config.wc
index d47f3a68e2..1d4d1945ea 100644
--- a/NetWare/config.wc
+++ b/NetWare/config.wc
@@ -106,6 +106,7 @@ d_charvspr='undef'
d_chown='undef'
d_chroot='undef'
d_chsize='define'
+d_class='undef'
d_closedir='define'
d_const='define'
d_crypt='undef'
@@ -138,10 +139,16 @@ d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
d_fgetpos='define'
+d_finite='undef'
+d_finitel='undef'
d_flexfnam='define'
d_flock='define'
d_fork='undef'
+d_fp_class='undef'
d_fpathconf='undef'
+d_fpclass='undef'
+d_fpclassify='undef'
+d_fpclassl='undef'
d_fpos64_t='undef'
d_fs_data_s='undef'
d_fseeko='undef'
@@ -192,6 +199,10 @@ d_index='undef'
d_inetaton='undef'
d_int64_t='undef'
d_isascii='define'
+d_isfinite='undef'
+d_isinf='undef'
+d_isnan='define'
+d_isnanl='undef'
d_killpg='undef'
d_lchown='undef'
d_ldbl_dig='define'
@@ -354,6 +365,7 @@ d_tzname='define'
d_umask='define'
d_uname='define'
d_union_semun='define'
+d_unordered='undef'
d_ustat='undef'
d_vendorarch='undef'
d_vendorbin='undef'
@@ -433,6 +445,8 @@ i_dld='undef'
i_dlfcn='define'
i_fcntl='define'
i_float='define'
+i_fp='undef'
+i_fp_class='undef'
i_gdbm='undef'
i_grp='undef'
i_iconv='undef'
diff --git a/Porting/Glossary b/Porting/Glossary
index aaea2e7759..3ffbdcc876 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -431,6 +431,10 @@ d_chsize (d_chsize.U):
indicates to the C program that the chsize() routine is available
to truncate files. You might need a -lx to get this routine.
+d_class (d_class.U):
+ This variable conditionally defines the HAS_CLASS symbol, which
+ indicates to the C program that the class() routine is available.
+
d_closedir (d_closedir.U):
This variable conditionally defines HAS_CLOSEDIR if closedir() is
available.
@@ -586,6 +590,14 @@ d_fgetpos (d_fgetpos.U):
This variable conditionally defines HAS_FGETPOS if fgetpos() is
available to get the file position indicator.
+d_finite (d_finite.U):
+ This variable conditionally defines the HAS_FINITE symbol, which
+ indicates to the C program that the finite() routine is available.
+
+d_finitel (d_finitel.U):
+ This variable conditionally defines the HAS_FINITEL symbol, which
+ indicates to the C program that the finitel() routine is available.
+
d_flexfnam (d_flexfnam.U):
This variable conditionally defines the FLEXFILENAMES symbol, which
indicates that the system supports filenames longer than 14 characters.
@@ -604,12 +616,28 @@ d_fork (d_fork.U):
This variable conditionally defines the HAS_FORK symbol, which
indicates to the C program that the fork() routine is available.
+d_fp_class (d_fp_class.U):
+ This variable conditionally defines the HAS_FP_CLASS symbol, which
+ indicates to the C program that the fp_class() routine is available.
+
d_fpathconf (d_pathconf.U):
This variable conditionally defines the HAS_FPATHCONF symbol, which
indicates to the C program that the pathconf() routine is available
to determine file-system related limits and options associated
with a given open file descriptor.
+d_fpclass (d_fpclass.U):
+ This variable conditionally defines the HAS_FPCLASS symbol, which
+ indicates to the C program that the fpclass() routine is available.
+
+d_fpclassify (d_fpclassify.U):
+ This variable conditionally defines the HAS_FPCLASSIFY symbol, which
+ indicates to the C program that the fpclassify() routine is available.
+
+d_fpclassl (d_fpclassl.U):
+ This variable conditionally defines the HAS_FPCLASSL symbol, which
+ indicates to the C program that the fpclassl() routine is available.
+
d_fpos64_t (d_fpos64_t.U):
This symbol will be defined if the C compiler supports fpos64_t.
@@ -871,6 +899,14 @@ d_isascii (d_isascii.U):
This variable conditionally defines the HAS_ISASCII constant,
which indicates to the C program that isascii() is available.
+d_isfinite (d_isfinite.U):
+ This variable conditionally defines the HAS_ISFINITE symbol, which
+ indicates to the C program that the isfinite() routine is available.
+
+d_isinf (d_isinf.U):
+ This variable conditionally defines the HAS_ISINF symbol, which
+ indicates to the C program that the isinf() routine is available.
+
d_isnan (d_isnan.U):
This variable conditionally defines the HAS_ISNAN symbol, which
indicates to the C program that the isnan() routine is available.
@@ -1773,6 +1809,10 @@ d_union_semun (d_union_semun.U):
This variable conditionally defines HAS_UNION_SEMUN if the
union semun is defined by including <sys/sem.h>.
+d_unordered (d_unordered.U):
+ This variable conditionally defines the HAS_UNORDERED symbol, which
+ indicates to the C program that the unordered() routine is available.
+
d_usleep (d_usleep.U):
This variable conditionally defines HAS_USLEEP if usleep() is
available to do high granularity sleeps.
@@ -2156,6 +2196,14 @@ i_float (i_float.U):
whether a C program may include <float.h> to get symbols like DBL_MAX
or DBL_MIN, i.e. machine dependent floating point values.
+i_fp (i_fp.U):
+ This variable conditionally defines the I_FP symbol, and indicates
+ whether a C program should include <fp.h>.
+
+i_fp_class (i_fp_class.U):
+ This variable conditionally defines the I_FP_CLASS symbol, and indicates
+ whether a C program should include <fp_class.h>.
+
i_gdbm (i_gdbm.U):
This variable conditionally defines the I_GDBM symbol, which
indicates to the C program that <gdbm.h> exists and should
diff --git a/Porting/config.sh b/Porting/config.sh
index 4bf2b8b464..17fca1c4df 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -8,7 +8,7 @@
# Package name : perl5
# Source directory : .
-# Configuration time: Tue Jul 31 18:19:35 EET DST 2001
+# Configuration time: Thu Aug 9 16:48:44 EET DST 2001
# Configured by : jhi
# Target system : osf1 alpha.hut.fi v4.0 878 alpha
@@ -56,14 +56,14 @@ cat='cat'
cc='cc'
cccdlflags=' '
ccdlflags=' -Wl,-rpath,/opt/perl/lib/5.7.2/alpha-dec_osf/CORE'
-ccflags='-std -fprm d -ieee -D_INTRINSICS -DLANGUAGE_C'
+ccflags='-std -D_INTRINSICS -DLANGUAGE_C'
ccflags_uselargefiles=''
ccname='cc'
ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_BSD=1 SYSTYPE_BSD=1 unix=1'
ccversion='V5.6-082'
cf_by='jhi'
cf_email='yourname@yourhost.yourplace.com'
-cf_time='Tue Jul 31 18:19:35 EET DST 2001'
+cf_time='Thu Aug 9 16:48:44 EET DST 2001'
charsize='1'
chgrp=''
chmod='chmod'
@@ -77,7 +77,7 @@ cpio=''
cpp='cpp'
cpp_stuff='42'
cppccsymbols='LANGUAGE_C=1'
-cppflags='-std -ieee -D_INTRINSICS -DLANGUAGE_C'
+cppflags='-std -D_INTRINSICS -DLANGUAGE_C'
cpplast=''
cppminus=''
cpprun='/usr/bin/cpp'
@@ -120,6 +120,7 @@ d_charvspr='undef'
d_chown='define'
d_chroot='define'
d_chsize='undef'
+d_class='undef'
d_closedir='define'
d_cmsghdr_s='define'
d_const='define'
@@ -154,11 +155,17 @@ d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
d_fgetpos='define'
+d_finite='define'
+d_finitel='define'
d_flexfnam='define'
d_flock='define'
d_flockproto='undef'
d_fork='define'
+d_fp_class='define'
d_fpathconf='define'
+d_fpclass='undef'
+d_fpclassify='undef'
+d_fpclassl='undef'
d_fpos64_t='undef'
d_frexpl='define'
d_fs_data_s='undef'
@@ -214,6 +221,8 @@ d_index='undef'
d_inetaton='define'
d_int64_t='undef'
d_isascii='define'
+d_isfinite='undef'
+d_isinf='undef'
d_isnan='define'
d_isnanl='define'
d_killpg='define'
@@ -400,6 +409,7 @@ d_ualarm='define'
d_umask='define'
d_uname='define'
d_union_semun='undef'
+d_unordered='define'
d_usleep='define'
d_usleepproto='undef'
d_ustat='define'
@@ -485,6 +495,8 @@ i_dld='undef'
i_dlfcn='define'
i_fcntl='undef'
i_float='define'
+i_fp='define'
+i_fp_class='define'
i_gdbm='undef'
i_grp='define'
i_iconv='define'
@@ -674,7 +686,7 @@ patchlevel='7'
path_sep=':'
perl5='perl'
perl=''
-perl_patchlevel='11497'
+perl_patchlevel='11596'
perladmin='yourname@yourhost.yourplace.com'
perllibs='-lm -liconv -lutil'
perlpath='/opt/perl/bin/perl'
@@ -842,7 +854,7 @@ vendorlibexp=''
vendorprefix=''
vendorprefixexp=''
version='5.7.2'
-version_patchlevel_string='version 7 subversion 2 patch 11497'
+version_patchlevel_string='version 7 subversion 2 patch 11596'
versiononly='define'
vi=''
voidflags='15'
@@ -872,7 +884,7 @@ PERL_SUBVERSION=2
PERL_API_REVISION=5
PERL_API_VERSION=5
PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=11497
+PERL_PATCHLEVEL=11596
PERL_CONFIG_SH=true
# Variables propagated from previous config.sh file.
pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
diff --git a/Porting/config_H b/Porting/config_H
index 6008f4cd15..896a878699 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -17,7 +17,7 @@
/*
* Package name : perl5
* Source directory : .
- * Configuration time: Tue Jul 31 18:19:35 EET DST 2001
+ * Configuration time: Thu Aug 9 16:48:44 EET DST 2001
* Configured by : jhi
* Target system : osf1 alpha.hut.fi v4.0 878 alpha
*/
@@ -1210,6 +1210,24 @@
#define CASTNEGFLOAT /**/
#define CASTFLAGS 0 /**/
+/* HAS_CLASS:
+ * This symbol, if defined, indicates that the class routine is
+ * available to classify doubles. Available for example in AIX.
+ * The returned values are defined in <float.h> and are:
+ *
+ * FP_PLUS_NORM Positive normalized, nonzero
+ * FP_MINUS_NORM Negative normalized, nonzero
+ * FP_PLUS_DENORM Positive denormalized, nonzero
+ * FP_MINUS_DENORM Negative denormalized, nonzero
+ * FP_PLUS_ZERO +0.0
+ * FP_MINUS_ZERO -0.0
+ * FP_PLUS_INF +INF
+ * FP_MINUS_INF -INF
+ * FP_NANS Signaling Not a Number (NaNS)
+ * FP_NANQ Quiet Not a Number (NaNQ)
+ */
+/*#define HAS_CLASS / **/
+
/* VOID_CLOSEDIR:
* This symbol, if defined, indicates that the closedir() routine
* does not return a value.
@@ -1304,12 +1322,93 @@
*/
#define HAS_FD_SET /**/
+/* HAS_FINITE:
+ * This symbol, if defined, indicates that the finite routine is
+ * available to check whether a double is finite (non-infinity non-NaN).
+ */
+#define HAS_FINITE /**/
+
+/* HAS_FINITEL:
+ * This symbol, if defined, indicates that the finitel routine is
+ * available to check whether a long double is finite
+ * (non-infinity non-NaN).
+ */
+#define HAS_FINITEL /**/
+
/* FLEXFILENAMES:
* This symbol, if defined, indicates that the system supports filenames
* longer than 14 characters.
*/
#define FLEXFILENAMES /**/
+/* HAS_FP_CLASS:
+ * This symbol, if defined, indicates that the fp_class routine is
+ * available to classify doubles. Available for example in Digital UNIX.
+ * The returned values are defined in <math.h> and are:
+ *
+ * FP_SNAN Signaling NaN (Not-a-Number)
+ * FP_QNAN Quiet NaN (Not-a-Number)
+ * FP_POS_INF +infinity
+ * FP_NEG_INF -infinity
+ * FP_POS_NORM Positive normalized
+ * FP_NEG_NORM Negative normalized
+ * FP_POS_DENORM Positive denormalized
+ * FP_NEG_DENORM Negative denormalized
+ * FP_POS_ZERO +0.0 (positive zero)
+ * FP_NEG_ZERO -0.0 (negative zero)
+ */
+#define HAS_FP_CLASS /**/
+
+/* HAS_FPCLASS:
+ * This symbol, if defined, indicates that the fpclass routine is
+ * available to classify doubles. Available for example in Solaris/SVR4.
+ * The returned values are defined in <ieeefp.h> and are:
+ *
+ * FP_SNAN signaling NaN
+ * FP_QNAN quiet NaN
+ * FP_NINF negative infinity
+ * FP_PINF positive infinity
+ * FP_NDENORM negative denormalized non-zero
+ * FP_PDENORM positive denormalized non-zero
+ * FP_NZERO negative zero
+ * FP_PZERO positive zero
+ * FP_NNORM negative normalized non-zero
+ * FP_PNORM positive normalized non-zero
+ */
+/*#define HAS_FPCLASS / **/
+
+/* HAS_FPCLASSIFY:
+ * This symbol, if defined, indicates that the fpclassify routine is
+ * available to classify doubles. Available for example in HP-UX.
+ * The returned values are defined in <math.h> and are
+ *
+ * FP_NORMAL Normalized
+ * FP_ZERO Zero
+ * FP_INFINITE Infinity
+ * FP_SUBNORMAL Denormalized
+ * FP_NAN NaN
+ *
+ */
+/*#define HAS_FPCLASSIFY / **/
+
+/* HAS_FPCLASSL:
+ * This symbol, if defined, indicates that the fpclassl routine is
+ * available to classify long doubles. Available for example in IRIX.
+ * The returned values are defined in <ieeefp.h> and are:
+ *
+ * FP_SNAN signaling NaN
+ * FP_QNAN quiet NaN
+ * FP_NINF negative infinity
+ * FP_PINF positive infinity
+ * FP_NDENORM negative denormalized non-zero
+ * FP_PDENORM positive denormalized non-zero
+ * FP_NZERO negative zero
+ * FP_PZERO positive zero
+ * FP_NNORM negative normalized non-zero
+ * FP_PNORM positive normalized non-zero
+ */
+/*#define HAS_FPCLASSL / **/
+
/* HAS_FPOS64_T:
* This symbol will be defined if the C compiler supports fpos64_t.
*/
@@ -1638,6 +1737,18 @@
*/
#define HAS_ISASCII /**/
+/* HAS_ISFINITE:
+ * This symbol, if defined, indicates that the isfinite routine is
+ * available to check whether a double is finite (non-infinity non-NaN).
+ */
+/*#define HAS_ISFINITE / **/
+
+/* HAS_ISINF:
+ * This symbol, if defined, indicates that the isinf routine is
+ * available to check whether a double is an infinity.
+ */
+/*#define HAS_ISINF / **/
+
/* HAS_ISNAN:
* This symbol, if defined, indicates that the isnan routine is
* available to check whether a double is a NaN.
@@ -2262,6 +2373,13 @@
#define USE_SEMCTL_SEMUN /**/
#define USE_SEMCTL_SEMID_DS /**/
+/* HAS_UNORDERED:
+ * This symbol, if defined, indicates that the unordered routine is
+ * available to check whether two doubles are unordered
+ * (effectively: whether either of them is NaN)
+ */
+#define HAS_UNORDERED /**/
+
/* HAS_USTAT:
* This symbol, if defined, indicates that the ustat system call is
* available to query file system statistics by dev_t.
@@ -2408,6 +2526,12 @@
#define DB_VERSION_MINOR_CFG 0 /**/
#define DB_VERSION_PATCH_CFG 0 /**/
+/* I_FP_CLASS:
+ * This symbol, if defined, indicates that <fp_class.h> exists and
+ * should be included.
+ */
+#define I_FP_CLASS /**/
+
/* I_GRP:
* This symbol, if defined, indicates to the C program that it should
* include <grp.h>.
@@ -3451,6 +3575,12 @@
*/
/*#define HAS_USLEEP_PROTO / **/
+/* I_FP:
+ * This symbol, if defined, indicates that <fp.h> exists and
+ * should be included.
+ */
+#define I_FP /**/
+
/* I_LANGINFO:
* This symbol, if defined, indicates that <langinfo.h> exists and
* should be included.
diff --git a/config_h.SH b/config_h.SH
index e3c4a06b4a..9290b75684 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -1230,6 +1230,24 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
#$d_castneg CASTNEGFLOAT /**/
#define CASTFLAGS $castflags /**/
+/* HAS_CLASS:
+ * This symbol, if defined, indicates that the class routine is
+ * available to classify doubles. Available for example in AIX.
+ * The returned values are defined in <float.h> and are:
+ *
+ * FP_PLUS_NORM Positive normalized, nonzero
+ * FP_MINUS_NORM Negative normalized, nonzero
+ * FP_PLUS_DENORM Positive denormalized, nonzero
+ * FP_MINUS_DENORM Negative denormalized, nonzero
+ * FP_PLUS_ZERO +0.0
+ * FP_MINUS_ZERO -0.0
+ * FP_PLUS_INF +INF
+ * FP_MINUS_INF -INF
+ * FP_NANS Signaling Not a Number (NaNS)
+ * FP_NANQ Quiet Not a Number (NaNQ)
+ */
+#$d_class HAS_CLASS /**/
+
/* VOID_CLOSEDIR:
* This symbol, if defined, indicates that the closedir() routine
* does not return a value.
@@ -1324,12 +1342,93 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_fd_set HAS_FD_SET /**/
+/* HAS_FINITE:
+ * This symbol, if defined, indicates that the finite routine is
+ * available to check whether a double is finite (non-infinity non-NaN).
+ */
+#$d_finite HAS_FINITE /**/
+
+/* HAS_FINITEL:
+ * This symbol, if defined, indicates that the finitel routine is
+ * available to check whether a long double is finite
+ * (non-infinity non-NaN).
+ */
+#$d_finitel HAS_FINITEL /**/
+
/* FLEXFILENAMES:
* This symbol, if defined, indicates that the system supports filenames
* longer than 14 characters.
*/
#$d_flexfnam FLEXFILENAMES /**/
+/* HAS_FP_CLASS:
+ * This symbol, if defined, indicates that the fp_class routine is
+ * available to classify doubles. Available for example in Digital UNIX.
+ * The returned values are defined in <math.h> and are:
+ *
+ * FP_SNAN Signaling NaN (Not-a-Number)
+ * FP_QNAN Quiet NaN (Not-a-Number)
+ * FP_POS_INF +infinity
+ * FP_NEG_INF -infinity
+ * FP_POS_NORM Positive normalized
+ * FP_NEG_NORM Negative normalized
+ * FP_POS_DENORM Positive denormalized
+ * FP_NEG_DENORM Negative denormalized
+ * FP_POS_ZERO +0.0 (positive zero)
+ * FP_NEG_ZERO -0.0 (negative zero)
+ */
+#$d_fp_class HAS_FP_CLASS /**/
+
+/* HAS_FPCLASS:
+ * This symbol, if defined, indicates that the fpclass routine is
+ * available to classify doubles. Available for example in Solaris/SVR4.
+ * The returned values are defined in <ieeefp.h> and are:
+ *
+ * FP_SNAN signaling NaN
+ * FP_QNAN quiet NaN
+ * FP_NINF negative infinity
+ * FP_PINF positive infinity
+ * FP_NDENORM negative denormalized non-zero
+ * FP_PDENORM positive denormalized non-zero
+ * FP_NZERO negative zero
+ * FP_PZERO positive zero
+ * FP_NNORM negative normalized non-zero
+ * FP_PNORM positive normalized non-zero
+ */
+#$d_fpclass HAS_FPCLASS /**/
+
+/* HAS_FPCLASSIFY:
+ * This symbol, if defined, indicates that the fpclassify routine is
+ * available to classify doubles. Available for example in HP-UX.
+ * The returned values are defined in <math.h> and are
+ *
+ * FP_NORMAL Normalized
+ * FP_ZERO Zero
+ * FP_INFINITE Infinity
+ * FP_SUBNORMAL Denormalized
+ * FP_NAN NaN
+ *
+ */
+#$d_fpclassify HAS_FPCLASSIFY /**/
+
+/* HAS_FPCLASSL:
+ * This symbol, if defined, indicates that the fpclassl routine is
+ * available to classify long doubles. Available for example in IRIX.
+ * The returned values are defined in <ieeefp.h> and are:
+ *
+ * FP_SNAN signaling NaN
+ * FP_QNAN quiet NaN
+ * FP_NINF negative infinity
+ * FP_PINF positive infinity
+ * FP_NDENORM negative denormalized non-zero
+ * FP_PDENORM positive denormalized non-zero
+ * FP_NZERO negative zero
+ * FP_PZERO positive zero
+ * FP_NNORM negative normalized non-zero
+ * FP_PNORM positive normalized non-zero
+ */
+#$d_fpclassl HAS_FPCLASSL /**/
+
/* HAS_FPOS64_T:
* This symbol will be defined if the C compiler supports fpos64_t.
*/
@@ -1658,6 +1757,18 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_isascii HAS_ISASCII /**/
+/* HAS_ISFINITE:
+ * This symbol, if defined, indicates that the isfinite routine is
+ * available to check whether a double is finite (non-infinity non-NaN).
+ */
+#$d_isfinite HAS_ISFINITE /**/
+
+/* HAS_ISINF:
+ * This symbol, if defined, indicates that the isinf routine is
+ * available to check whether a double is an infinity.
+ */
+#$d_isinf HAS_ISINF /**/
+
/* HAS_ISNAN:
* This symbol, if defined, indicates that the isnan routine is
* available to check whether a double is a NaN.
@@ -2282,6 +2393,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
#$d_semctl_semun USE_SEMCTL_SEMUN /**/
#$d_semctl_semid_ds USE_SEMCTL_SEMID_DS /**/
+/* HAS_UNORDERED:
+ * This symbol, if defined, indicates that the unordered routine is
+ * available to check whether two doubles are unordered
+ * (effectively: whether either of them is NaN)
+ */
+#$d_unordered HAS_UNORDERED /**/
+
/* HAS_USTAT:
* This symbol, if defined, indicates that the ustat system call is
* available to query file system statistics by dev_t.
@@ -2428,6 +2546,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
#define DB_VERSION_MINOR_CFG $db_version_minor /**/
#define DB_VERSION_PATCH_CFG $db_version_patch /**/
+/* I_FP_CLASS:
+ * This symbol, if defined, indicates that <fp_class.h> exists and
+ * should be included.
+ */
+#$i_fp_class I_FP_CLASS /**/
+
/* I_GRP:
* This symbol, if defined, indicates to the C program that it should
* include <grp.h>.
@@ -3471,6 +3595,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_usleepproto HAS_USLEEP_PROTO /**/
+/* I_FP:
+ * This symbol, if defined, indicates that <fp.h> exists and
+ * should be included.
+ */
+#$i_fp I_FP /**/
+
/* I_LANGINFO:
* This symbol, if defined, indicates that <langinfo.h> exists and
* should be included.
diff --git a/configure.com b/configure.com
index a4ff66036c..77c537a8ae 100644
--- a/configure.com
+++ b/configure.com
@@ -5008,6 +5008,7 @@ $ WC "d_charvspr='undef'"
$ WC "d_chown='define'"
$ WC "d_chroot='undef'"
$ WC "d_chsize='undef'"
+$ WC "d_class='undef'"
$ WC "d_cmsghdr_s='undef'"
$ WC "d_const='define'"
$ WC "d_crypt='define'"
@@ -5038,11 +5039,17 @@ $ WC "d_fcntl='" + d_fcntl + "'"
$ WC "d_fcntl_can_lock='" + d_fcntl_can_lock + "'"
$ WC "d_fd_set='" + d_fd_set + "'"
$ WC "d_fgetpos='define'"
+$ WC "d_finite='undef'"
+$ WC "d_finitel='undef'"
$ WC "d_flexfnam='define'"
$ WC "d_flock='undef'"
$ WC "d_flockproto='undef'"
$ WC "d_fork='undef'"
+$ WC "d_fp_class='undef'"
$ WC "d_fpathconf='" + d_fpathconf + "'"
+$ WC "d_fpclass='undef'"
+$ WC "d_fpclassify='undef'"
+$ WC "d_fpclassl='undef'"
$ WC "d_fpos64_t='" + d_fpos64_t + "'"
$ WC "d_frexpl='" + d_frexpl + "'"
$ WC "d_fs_data_s='undef'"
@@ -5097,6 +5104,8 @@ $ WC "d_index='" + d_index + "'"
$ WC "d_inetaton='undef'"
$ WC "d_int64_t='" + d_int64_t + "'"
$ WC "d_isascii='define'"
+$ WC "d_isfinite='undef'"
+$ WC "d_isinf='undef'"
$ WC "d_isnan='" + d_isnan + "'"
$ WC "d_isnanl='" + d_isnanl + "'"
$ WC "d_killpg='undef'"
@@ -5277,6 +5286,7 @@ $ WC "d_umask='define'"
$ WC "d_uname='" + d_uname + "'"
$ WC "d_union_semun='undef'"
$ WC "d_unlink_all_versions='undef'"
+$ WC "d_unordered='undef'"
$ WC "d_usleep='undef'"
$ WC "d_usleepproto='undef'"
$ WC "d_ustat='undef'"
@@ -5350,6 +5360,8 @@ $ WC "i_dirent='" + i_dirent + "'"
$ WC "i_dlfcn='undef'"
$ WC "i_fcntl='" + i_fcntl + "'"
$ WC "i_float='define'"
+$ WC "i_fp='undef'"
+$ WC "i_fp_class='undef'"
$ WC "i_grp='undef'"
$ WC "i_iconv='" + i_iconv +"'"
$ WC "i_ieeefp='undef'"
diff --git a/epoc/config.sh b/epoc/config.sh
index e628e1b7f1..115587c595 100644
--- a/epoc/config.sh
+++ b/epoc/config.sh
@@ -112,6 +112,7 @@ d_charvspr='undef'
d_chown='undef'
d_chroot='undef'
d_chsize='undef'
+d_class='undef'
d_closedir='undef'
d_cmsghdr_s='undef'
d_cmsghdr_s='undef'
@@ -147,11 +148,17 @@ d_fd_macros='undef'
d_fd_set='define'
d_fds_bits='undef'
d_fgetpos='define'
+d_finite='undef'
+d_finitel='undef'
d_flexfnam='define'
d_flock='undef'
d_flockproto='undef'
d_fork='undef'
+d_fp_class='undef'
d_fpathconf='undef'
+d_fpclass='undef'
+d_fpclassify='undef'
+d_fpclassl='undef'
d_fpos64_t='undef'
d_frexpl='undef'
d_fseeko='undef'
@@ -205,6 +212,8 @@ d_inetaton='define'
d_int64_t='undef'
d_iovec_s='undef'
d_isascii='define'
+d_isfinite='undef'
+d_isinf='undef'
d_isnan='define'
d_isnanl='undef'
d_killpg='undef'
@@ -385,6 +394,7 @@ d_ualarm='undef'
d_umask='undef'
d_uname='undef'
d_union_semun='undef'
+d_unordered='undef'
d_usleepproto='undef'
d_vendorlib='undef'
d_vfork='undef'
@@ -448,6 +458,8 @@ i_dld='undef'
i_dlfcn='undef'
i_fcntl='define'
i_float='undef'
+i_fp='undef'
+i_fp_class='undef'
i_gdbm='undef'
i_grp='undef'
i_iconv='undef'
diff --git a/hints/hpux.sh b/hints/hpux.sh
index 34135035f1..6b93d80730 100644
--- a/hints/hpux.sh
+++ b/hints/hpux.sh
@@ -452,3 +452,7 @@ EOM
;;
esac
EOCBU
+
+# fpclassify() is a macro, the library call is Fpclassify
+d_fpclassify='define'
+
diff --git a/perl.h b/perl.h
index 82694489bc..cba24be1a4 100644
--- a/perl.h
+++ b/perl.h
@@ -1299,13 +1299,14 @@ typedef NVTYPE NV;
# else
# define Perl_frexp(x,y) ((long double)frexp((double)(x),y))
# endif
-# ifdef HAS_ISNANL
-# define Perl_isnan(x) isnanl(x)
-# else
-# ifdef HAS_ISNAN
-# define Perl_isnan(x) isnan((double)(x))
-# else
-# define Perl_isnan(x) ((x)!=(x))
+# ifndef Perl_isinf
+# ifdef HAS_ISNANL
+# define Perl_isnan(x) isnanl(x)
+# endif
+# endif
+# ifndef Perl_isinf
+# ifdef HAS_FINITEL
+# define Perl_isinf(x) !(finitel(x)||Perl_isnan(x))
# endif
# endif
#else
@@ -1332,10 +1333,139 @@ typedef NVTYPE NV;
# define Perl_fmod fmod
# define Perl_modf(x,y) modf(x,y)
# define Perl_frexp(x,y) frexp(x,y)
+#endif
+
+/* rumor has it that Win32 has _fpclass() */
+
+#if !defined(Perl_fp_class) && (defined(HAS_FPCLASS)||defined(HAS_FPCLASSL))
+# ifdef I_IEEFP
+# include <ieeefp.h>
+# endif
+# ifdef I_FP
+# include <fp.h>
+# endif
+# if defined(USE_LONG_DOUBLE) && defined(HAS_FPCLASSL)
+# define Perl_fp_class() fpclassl(x)
+# else
+# define Perl_fp_class() fpclass(x)
+# endif
+# define Perl_fp_class_snan(x) (Perl_fp_class(x)==FP_CLASS_SNAN)
+# define Perl_fp_class_qnan(x) (Perl_fp_class(x)==FP_CLASS_QNAN)
+# define Perl_fp_class_nan(x) (Perl_fp_class(x)==FP_CLASS_SNAN||Perl_fp_class(x)==FP_CLASS_QNAN)
+# define Perl_fp_class_ninf(x) (Perl_fp_class(x)==FP_CLASS_NINF)
+# define Perl_fp_class_pinf(x) (Perl_fp_class(x)==FP_CLASS_PINF)
+# define Perl_fp_class_inf(x) (Perl_fp_class(x)==FP_CLASS_NINF||Perl_fp_class(x)==FP_CLASS_PINF)
+# define Perl_fp_class_nnorm(x) (Perl_fp_class(x)==FP_CLASS_NNORM)
+# define Perl_fp_class_pnorm(x) (Perl_fp_class(x)==FP_CLASS_PNORM)
+# define Perl_fp_class_norm(x) (Perl_fp_class(x)==FP_CLASS_NNORM||Perl_fp_class(x)==FP_CLASS_PNORM)
+# define Perl_fp_class_ndenorm(x) (Perl_fp_class(x)==FP_CLASS_NDENORM)
+# define Perl_fp_class_pdenorm(x) (Perl_fp_class(x)==FP_CLASS_PDENORM)
+# define Perl_fp_class_denorm(x) (Perl_fp_class(x)==FP_CLASS_NDENORM||Perl_fp_class(x)==FP_CLASS_PDENORM)
+# define Perl_fp_class_nzero(x) (Perl_fp_class(x)==FP_CLASS_NZERO)
+# define Perl_fp_class_pzero(x) (Perl_fp_class(x)==FP_CLASS_PZERO)
+# define Perl_fp_class_zero(x) (Perl_fp_class(x)==FP_CLASS_NZERO||Perl_fp_class(x)==FP_CLASS_PZERO)
+#endif
+
+#if !defined(Perl_fp_class) && defined(HAS_FP_CLASS)
+# include <math.h>
+# if !defined(FP_SNAN) && defined(I_FP_CLASS)
+# include <fp_class.h>
+# endif
+# define Perl_fp_class(x) fp_class(x)
+# define Perl_fp_class_snan(x) (fp_class(x)==FP_SNAN)
+# define Perl_fp_class_qnan(x) (fp_class(x)==FP_QNAN)
+# define Perl_fp_class_nan(x) (fp_class(x)==FP_SNAN||fp_class(x)==FP_QNAN)
+# define Perl_fp_class_ninf(x) (fp_class(x)==FP_NEG_INF)
+# define Perl_fp_class_pinf(x) (fp_class(x)==FP_POS_INF)
+# define Perl_fp_class_inf(x) (fp_class(x)==FP_NEG_INF||fp_class(x)==FP_POS_INF)
+# define Perl_fp_class_nnorm(x) (fp_class(x)==FP_NEG_NORM)
+# define Perl_fp_class_pnorm(x) (fp_class(x)==FP_POS_NORM)
+# define Perl_fp_class_norm(x) (fp_class(x)==FP_NEG_NORM||fp_class(x)==FP_POS_NORM)
+# define Perl_fp_class_ndenorm(x) (fp_class(x)==FP_NEG_DENORM)
+# define Perl_fp_class_pdenorm(x) (fp_class(x)==FP_POS_DENORM)
+# define Perl_fp_class_denorm(x) (fp_class(x)==FP_NEG_DENORM||fp_class(x)==FP_POS_DENORM)
+# define Perl_fp_class_nzero(x) (fp_class(x)==FP_NEG_ZERO)
+# define Perl_fp_class_pzero(x) (fp_class(x)==FP_POS_ZERO)
+# define Perl_fp_class_zero(x) (fp_class(x)==FP_NEG_ZERO||fp_class(x)==FP_POS_ZERO)
+#endif
+
+#if !defined(Perl_fp_class) && defined(HAS_FPCLASSIFY)
+# include <math.h>
+# define Perl_fp_class(x) fpclassify(x)
+# define Perl_fp_class_nan(x) (fp_classify(x)==FP_SNAN|FP|_fp_classify(x)==QNAN)
+# define Perl_fp_class_inf(x) (fp_classify(x)==FP_INFINITE)
+# define Perl_fp_class_norm(x) (fp_classify(x)==FP_NORMAL)
+# define Perl_fp_class_denorm(x) (fp_classify(x)==FP_SUBNORMAL)
+# define Perl_fp_class_zero(x) (fp_classify(x)==FP_ZERO)
+#endif
+
+#if !defined(Perl_fp_class) && defined(HAS_CLASS)
+# include <math.h>
+# ifndef _cplusplus
+# define Perl_fp_class(x) class(x)
+# else
+# define Perl_fp_class(x) _class(x)
+# endif
+# define Perl_fp_class_snan(x) (Perl_fp_class(x)==FP_NANS)
+# define Perl_fp_class_qnan(x) (Perl_fp_class(x)==FP_NANQ)
+# define Perl_fp_class_nan(x) (Perl_fp_class(x)==FP_SNAN||Perl_fp_class(x)==FP_QNAN)
+# define Perl_fp_class_ninf(x) (Perl_fp_class(x)==FP_MINUS_INF)
+# define Perl_fp_class_pinf(x) (Perl_fp_class(x)==FP_PLUS_INF)
+# define Perl_fp_class_inf(x) (Perl_fp_class(x)==FP_MINUS_INF||Perl_fp_class(x)==FP_PLUS_INF)
+# define Perl_fp_class_nnorm(x) (Perl_fp_class(x)==FP_MINUS_NORM)
+# define Perl_fp_class_pnorm(x) (Perl_fp_class(x)==FP_PLUS_NORM)
+# define Perl_fp_class_norm(x) (Perl_fp_class(x)==FP_MINUS_NORM||Perl_fp_class(x)==FP_PLUS_NORM)
+# define Perl_fp_class_ndenorm(x) (Perl_fp_class(x)==FP_MINUS_DENORM)
+# define Perl_fp_class_pdenorm(x) (Perl_fp_class(x)==FP_PLUS_DENORM)
+# define Perl_fp_class_denorm(x) (Perl_fp_class(x)==FP_MINUS_DENORM||Perl_fp_class(x)==FP_PLUS_DENORM)
+# define Perl_fp_class_nzero(x) (Perl_fp_class(x)==FP_MINUS_ZERO)
+# define Perl_fp_class_pzero(x) (Perl_fp_class(x)==FP_PLUS_ZERO)
+# define Perl_fp_class_zero(x) (Perl_fp_class(x)==FP_MINUS_ZERO||Perl_fp_class(x)==FP_PLUS_ZERO)
+#endif
+
+/* rumor has it that Win32 has _isnan() */
+
+#ifndef Perl_isnan
# ifdef HAS_ISNAN
-# define Perl_isnan(x) isnan(x)
+# define Perl_isnan(x) isnan((NV)x)
# else
-# define Perl_isnan(x) ((x)!=(x))
+# ifdef Perl_fp_class_nan
+# define Perl_isnan(x) Perl_fp_class_nan(x)
+# else
+# ifdef HAS_UNORDERED
+# define Perl_isnan(x) unordered((x), 0.0)
+# else
+# define Perl_isnan(x) ((x)!=(x))
+# endif
+# endif
+# endif
+#endif
+
+#ifndef Perl_isinf
+# ifdef HAS_ISINF
+# define Perl_isinf(x) isinf((NV)x)
+# else
+# ifdef Perl_fp_class_inf
+# define Perl_isinf(x) Perl_fp_class_inf(x)
+# else
+# define Perl_isinf(x) ((x)==NV_INF)
+# endif
+# endif
+#endif
+
+#ifndef Perl_isfinite
+# ifdef HAS_FINITE
+# define Perl_isfinite(x) finite((NV)x)
+# else
+# ifdef HAS_ISFINITE
+# define Perl_isfinite(x) isfinite(x)
+# else
+# ifdef Perl_fp_class_finite
+# define Perl_isfinite(x) Perl_fp_class_finite(x)
+# else
+# define Perl_isfinite(x) !(Perl_is_inf(x)||Perl_is_nan(x))
+# endif
+# endif
# endif
#endif
diff --git a/pod/perltoc.pod b/pod/perltoc.pod
index 2c00af49ee..3f86e677e5 100644
--- a/pod/perltoc.pod
+++ b/pod/perltoc.pod
@@ -1850,13 +1850,13 @@ ADDR,ADDRTYPE, getprotobynumber NUMBER, getservbyport PORT,PROTO, getpwent,
getgrent, gethostent, getnetent, getprotoent, getservent, setpwent,
setgrent, sethostent STAYOPEN, setnetent STAYOPEN, setprotoent STAYOPEN,
setservent STAYOPEN, endpwent, endgrent, endhostent, endnetent,
-endprotoent, endservent, getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob,
-ioctl FILEHANDLE,FUNCTION,SCALAR, kill SIGNAL, LIST, link OLDFILE,NEWFILE,
-lstat FILEHANDLE, lstat EXPR, lstat, msgctl ID,CMD,ARG, msgget KEY,FLAGS,
-msgsnd ID,MSG,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, open FILEHANDLE,EXPR,
-open FILEHANDLE, pipe READHANDLE,WRITEHANDLE, readlink EXPR, readlink,
-select RBITS,WBITS,EBITS,TIMEOUT, semctl ID,SEMNUM,CMD,ARG, semget
-KEY,NSEMS,FLAGS, semop KEY,OPSTRING, setgrent, setpgrp PID,PGRP,
+endprotoent, endservent, exit EXPR, exit, getsockopt SOCKET,LEVEL,OPTNAME,
+glob EXPR, glob, ioctl FILEHANDLE,FUNCTION,SCALAR, kill SIGNAL, LIST, link
+OLDFILE,NEWFILE, lstat FILEHANDLE, lstat EXPR, lstat, msgctl ID,CMD,ARG,
+msgget KEY,FLAGS, msgsnd ID,MSG,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, open
+FILEHANDLE,EXPR, open FILEHANDLE, pipe READHANDLE,WRITEHANDLE, readlink
+EXPR, readlink, select RBITS,WBITS,EBITS,TIMEOUT, semctl ID,SEMNUM,CMD,ARG,
+semget KEY,NSEMS,FLAGS, semop KEY,OPSTRING, setgrent, setpgrp PID,PGRP,
setpriority WHICH,WHO,PRIORITY, setpwent, setsockopt
SOCKET,LEVEL,OPTNAME,OPTVAL, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS,
shmread ID,VAR,POS,SIZE, shmwrite ID,STRING,POS,SIZE, sockatmark SOCKET,
@@ -6003,50 +6003,6 @@ Source, Compiled Module Source, Perl Modules/Scripts
=back
-=head2 perldos - Perl under DOS, W31, W95.
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=over 4
-
-=item Prerequisites for Compiling Perl on DOS
-
-DJGPP, Pthreads
-
-=item Shortcomings of Perl under DOS
-
-=item Building Perl on DOS
-
-=item Testing Perl on DOS
-
-=item Installation of Perl on DOS
-
-=back
-
-=item BUILDING AND INSTALLING MODULES ON DOS
-
-=over 4
-
-=item Building Prerequisites for Perl on DOS
-
-=item Unpacking CPAN Modules on DOS
-
-=item Building Non-XS Modules on DOS
-
-=item Building XS Modules on DOS
-
-=back
-
-=item AUTHOR
-
-=item SEE ALSO
-
-=back
-
=head2 perlepoc, README.epoc - Perl for EPOC
=over 4
@@ -6917,48 +6873,6 @@ LIST, waitpid PID,FLAGS
=back
-=head2 perlwin32 - Perl under Win32
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=over 4
-
-=item Setting Up Perl on Win32
-
-Make, Command Shell, Borland C++, Microsoft Visual C++, Mingw32 with GCC
-
-=item Building
-
-=item Testing Perl on Win32
-
-=item Installation of Perl on Win32
-
-=item Usage Hints for Perl on Win32
-
-Environment Variables, File Globbing, Using perl from the command line,
-Building Extensions, Command-line Wildcard Expansion, Win32 Specific
-Extensions, Running Perl Scripts, Miscellaneous Things
-
-=back
-
-=item BUGS AND CAVEATS
-
-=item AUTHORS
-
-Gary Ng E<lt>71564.1743@CompuServe.COME<gt>, Gurusamy Sarathy
-E<lt>gsar@activestate.comE<gt>, Nick Ing-Simmons
-E<lt>nick@ing-simmons.netE<gt>
-
-=item SEE ALSO
-
-=item HISTORY
-
-=back
-
=head1 PRAGMA DOCUMENTATION
=head2 attrs - set/get attributes of a subroutine (deprecated)
@@ -8831,39 +8745,41 @@ C<d__fwalk>, C<d_access>, C<d_accessx>, C<d_alarm>, C<d_archlib>,
C<d_atolf>, C<d_atoll>, C<d_attribut>, C<d_bcmp>, C<d_bcopy>,
C<d_bincompat5005>, C<d_bsd>, C<d_bsdgetpgrp>, C<d_bsdsetpgrp>, C<d_bzero>,
C<d_casti32>, C<d_castneg>, C<d_charvspr>, C<d_chown>, C<d_chroot>,
-C<d_chsize>, C<d_closedir>, C<d_cmsghdr_s>, C<d_const>, C<d_crypt>,
-C<d_csh>, C<d_cuserid>, C<d_dbl_dig>, C<d_dbminitproto>, C<d_difftime>,
-C<d_dirnamlen>, C<d_dlerror>, C<d_dlopen>, C<d_dlsymun>, C<d_dosuid>,
-C<d_drand48proto>, C<d_dup2>, C<d_eaccess>, C<d_endgrent>, C<d_endhent>,
-C<d_endnent>, C<d_endpent>, C<d_endpwent>, C<d_endsent>, C<d_eofnblk>,
-C<d_eunice>, C<d_fchdir>, C<d_fchmod>, C<d_fchown>, C<d_fcntl>,
-C<d_fcntl_can_lock>, C<d_fd_macros>, C<d_fd_set>, C<d_fds_bits>,
-C<d_fgetpos>, C<d_flexfnam>, C<d_flock>, C<d_flockproto>, C<d_fork>,
-C<d_fpathconf>, C<d_fpos64_t>, C<d_frexpl>, C<d_fs_data_s>, C<d_fseeko>,
-C<d_fsetpos>, C<d_fstatfs>, C<d_fstatvfs>, C<d_fsync>, C<d_ftello>,
-C<d_ftime>, C<d_Gconvert>, C<d_getcwd>, C<d_getespwnam>, C<d_getfsstat>,
-C<d_getgrent>, C<d_getgrps>, C<d_gethbyaddr>, C<d_gethbyname>,
-C<d_gethent>, C<d_gethname>, C<d_gethostprotos>, C<d_getitimer>,
-C<d_getlogin>, C<d_getmnt>, C<d_getmntent>, C<d_getnbyaddr>,
-C<d_getnbyname>, C<d_getnent>, C<d_getnetprotos>, C<d_getpagsz>,
-C<d_getpbyname>, C<d_getpbynumber>, C<d_getpent>, C<d_getpgid>,
-C<d_getpgrp2>, C<d_getpgrp>, C<d_getppid>, C<d_getprior>,
-C<d_getprotoprotos>, C<d_getprpwnam>, C<d_getpwent>, C<d_getsbyname>,
-C<d_getsbyport>, C<d_getsent>, C<d_getservprotos>, C<d_getspnam>,
-C<d_gettimeod>, C<d_gnulibc>, C<d_grpasswd>, C<d_hasmntopt>, C<d_htonl>,
-C<d_iconv>, C<d_index>, C<d_inetaton>, C<d_int64_t>, C<d_isascii>,
-C<d_isnan>, C<d_isnanl>, C<d_killpg>, C<d_lchown>, C<d_ldbl_dig>,
-C<d_link>, C<d_locconv>, C<d_lockf>, C<d_longdbl>, C<d_longlong>,
-C<d_lseekproto>, C<d_lstat>, C<d_madvise>, C<d_mblen>, C<d_mbstowcs>,
-C<d_mbtowc>, C<d_memchr>, C<d_memcmp>, C<d_memcpy>, C<d_memmove>,
-C<d_memset>, C<d_mkdir>, C<d_mkdtemp>, C<d_mkfifo>, C<d_mkstemp>,
-C<d_mkstemps>, C<d_mktime>, C<d_mmap>, C<d_modfl>, C<d_modfl_pow32_bug>,
-C<d_mprotect>, C<d_msg>, C<d_msg_ctrunc>, C<d_msg_dontroute>, C<d_msg_oob>,
-C<d_msg_peek>, C<d_msg_proxy>, C<d_msgctl>, C<d_msgget>, C<d_msghdr_s>,
-C<d_msgrcv>, C<d_msgsnd>, C<d_msync>, C<d_munmap>, C<d_mymalloc>,
-C<d_nice>, C<d_nl_langinfo>, C<d_nv_preserves_uv>,
-C<d_nv_preserves_uv_bits>, C<d_off64_t>, C<d_old_pthread_create_joinable>,
-C<d_oldpthreads>, C<d_oldsock>, C<d_open3>, C<d_pathconf>, C<d_pause>,
+C<d_chsize>, C<d_class>, C<d_closedir>, C<d_cmsghdr_s>, C<d_const>,
+C<d_crypt>, C<d_csh>, C<d_cuserid>, C<d_dbl_dig>, C<d_dbminitproto>,
+C<d_difftime>, C<d_dirnamlen>, C<d_dlerror>, C<d_dlopen>, C<d_dlsymun>,
+C<d_dosuid>, C<d_drand48proto>, C<d_dup2>, C<d_eaccess>, C<d_endgrent>,
+C<d_endhent>, C<d_endnent>, C<d_endpent>, C<d_endpwent>, C<d_endsent>,
+C<d_eofnblk>, C<d_eunice>, C<d_fchdir>, C<d_fchmod>, C<d_fchown>,
+C<d_fcntl>, C<d_fcntl_can_lock>, C<d_fd_macros>, C<d_fd_set>,
+C<d_fds_bits>, C<d_fgetpos>, C<d_finite>, C<d_finitel>, C<d_flexfnam>,
+C<d_flock>, C<d_flockproto>, C<d_fork>, C<d_fp_class>, C<d_fpathconf>,
+C<d_fpclass>, C<d_fpclassify>, C<d_fpclassl>, C<d_fpos64_t>, C<d_frexpl>,
+C<d_fs_data_s>, C<d_fseeko>, C<d_fsetpos>, C<d_fstatfs>, C<d_fstatvfs>,
+C<d_fsync>, C<d_ftello>, C<d_ftime>, C<d_Gconvert>, C<d_getcwd>,
+C<d_getespwnam>, C<d_getfsstat>, C<d_getgrent>, C<d_getgrps>,
+C<d_gethbyaddr>, C<d_gethbyname>, C<d_gethent>, C<d_gethname>,
+C<d_gethostprotos>, C<d_getitimer>, C<d_getlogin>, C<d_getmnt>,
+C<d_getmntent>, C<d_getnbyaddr>, C<d_getnbyname>, C<d_getnent>,
+C<d_getnetprotos>, C<d_getpagsz>, C<d_getpbyname>, C<d_getpbynumber>,
+C<d_getpent>, C<d_getpgid>, C<d_getpgrp2>, C<d_getpgrp>, C<d_getppid>,
+C<d_getprior>, C<d_getprotoprotos>, C<d_getprpwnam>, C<d_getpwent>,
+C<d_getsbyname>, C<d_getsbyport>, C<d_getsent>, C<d_getservprotos>,
+C<d_getspnam>, C<d_gettimeod>, C<d_gnulibc>, C<d_grpasswd>, C<d_hasmntopt>,
+C<d_htonl>, C<d_iconv>, C<d_index>, C<d_inetaton>, C<d_int64_t>,
+C<d_isascii>, C<d_isfinite>, C<d_isinf>, C<d_isnan>, C<d_isnanl>,
+C<d_killpg>, C<d_lchown>, C<d_ldbl_dig>, C<d_link>, C<d_locconv>,
+C<d_lockf>, C<d_longdbl>, C<d_longlong>, C<d_lseekproto>, C<d_lstat>,
+C<d_madvise>, C<d_mblen>, C<d_mbstowcs>, C<d_mbtowc>, C<d_memchr>,
+C<d_memcmp>, C<d_memcpy>, C<d_memmove>, C<d_memset>, C<d_mkdir>,
+C<d_mkdtemp>, C<d_mkfifo>, C<d_mkstemp>, C<d_mkstemps>, C<d_mktime>,
+C<d_mmap>, C<d_modfl>, C<d_modfl_pow32_bug>, C<d_mprotect>, C<d_msg>,
+C<d_msg_ctrunc>, C<d_msg_dontroute>, C<d_msg_oob>, C<d_msg_peek>,
+C<d_msg_proxy>, C<d_msgctl>, C<d_msgget>, C<d_msghdr_s>, C<d_msgrcv>,
+C<d_msgsnd>, C<d_msync>, C<d_munmap>, C<d_mymalloc>, C<d_nice>,
+C<d_nl_langinfo>, C<d_nv_preserves_uv>, C<d_nv_preserves_uv_bits>,
+C<d_off64_t>, C<d_old_pthread_create_joinable>, C<d_oldpthreads>,
+C<d_oldsock>, C<d_open3>, C<d_pathconf>, C<d_pause>,
C<d_perl_otherlibdirs>, C<d_phostname>, C<d_pipe>, C<d_poll>,
C<d_portable>, C<d_PRId64>, C<d_PRIeldbl>, C<d_PRIEUldbl>, C<d_PRIfldbl>,
C<d_PRIFUldbl>, C<d_PRIgldbl>, C<d_PRIGUldbl>, C<d_PRIi64>, C<d_PRIo64>,
@@ -8895,14 +8811,14 @@ C<d_strxfrm>, C<d_suidsafe>, C<d_symlink>, C<d_syscall>, C<d_syscallproto>,
C<d_sysconf>, C<d_sysernlst>, C<d_syserrlst>, C<d_system>, C<d_tcgetpgrp>,
C<d_tcsetpgrp>, C<d_telldir>, C<d_telldirproto>, C<d_time>, C<d_times>,
C<d_truncate>, C<d_tzname>, C<d_u32align>, C<d_ualarm>, C<d_umask>,
-C<d_uname>, C<d_union_semun>, C<d_usleep>, C<d_usleepproto>, C<d_ustat>,
-C<d_vendorarch>, C<d_vendorbin>, C<d_vendorlib>, C<d_vfork>,
-C<d_void_closedir>, C<d_voidsig>, C<d_voidtty>, C<d_volatile>,
-C<d_vprintf>, C<d_wait4>, C<d_waitpid>, C<d_wcstombs>, C<d_wctomb>,
-C<d_writev>, C<d_xenix>, C<date>, C<db_hashtype>, C<db_prefixtype>,
-C<db_version_major>, C<db_version_minor>, C<db_version_patch>,
-C<defvoidused>, C<direntrytype>, C<dlext>, C<dlsrc>, C<doublesize>,
-C<drand01>, C<dynamic_ext>
+C<d_uname>, C<d_union_semun>, C<d_unordered>, C<d_usleep>,
+C<d_usleepproto>, C<d_ustat>, C<d_vendorarch>, C<d_vendorbin>,
+C<d_vendorlib>, C<d_vfork>, C<d_void_closedir>, C<d_voidsig>, C<d_voidtty>,
+C<d_volatile>, C<d_vprintf>, C<d_wait4>, C<d_waitpid>, C<d_wcstombs>,
+C<d_wctomb>, C<d_writev>, C<d_xenix>, C<date>, C<db_hashtype>,
+C<db_prefixtype>, C<db_version_major>, C<db_version_minor>,
+C<db_version_patch>, C<defvoidused>, C<direntrytype>, C<dlext>, C<dlsrc>,
+C<doublesize>, C<drand01>, C<dynamic_ext>
=item e
@@ -8928,28 +8844,28 @@ C<h_fcntl>, C<h_sysfile>, C<hint>, C<hostcat>
C<i16size>, C<i16type>, C<i32size>, C<i32type>, C<i64size>, C<i64type>,
C<i8size>, C<i8type>, C<i_arpainet>, C<i_bsdioctl>, C<i_db>, C<i_dbm>,
-C<i_dirent>, C<i_dld>, C<i_dlfcn>, C<i_fcntl>, C<i_float>, C<i_gdbm>,
-C<i_grp>, C<i_iconv>, C<i_ieeefp>, C<i_inttypes>, C<i_langinfo>,
-C<i_libutil>, C<i_limits>, C<i_locale>, C<i_machcthr>, C<i_malloc>,
-C<i_math>, C<i_memory>, C<i_mntent>, C<i_ndbm>, C<i_netdb>, C<i_neterrno>,
-C<i_netinettcp>, C<i_niin>, C<i_poll>, C<i_prot>, C<i_pthread>, C<i_pwd>,
-C<i_rpcsvcdbm>, C<i_sfio>, C<i_sgtty>, C<i_shadow>, C<i_socks>,
-C<i_stdarg>, C<i_stddef>, C<i_stdlib>, C<i_string>, C<i_sunmath>,
-C<i_sysaccess>, C<i_sysdir>, C<i_sysfile>, C<i_sysfilio>, C<i_sysin>,
-C<i_sysioctl>, C<i_syslog>, C<i_sysmman>, C<i_sysmode>, C<i_sysmount>,
-C<i_sysndir>, C<i_sysparam>, C<i_sysresrc>, C<i_syssecrt>, C<i_sysselct>,
-C<i_syssockio>, C<i_sysstat>, C<i_sysstatfs>, C<i_sysstatvfs>,
-C<i_systime>, C<i_systimek>, C<i_systimes>, C<i_systypes>, C<i_sysuio>,
-C<i_sysun>, C<i_sysutsname>, C<i_sysvfs>, C<i_syswait>, C<i_termio>,
-C<i_termios>, C<i_time>, C<i_unistd>, C<i_ustat>, C<i_utime>, C<i_values>,
-C<i_varargs>, C<i_varhdr>, C<i_vfork>, C<ignore_versioned_solibs>,
-C<inc_version_list>, C<inc_version_list_init>, C<incpath>, C<inews>,
-C<installarchlib>, C<installbin>, C<installman1dir>, C<installman3dir>,
-C<installprefix>, C<installprefixexp>, C<installprivlib>, C<installscript>,
-C<installsitearch>, C<installsitebin>, C<installsitelib>, C<installstyle>,
-C<installusrbinperl>, C<installvendorarch>, C<installvendorbin>,
-C<installvendorlib>, C<intsize>, C<issymlink>, C<ivdformat>, C<ivsize>,
-C<ivtype>
+C<i_dirent>, C<i_dld>, C<i_dlfcn>, C<i_fcntl>, C<i_float>, C<i_fp>,
+C<i_fp_class>, C<i_gdbm>, C<i_grp>, C<i_iconv>, C<i_ieeefp>, C<i_inttypes>,
+C<i_langinfo>, C<i_libutil>, C<i_limits>, C<i_locale>, C<i_machcthr>,
+C<i_malloc>, C<i_math>, C<i_memory>, C<i_mntent>, C<i_ndbm>, C<i_netdb>,
+C<i_neterrno>, C<i_netinettcp>, C<i_niin>, C<i_poll>, C<i_prot>,
+C<i_pthread>, C<i_pwd>, C<i_rpcsvcdbm>, C<i_sfio>, C<i_sgtty>, C<i_shadow>,
+C<i_socks>, C<i_stdarg>, C<i_stddef>, C<i_stdlib>, C<i_string>,
+C<i_sunmath>, C<i_sysaccess>, C<i_sysdir>, C<i_sysfile>, C<i_sysfilio>,
+C<i_sysin>, C<i_sysioctl>, C<i_syslog>, C<i_sysmman>, C<i_sysmode>,
+C<i_sysmount>, C<i_sysndir>, C<i_sysparam>, C<i_sysresrc>, C<i_syssecrt>,
+C<i_sysselct>, C<i_syssockio>, C<i_sysstat>, C<i_sysstatfs>,
+C<i_sysstatvfs>, C<i_systime>, C<i_systimek>, C<i_systimes>, C<i_systypes>,
+C<i_sysuio>, C<i_sysun>, C<i_sysutsname>, C<i_sysvfs>, C<i_syswait>,
+C<i_termio>, C<i_termios>, C<i_time>, C<i_unistd>, C<i_ustat>, C<i_utime>,
+C<i_values>, C<i_varargs>, C<i_varhdr>, C<i_vfork>,
+C<ignore_versioned_solibs>, C<inc_version_list>, C<inc_version_list_init>,
+C<incpath>, C<inews>, C<installarchlib>, C<installbin>, C<installman1dir>,
+C<installman3dir>, C<installprefix>, C<installprefixexp>,
+C<installprivlib>, C<installscript>, C<installsitearch>, C<installsitebin>,
+C<installsitelib>, C<installstyle>, C<installusrbinperl>,
+C<installvendorarch>, C<installvendorbin>, C<installvendorlib>, C<intsize>,
+C<issymlink>, C<ivdformat>, C<ivsize>, C<ivtype>
=item k
@@ -11201,7 +11117,7 @@ B<$_>, B<$status>, B<filter_read> and B<filter_read_exact>, B<filter_del>
=item Summary of Option Specifications
-!, +, s, i, f, : I<type> [ I<desttype> ]
+!, +, s, i, o, f, : I<type> [ I<desttype> ]
=back
@@ -12514,27 +12430,10 @@ ffround ( +$scale ), ffround ( -$scale ), ffround ( 0 ), fround ( +$scale
=item EXAMPLES
- use Math::BigFloat qw(bstr bint);
# not ready yet
- $x = bstr("1234") # string "1234"
- $x = "$x"; # same as bstr()
- $x = bneg("1234") # BigFloat "-1234"
- $x = Math::BigFloat->bneg("1234"); # BigFloat "1234"
- $x = Math::BigFloat->babs("-12345"); # BigFloat "12345"
- $x = Math::BigFloat->bnorm("-0 00"); # BigFloat "0"
- $x = bint(1) + bint(2); # BigFloat "3"
- $x = bint(1) + "2"; # ditto (auto-BigFloatify of "2")
- $x = bint(1); # BigFloat "1"
- $x = $x + 5 / 2; # BigFloat "3"
- $x = $x ** 3; # BigFloat "27"
- $x *= 2; # BigFloat "54"
- $x = new Math::BigFloat; # BigFloat "0"
- $x--; # BigFloat "-1"
=item Autocreating constants
-=item PERFORMANCE
-
=item BUGS
=item CAVEAT
@@ -12580,30 +12479,17 @@ Remarks
=over 4
+=item MATH LIBRARY
+
+=item SIGN
+
=item mantissa(), exponent() and parts()
=back
=item EXAMPLES
- use Math::BigInt qw(bstr bint);
- $x = bstr("1234") # string "1234"
- $x = "$x"; # same as bstr()
- $x = bneg("1234") # Bigint "-1234"
- $x = Math::BigInt->bneg("1234"); # Bigint "-1234"
- $x = Math::BigInt->babs("-12345"); # Bigint "12345"
- $x = Math::BigInt->bnorm("-0 00"); # BigInt "0"
- $x = bint(1) + bint(2); # BigInt "3"
- $x = bint(1) + "2"; # ditto (auto-BigIntify of "2")
- $x = bint(1); # BigInt "1"
- $x = $x + 5 / 2; # BigInt "3"
- $x = $x ** 3; # BigInt "27"
- $x *= 2; # BigInt "54"
- $x = new Math::BigInt; # BigInt "0"
- $x--; # BigInt "-1"
- $x = Math::BigInt->badd(4,5) # BigInt "9"
- $x = Math::BigInt::badd(4,5) # BigInt "9"
- print $x->bsstr(); # 9e+0
+ use Math::BigInt qw(bstr);
=item Autocreating constants
@@ -12611,13 +12497,13 @@ Remarks
=over 4
-=item Replacing the math library
+=item Alternative math libraries
=back
=item BUGS
-:constant and eval()
+Out of Memory!, Fails to load Calc on Perl prior 5.6.0
=item CAVEATS
@@ -12642,6 +12528,8 @@ Overloading -$x, Mixing different object types, bsqrt()
=item EXPORT
+=item WRAP YOUR OWN
+
=item LICENSE
This program is free software; you may redistribute it and/or modify it
diff --git a/uconfig.h b/uconfig.h
index 4dcddc81ec..3e31582cdc 100644
--- a/uconfig.h
+++ b/uconfig.h
@@ -1206,6 +1206,24 @@
/*#define CASTNEGFLOAT / **/
#define CASTFLAGS 0 /**/
+/* HAS_CLASS:
+ * This symbol, if defined, indicates that the class routine is
+ * available to classify doubles. Available for example in AIX.
+ * The returned values are defined in <float.h> and are:
+ *
+ * FP_PLUS_NORM Positive normalized, nonzero
+ * FP_MINUS_NORM Negative normalized, nonzero
+ * FP_PLUS_DENORM Positive denormalized, nonzero
+ * FP_MINUS_DENORM Negative denormalized, nonzero
+ * FP_PLUS_ZERO +0.0
+ * FP_MINUS_ZERO -0.0
+ * FP_PLUS_INF +INF
+ * FP_MINUS_INF -INF
+ * FP_NANS Signaling Not a Number (NaNS)
+ * FP_NANQ Quiet Not a Number (NaNQ)
+ */
+/*#define HAS_CLASS / **/
+
/* VOID_CLOSEDIR:
* This symbol, if defined, indicates that the closedir() routine
* does not return a value.
@@ -1300,12 +1318,93 @@
*/
/*#define HAS_FD_SET / **/
+/* HAS_FINITE:
+ * This symbol, if defined, indicates that the finite routine is
+ * available to check whether a double is finite (non-infinity non-NaN).
+ */
+/*#define HAS_FINITE / **/
+
+/* HAS_FINITEL:
+ * This symbol, if defined, indicates that the finitel routine is
+ * available to check whether a long double is finite
+ * (non-infinity non-NaN).
+ */
+/*#define HAS_FINITEL / **/
+
/* FLEXFILENAMES:
* This symbol, if defined, indicates that the system supports filenames
* longer than 14 characters.
*/
/*#define FLEXFILENAMES / **/
+/* HAS_FP_CLASS:
+ * This symbol, if defined, indicates that the fp_class routine is
+ * available to classify doubles. Available for example in Digital UNIX.
+ * The returned values are defined in <math.h> and are:
+ *
+ * FP_SNAN Signaling NaN (Not-a-Number)
+ * FP_QNAN Quiet NaN (Not-a-Number)
+ * FP_POS_INF +infinity
+ * FP_NEG_INF -infinity
+ * FP_POS_NORM Positive normalized
+ * FP_NEG_NORM Negative normalized
+ * FP_POS_DENORM Positive denormalized
+ * FP_NEG_DENORM Negative denormalized
+ * FP_POS_ZERO +0.0 (positive zero)
+ * FP_NEG_ZERO -0.0 (negative zero)
+ */
+/*#define HAS_FP_CLASS / **/
+
+/* HAS_FPCLASS:
+ * This symbol, if defined, indicates that the fpclass routine is
+ * available to classify doubles. Available for example in Solaris/SVR4.
+ * The returned values are defined in <ieeefp.h> and are:
+ *
+ * FP_SNAN signaling NaN
+ * FP_QNAN quiet NaN
+ * FP_NINF negative infinity
+ * FP_PINF positive infinity
+ * FP_NDENORM negative denormalized non-zero
+ * FP_PDENORM positive denormalized non-zero
+ * FP_NZERO negative zero
+ * FP_PZERO positive zero
+ * FP_NNORM negative normalized non-zero
+ * FP_PNORM positive normalized non-zero
+ */
+/*#define HAS_FPCLASS / **/
+
+/* HAS_FPCLASSIFY:
+ * This symbol, if defined, indicates that the fpclassify routine is
+ * available to classify doubles. Available for example in HP-UX.
+ * The returned values are defined in <math.h> and are
+ *
+ * FP_NORMAL Normalized
+ * FP_ZERO Zero
+ * FP_INFINITE Infinity
+ * FP_SUBNORMAL Denormalized
+ * FP_NAN NaN
+ *
+ */
+/*#define HAS_FPCLASSIFY / **/
+
+/* HAS_FPCLASSL:
+ * This symbol, if defined, indicates that the fpclassl routine is
+ * available to classify long doubles. Available for example in IRIX.
+ * The returned values are defined in <ieeefp.h> and are:
+ *
+ * FP_SNAN signaling NaN
+ * FP_QNAN quiet NaN
+ * FP_NINF negative infinity
+ * FP_PINF positive infinity
+ * FP_NDENORM negative denormalized non-zero
+ * FP_PDENORM positive denormalized non-zero
+ * FP_NZERO negative zero
+ * FP_PZERO positive zero
+ * FP_NNORM negative normalized non-zero
+ * FP_PNORM positive normalized non-zero
+ */
+/*#define HAS_FPCLASSL / **/
+
/* HAS_FPOS64_T:
* This symbol will be defined if the C compiler supports fpos64_t.
*/
@@ -1634,6 +1733,18 @@
*/
/*#define HAS_ISASCII / **/
+/* HAS_ISFINITE:
+ * This symbol, if defined, indicates that the isfinite routine is
+ * available to check whether a double is finite (non-infinity non-NaN).
+ */
+/*#define HAS_ISFINITE / **/
+
+/* HAS_ISINF:
+ * This symbol, if defined, indicates that the isinf routine is
+ * available to check whether a double is an infinity.
+ */
+/*#define HAS_ISINF / **/
+
/* HAS_ISNAN:
* This symbol, if defined, indicates that the isnan routine is
* available to check whether a double is a NaN.
@@ -2258,6 +2369,13 @@
/*#define USE_SEMCTL_SEMUN / **/
/*#define USE_SEMCTL_SEMID_DS / **/
+/* HAS_UNORDERED:
+ * This symbol, if defined, indicates that the unordered routine is
+ * available to check whether two doubles are unordered
+ * (effectively: whether either of them is NaN)
+ */
+/*#define HAS_UNORDERED / **/
+
/* HAS_USTAT:
* This symbol, if defined, indicates that the ustat system call is
* available to query file system statistics by dev_t.
@@ -2404,6 +2522,12 @@
#define DB_VERSION_MINOR_CFG /**/
#define DB_VERSION_PATCH_CFG /**/
+/* I_FP_CLASS:
+ * This symbol, if defined, indicates that <fp_class.h> exists and
+ * should be included.
+ */
+/*#define I_FP_CLASS / **/
+
/* I_GRP:
* This symbol, if defined, indicates to the C program that it should
* include <grp.h>.
@@ -3447,6 +3571,12 @@
*/
/*#define HAS_USLEEP_PROTO / **/
+/* I_FP:
+ * This symbol, if defined, indicates that <fp.h> exists and
+ * should be included.
+ */
+/*#define I_FP / **/
+
/* I_LANGINFO:
* This symbol, if defined, indicates that <langinfo.h> exists and
* should be included.
diff --git a/uconfig.sh b/uconfig.sh
index 0604c86bfd..4e30aedb9e 100755
--- a/uconfig.sh
+++ b/uconfig.sh
@@ -50,6 +50,7 @@ d_charvspr='undef'
d_chown='undef'
d_chroot='undef'
d_chsize='undef'
+d_class='undef'
d_closedir='undef'
d_cmsghdr_s='undef'
d_const='undef'
@@ -84,11 +85,17 @@ d_fd_macros='undef'
d_fd_set='undef'
d_fds_bits='undef'
d_fgetpos='undef'
+d_finite='undef'
+d_finitel='undef'
d_flexfnam='undef'
d_flock='undef'
d_flockproto='undef'
d_fork='define'
+d_fp_class='undef'
d_fpathconf='undef'
+d_fpclass='undef'
+d_fpclassify='undef'
+d_fpclassl='undef'
d_fpos64_t='undef'
d_frexpl='undef'
d_fs_data_s='undef'
@@ -145,6 +152,8 @@ d_index='undef'
d_inetaton='undef'
d_int64_t='undef'
d_isascii='undef'
+d_isfinite='undef'
+d_isinf='undef'
d_isnan='undef'
d_isnanl='undef'
d_killpg='undef'
@@ -331,6 +340,7 @@ d_ualarm='undef'
d_umask='undef'
d_uname='undef'
d_union_semun='undef'
+d_unordered='undef'
d_usleep='undef'
d_usleepproto='undef'
d_ustat='undef'
@@ -387,6 +397,8 @@ i_dld='undef'
i_dlfcn='undef'
i_fcntl='undef'
i_float='undef'
+i_fp='undef'
+i_fp_class='undef'
i_gdbm='undef'
i_grp='undef'
i_iconv='undef'
diff --git a/vos/config.alpha.def b/vos/config.alpha.def
index 6400dfa530..5dd17a9e60 100644
--- a/vos/config.alpha.def
+++ b/vos/config.alpha.def
@@ -40,6 +40,7 @@ $d_charvspr='undef'
$d_chown='undef'
$d_chroot='undef'
$d_chsize='undef'
+$d_class='undef'
$d_cmsghdr_s='undef'
$d_const='define'
$d_crypt='undef'
@@ -69,11 +70,17 @@ $d_fcntl='define'
$d_fcntl_can_lock='define'
$d_fd_set='undef'
$d_fgetpos='define'
+$d_finite='undef'
+$d_finitel='undef'
$d_flexfnam='define'
$d_flock='undef'
$d_flockproto='undef'
$d_fork='undef'
+$d_fp_class='undef'
$d_fpathconf='define'
+$d_fpclass='undef'
+$d_fpclassify='undef'
+$d_fpclassl='undef'
$d_fpos64_t='undef'
$d_frexpl='undef'
$d_fs_data_s='undef'
@@ -128,6 +135,8 @@ $d_index='undef'
$d_inetaton='undef'
$d_int64_t='undef'
$d_isascii='define'
+$d_isfinite='undef'
+$d_isinf='undef'
$d_isnan='undef'
$d_isnanl='undef'
$d_killpg='undef'
@@ -296,6 +305,7 @@ $d_ualarm='undef'
$d_umask='define'
$d_uname='define'
$d_union_semun='undef'
+$d_unordered='undef'
$d_usleep='undef'
$d_usleepproto='undef'
$d_ustat='undef'
@@ -346,6 +356,8 @@ $i_dirent='define'
$i_dlfcn='undef'
$i_fcntl='define'
$i_float='define'
+$i_fp='undef'
+$i_fp_class='undef'
$i_grp='define'
$i_iconv='undef'
$i_ieeefp='undef'
diff --git a/vos/config.alpha.h b/vos/config.alpha.h
index 839556e64f..1f114f6e8a 100644
--- a/vos/config.alpha.h
+++ b/vos/config.alpha.h
@@ -1206,6 +1206,24 @@
#define CASTNEGFLOAT /**/
#define CASTFLAGS 0 /**/
+/* HAS_CLASS:
+ * This symbol, if defined, indicates that the class routine is
+ * available to classify doubles. Available for example in AIX.
+ * The returned values are defined in <float.h> and are:
+ *
+ * FP_PLUS_NORM Positive normalized, nonzero
+ * FP_MINUS_NORM Negative normalized, nonzero
+ * FP_PLUS_DENORM Positive denormalized, nonzero
+ * FP_MINUS_DENORM Negative denormalized, nonzero
+ * FP_PLUS_ZERO +0.0
+ * FP_MINUS_ZERO -0.0
+ * FP_PLUS_INF +INF
+ * FP_MINUS_INF -INF
+ * FP_NANS Signaling Not a Number (NaNS)
+ * FP_NANQ Quiet Not a Number (NaNQ)
+ */
+/*#define HAS_CLASS /**/
+
/* VOID_CLOSEDIR:
* This symbol, if defined, indicates that the closedir() routine
* does not return a value.
@@ -1300,12 +1318,93 @@
*/
/*#define HAS_FD_SET /**/
+/* HAS_FINITE:
+ * This symbol, if defined, indicates that the finite routine is
+ * available to check whether a double is finite (non-infinity non-NaN).
+ */
+/*#define HAS_FINITE /**/
+
+/* HAS_FINITEL:
+ * This symbol, if defined, indicates that the finitel routine is
+ * available to check whether a long double is finite
+ * (non-infinity non-NaN).
+ */
+/*#define HAS_FINITEL /**/
+
/* FLEXFILENAMES:
* This symbol, if defined, indicates that the system supports filenames
* longer than 14 characters.
*/
#define FLEXFILENAMES /**/
+/* HAS_FP_CLASS:
+ * This symbol, if defined, indicates that the fp_class routine is
+ * available to classify doubles. Available for example in Digital UNIX.
+ * The returned values are defined in <math.h> and are:
+ *
+ * FP_SNAN Signaling NaN (Not-a-Number)
+ * FP_QNAN Quiet NaN (Not-a-Number)
+ * FP_POS_INF +infinity
+ * FP_NEG_INF -infinity
+ * FP_POS_NORM Positive normalized
+ * FP_NEG_NORM Negative normalized
+ * FP_POS_DENORM Positive denormalized
+ * FP_NEG_DENORM Negative denormalized
+ * FP_POS_ZERO +0.0 (positive zero)
+ * FP_NEG_ZERO -0.0 (negative zero)
+ */
+/*#define HAS_FP_CLASS /**/
+
+/* HAS_FPCLASS:
+ * This symbol, if defined, indicates that the fpclass routine is
+ * available to classify doubles. Available for example in Solaris/SVR4.
+ * The returned values are defined in <ieeefp.h> and are:
+ *
+ * FP_SNAN signaling NaN
+ * FP_QNAN quiet NaN
+ * FP_NINF negative infinity
+ * FP_PINF positive infinity
+ * FP_NDENORM negative denormalized non-zero
+ * FP_PDENORM positive denormalized non-zero
+ * FP_NZERO negative zero
+ * FP_PZERO positive zero
+ * FP_NNORM negative normalized non-zero
+ * FP_PNORM positive normalized non-zero
+ */
+/*#define HAS_FPCLASS /**/
+
+/* HAS_FPCLASSIFY:
+ * This symbol, if defined, indicates that the fpclassify routine is
+ * available to classify doubles. Available for example in HP-UX.
+ * The returned values are defined in <math.h> and are
+ *
+ * FP_NORMAL Normalized
+ * FP_ZERO Zero
+ * FP_INFINITE Infinity
+ * FP_SUBNORMAL Denormalized
+ * FP_NAN NaN
+ *
+ */
+/*#define HAS_FPCLASSIFY /**/
+
+/* HAS_FPCLASSL:
+ * This symbol, if defined, indicates that the fpclassl routine is
+ * available to classify long doubles. Available for example in IRIX.
+ * The returned values are defined in <ieeefp.h> and are:
+ *
+ * FP_SNAN signaling NaN
+ * FP_QNAN quiet NaN
+ * FP_NINF negative infinity
+ * FP_PINF positive infinity
+ * FP_NDENORM negative denormalized non-zero
+ * FP_PDENORM positive denormalized non-zero
+ * FP_NZERO negative zero
+ * FP_PZERO positive zero
+ * FP_NNORM negative normalized non-zero
+ * FP_PNORM positive normalized non-zero
+ */
+/*#define HAS_FPCLASSL /**/
+
/* HAS_FPOS64_T:
* This symbol will be defined if the C compiler supports fpos64_t.
*/
@@ -1634,6 +1733,18 @@
*/
#define HAS_ISASCII /**/
+/* HAS_ISFINITE:
+ * This symbol, if defined, indicates that the isfinite routine is
+ * available to check whether a double is finite (non-infinity non-NaN).
+ */
+/*#define HAS_ISFINITE /**/
+
+/* HAS_ISINF:
+ * This symbol, if defined, indicates that the isinf routine is
+ * available to check whether a double is an infinity.
+ */
+/*#define HAS_ISINF /**/
+
/* HAS_ISNAN:
* This symbol, if defined, indicates that the isnan routine is
* available to check whether a double is a NaN.
@@ -2258,6 +2369,13 @@
/*#define USE_SEMCTL_SEMUN /**/
/*#define USE_SEMCTL_SEMID_DS /**/
+/* HAS_UNORDERED:
+ * This symbol, if defined, indicates that the unordered routine is
+ * available to check whether two doubles are unordered
+ * (effectively: whether either of them is NaN)
+ */
+/*#define HAS_UNORDERED /**/
+
/* HAS_USTAT:
* This symbol, if defined, indicates that the ustat system call is
* available to query file system statistics by dev_t.
@@ -2404,6 +2522,12 @@
#define DB_VERSION_MINOR_CFG undef /**/
#define DB_VERSION_PATCH_CFG undef /**/
+/* I_FP_CLASS:
+ * This symbol, if defined, indicates that <fp_class.h> exists and
+ * should be included.
+ */
+/*#define I_FP_CLASS /**/
+
/* I_GRP:
* This symbol, if defined, indicates to the C program that it should
* include <grp.h>.
@@ -3447,6 +3571,12 @@
*/
/*#define HAS_USLEEP_PROTO /**/
+/* I_FP:
+ * This symbol, if defined, indicates that <fp.h> exists and
+ * should be included.
+ */
+/*#define I_FP /**/
+
/* I_LANGINFO:
* This symbol, if defined, indicates that <langinfo.h> exists and
* should be included.
diff --git a/vos/config.ga.def b/vos/config.ga.def
index 6144bac2c7..ab92d19a59 100644
--- a/vos/config.ga.def
+++ b/vos/config.ga.def
@@ -40,6 +40,7 @@ $d_charvspr='undef'
$d_chown='define'
$d_chroot='undef'
$d_chsize='undef'
+$d_class='undef'
$d_cmsghdr_s='undef'
$d_const='define'
$d_crypt='undef'
@@ -69,11 +70,17 @@ $d_fcntl='define'
$d_fcntl_can_lock='define'
$d_fd_set='undef'
$d_fgetpos='define'
+$d_finite='undef'
+$d_finitel='undef'
$d_flexfnam='define'
$d_flock='undef'
$d_flockproto='undef'
$d_fork='define'
+$d_fp_class='undef'
$d_fpathconf='define'
+$d_fpclass='undef'
+$d_fpclassify='undef'
+$d_fpclassl='undef'
$d_fpos64_t='undef'
$d_frexpl='undef'
$d_fs_data_s='undef'
@@ -128,6 +135,8 @@ $d_index='undef'
$d_inetaton='undef'
$d_int64_t='undef'
$d_isascii='define'
+$d_isfinite='undef'
+$d_isinf='undef'
$d_isnan='undef'
$d_isnanl='undef'
$d_killpg='undef'
@@ -296,6 +305,7 @@ $d_ualarm='undef'
$d_umask='define'
$d_uname='define'
$d_union_semun='undef'
+$d_unordered='undef'
$d_usleep='undef'
$d_usleepproto='undef'
$d_ustat='undef'
@@ -346,6 +356,8 @@ $i_dirent='define'
$i_dlfcn='undef'
$i_fcntl='define'
$i_float='define'
+$i_fp='undef'
+$i_fp_class='undef'
$i_grp='define'
$i_iconv='undef'
$i_ieeefp='undef'
diff --git a/vos/config.ga.h b/vos/config.ga.h
index 4db74992e9..d4ab292947 100644
--- a/vos/config.ga.h
+++ b/vos/config.ga.h
@@ -1206,6 +1206,24 @@
#define CASTNEGFLOAT /**/
#define CASTFLAGS 0 /**/
+/* HAS_CLASS:
+ * This symbol, if defined, indicates that the class routine is
+ * available to classify doubles. Available for example in AIX.
+ * The returned values are defined in <float.h> and are:
+ *
+ * FP_PLUS_NORM Positive normalized, nonzero
+ * FP_MINUS_NORM Negative normalized, nonzero
+ * FP_PLUS_DENORM Positive denormalized, nonzero
+ * FP_MINUS_DENORM Negative denormalized, nonzero
+ * FP_PLUS_ZERO +0.0
+ * FP_MINUS_ZERO -0.0
+ * FP_PLUS_INF +INF
+ * FP_MINUS_INF -INF
+ * FP_NANS Signaling Not a Number (NaNS)
+ * FP_NANQ Quiet Not a Number (NaNQ)
+ */
+/*#define HAS_CLASS /**/
+
/* VOID_CLOSEDIR:
* This symbol, if defined, indicates that the closedir() routine
* does not return a value.
@@ -1300,12 +1318,93 @@
*/
/*#define HAS_FD_SET /**/
+/* HAS_FINITE:
+ * This symbol, if defined, indicates that the finite routine is
+ * available to check whether a double is finite (non-infinity non-NaN).
+ */
+/*#define HAS_FINITE /**/
+
+/* HAS_FINITEL:
+ * This symbol, if defined, indicates that the finitel routine is
+ * available to check whether a long double is finite
+ * (non-infinity non-NaN).
+ */
+/*#define HAS_FINITEL /**/
+
/* FLEXFILENAMES:
* This symbol, if defined, indicates that the system supports filenames
* longer than 14 characters.
*/
#define FLEXFILENAMES /**/
+/* HAS_FP_CLASS:
+ * This symbol, if defined, indicates that the fp_class routine is
+ * available to classify doubles. Available for example in Digital UNIX.
+ * The returned values are defined in <math.h> and are:
+ *
+ * FP_SNAN Signaling NaN (Not-a-Number)
+ * FP_QNAN Quiet NaN (Not-a-Number)
+ * FP_POS_INF +infinity
+ * FP_NEG_INF -infinity
+ * FP_POS_NORM Positive normalized
+ * FP_NEG_NORM Negative normalized
+ * FP_POS_DENORM Positive denormalized
+ * FP_NEG_DENORM Negative denormalized
+ * FP_POS_ZERO +0.0 (positive zero)
+ * FP_NEG_ZERO -0.0 (negative zero)
+ */
+/*#define HAS_FP_CLASS /**/
+
+/* HAS_FPCLASS:
+ * This symbol, if defined, indicates that the fpclass routine is
+ * available to classify doubles. Available for example in Solaris/SVR4.
+ * The returned values are defined in <ieeefp.h> and are:
+ *
+ * FP_SNAN signaling NaN
+ * FP_QNAN quiet NaN
+ * FP_NINF negative infinity
+ * FP_PINF positive infinity
+ * FP_NDENORM negative denormalized non-zero
+ * FP_PDENORM positive denormalized non-zero
+ * FP_NZERO negative zero
+ * FP_PZERO positive zero
+ * FP_NNORM negative normalized non-zero
+ * FP_PNORM positive normalized non-zero
+ */
+/*#define HAS_FPCLASS /**/
+
+/* HAS_FPCLASSIFY:
+ * This symbol, if defined, indicates that the fpclassify routine is
+ * available to classify doubles. Available for example in HP-UX.
+ * The returned values are defined in <math.h> and are
+ *
+ * FP_NORMAL Normalized
+ * FP_ZERO Zero
+ * FP_INFINITE Infinity
+ * FP_SUBNORMAL Denormalized
+ * FP_NAN NaN
+ *
+ */
+/*#define HAS_FPCLASSIFY /**/
+
+/* HAS_FPCLASSL:
+ * This symbol, if defined, indicates that the fpclassl routine is
+ * available to classify long doubles. Available for example in IRIX.
+ * The returned values are defined in <ieeefp.h> and are:
+ *
+ * FP_SNAN signaling NaN
+ * FP_QNAN quiet NaN
+ * FP_NINF negative infinity
+ * FP_PINF positive infinity
+ * FP_NDENORM negative denormalized non-zero
+ * FP_PDENORM positive denormalized non-zero
+ * FP_NZERO negative zero
+ * FP_PZERO positive zero
+ * FP_NNORM negative normalized non-zero
+ * FP_PNORM positive normalized non-zero
+ */
+/*#define HAS_FPCLASSL /**/
+
/* HAS_FPOS64_T:
* This symbol will be defined if the C compiler supports fpos64_t.
*/
@@ -1634,6 +1733,18 @@
*/
#define HAS_ISASCII /**/
+/* HAS_ISFINITE:
+ * This symbol, if defined, indicates that the isfinite routine is
+ * available to check whether a double is finite (non-infinity non-NaN).
+ */
+/*#define HAS_ISFINITE /**/
+
+/* HAS_ISINF:
+ * This symbol, if defined, indicates that the isinf routine is
+ * available to check whether a double is an infinity.
+ */
+/*#define HAS_ISINF /**/
+
/* HAS_ISNAN:
* This symbol, if defined, indicates that the isnan routine is
* available to check whether a double is a NaN.
@@ -2258,6 +2369,13 @@
/*#define USE_SEMCTL_SEMUN /**/
/*#define USE_SEMCTL_SEMID_DS /**/
+/* HAS_UNORDERED:
+ * This symbol, if defined, indicates that the unordered routine is
+ * available to check whether two doubles are unordered
+ * (effectively: whether either of them is NaN)
+ */
+/*#define HAS_UNORDERED /**/
+
/* HAS_USTAT:
* This symbol, if defined, indicates that the ustat system call is
* available to query file system statistics by dev_t.
@@ -2404,6 +2522,12 @@
#define DB_VERSION_MINOR_CFG undef /**/
#define DB_VERSION_PATCH_CFG undef /**/
+/* I_FP_CLASS:
+ * This symbol, if defined, indicates that <fp_class.h> exists and
+ * should be included.
+ */
+/*#define I_FP_CLASS /**/
+
/* I_GRP:
* This symbol, if defined, indicates to the C program that it should
* include <grp.h>.
@@ -3447,6 +3571,12 @@
*/
/*#define HAS_USLEEP_PROTO /**/
+/* I_FP:
+ * This symbol, if defined, indicates that <fp.h> exists and
+ * should be included.
+ */
+/*#define I_FP /**/
+
/* I_LANGINFO:
* This symbol, if defined, indicates that <langinfo.h> exists and
* should be included.
diff --git a/win32/config.bc b/win32/config.bc
index 7d6cebefbf..fd795a05b6 100644
--- a/win32/config.bc
+++ b/win32/config.bc
@@ -104,6 +104,7 @@ d_charvspr='undef'
d_chown='undef'
d_chroot='undef'
d_chsize='define'
+d_class='undef'
d_closedir='define'
d_cmsghdr_s='undef'
d_const='define'
@@ -138,11 +139,17 @@ d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
d_fgetpos='define'
+d_finite='undef'
+d_finitel='undef'
d_flexfnam='define'
d_flock='define'
d_flockproto='undef'
d_fork='undef'
+d_fp_class='undef'
d_fpathconf='undef'
+d_fpclass='undef'
+d_fpclassify='undef'
+d_fpclassl='undef'
d_fpos64_t='undef'
d_frexpl='undef'
d_fs_data_s='undef'
@@ -198,6 +205,8 @@ d_index='undef'
d_inetaton='undef'
d_int64_t='undef'
d_isascii='define'
+d_isfinite='undef'
+d_isinf='undef'
d_isnan='define'
d_isnanl='undef'
d_killpg='undef'
@@ -383,6 +392,7 @@ d_ualarm='undef'
d_umask='define'
d_uname='define'
d_union_semun='define'
+d_unordered='undef'
d_usleep='undef'
d_usleepproto='undef'
d_ustat='undef'
@@ -462,6 +472,8 @@ i_dld='undef'
i_dlfcn='define'
i_fcntl='define'
i_float='define'
+i_fp='undef'
+i_fp_class='undef'
i_gdbm='undef'
i_grp='undef'
i_iconv='undef'
diff --git a/win32/config.gc b/win32/config.gc
index 9b03d12828..1cd02b2c50 100644
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -104,6 +104,7 @@ d_charvspr='undef'
d_chown='undef'
d_chroot='undef'
d_chsize='define'
+d_class='undef'
d_closedir='define'
d_cmsghdr_s='undef'
d_const='define'
@@ -138,11 +139,17 @@ d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
d_fgetpos='define'
+d_finite='undef'
+d_finitel='undef'
d_flexfnam='define'
d_flock='define'
d_flockproto='undef'
d_fork='undef'
+d_fp_class='undef'
d_fpathconf='undef'
+d_fpclass='undef'
+d_fpclassify='undef'
+d_fpclassl='undef'
d_fpos64_t='undef'
d_frexpl='undef'
d_fs_data_s='undef'
@@ -198,6 +205,8 @@ d_index='undef'
d_inetaton='undef'
d_int64_t='undef'
d_isascii='define'
+d_isfinite='undef'
+d_isinf='undef'
d_isnan='define'
d_isnanl='undef'
d_killpg='undef'
@@ -383,6 +392,7 @@ d_ualarm='undef'
d_umask='define'
d_uname='define'
d_union_semun='define'
+d_unordered='undef'
d_usleep='undef'
d_usleepproto='undef'
d_ustat='undef'
@@ -462,6 +472,8 @@ i_dld='undef'
i_dlfcn='define'
i_fcntl='define'
i_float='define'
+i_fp='undef'
+i_fp_class='undef'
i_gdbm='undef'
i_grp='undef'
i_iconv='undef'
diff --git a/win32/config.vc b/win32/config.vc
index 9909393513..d946051b06 100644
--- a/win32/config.vc
+++ b/win32/config.vc
@@ -104,6 +104,7 @@ d_charvspr='undef'
d_chown='undef'
d_chroot='undef'
d_chsize='define'
+d_class='undef'
d_closedir='define'
d_cmsghdr_s='undef'
d_const='define'
@@ -138,11 +139,17 @@ d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
d_fgetpos='define'
+d_finite='undef'
+d_finitel='undef'
d_flexfnam='define'
d_flock='define'
d_flockproto='undef'
d_fork='undef'
+d_fp_class='undef'
d_fpathconf='undef'
+d_fpclass='undef'
+d_fpclassify='undef'
+d_fpclassl='undef'
d_fpos64_t='undef'
d_frexpl='undef'
d_fs_data_s='undef'
@@ -198,6 +205,8 @@ d_index='undef'
d_inetaton='undef'
d_int64_t='undef'
d_isascii='define'
+d_isfinite='undef'
+d_isinf='undef'
d_isnan='define'
d_isnanl='undef'
d_killpg='undef'
@@ -383,6 +392,7 @@ d_ualarm='undef'
d_umask='define'
d_uname='define'
d_union_semun='define'
+d_unordered='undef'
d_usleep='undef'
d_usleepproto='undef'
d_ustat='undef'
@@ -462,6 +472,8 @@ i_dld='undef'
i_dlfcn='define'
i_fcntl='define'
i_float='define'
+i_fp='undef'
+i_fp_class='undef'
i_gdbm='undef'
i_grp='undef'
i_iconv='undef'