diff options
-rwxr-xr-x | Configure | 74 | ||||
-rw-r--r-- | NetWare/config.wc | 14 | ||||
-rw-r--r-- | Porting/Glossary | 48 | ||||
-rw-r--r-- | Porting/config.sh | 26 | ||||
-rw-r--r-- | Porting/config_H | 132 | ||||
-rw-r--r-- | config_h.SH | 130 | ||||
-rw-r--r-- | configure.com | 12 | ||||
-rw-r--r-- | epoc/config.sh | 12 | ||||
-rw-r--r-- | hints/hpux.sh | 4 | ||||
-rw-r--r-- | perl.h | 148 | ||||
-rw-r--r-- | pod/perltoc.pod | 276 | ||||
-rw-r--r-- | uconfig.h | 130 | ||||
-rwxr-xr-x | uconfig.sh | 12 | ||||
-rw-r--r-- | vos/config.alpha.def | 12 | ||||
-rw-r--r-- | vos/config.alpha.h | 130 | ||||
-rw-r--r-- | vos/config.ga.def | 12 | ||||
-rw-r--r-- | vos/config.ga.h | 130 | ||||
-rw-r--r-- | win32/config.bc | 12 | ||||
-rw-r--r-- | win32/config.gc | 12 | ||||
-rw-r--r-- | win32/config.vc | 12 |
20 files changed, 1126 insertions, 212 deletions
@@ -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' + @@ -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 @@ -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' |