Add HAS_FREXPL, HAS_ISNAN, HAS_ISNANL, and HAS_MODFL.
Jarkko Hietaniemi [Mon, 24 Apr 2000 22:56:32 +0000 (22:56 +0000)]
Now pp_ncmp() returns undef is either operand is a NaN.

p4raw-id: //depot/cfgperl@5943

20 files changed:
Configure
Porting/Glossary
Porting/config.sh
Porting/config_H
Todo-5.6
config_h.SH
epoc/config.sh
perl.h
pp.c
pp_sys.c
vms/subconfigure.com
vos/config.def
vos/config.h
vos/config_h.SH_orig
win32/config.bc
win32/config.gc
win32/config.vc
win32/config_H.bc
win32/config_H.gc
win32/config_H.vc

index cfec7fa..9538137 100755 (executable)
--- 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 Mon Apr 24 22:34:53 EET DST 2000 [metaconfig 3.0 PL70]
+# Generated on Mon Apr 24 23:59:43 EET DST 2000 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -355,6 +355,7 @@ d_flexfnam=''
 d_flock=''
 d_fork=''
 d_fpos64_t=''
+d_frexpl=''
 d_fs_data_s=''
 d_fseeko=''
 d_fsetpos=''
@@ -406,6 +407,8 @@ d_iconv=''
 d_inetaton=''
 d_int64_t=''
 d_isascii=''
+d_isnan=''
+d_isnanl=''
 d_killpg=''
 d_lchown=''
 d_ldbl_dig=''
@@ -435,6 +438,7 @@ d_mkstemps=''
 d_mktime=''
 d_mmap=''
 mmaptype=''
+d_modfl=''
 d_mprotect=''
 d_msg=''
 d_msgctl=''
@@ -9061,6 +9065,10 @@ $rm -f try.* try
 set d_fpos64_t
 eval $setvar
 
+: see if frexpl exists
+set frexpl d_frexpl
+eval $inlibc
+
 hasstruct='varname=$1; struct=$2; shift; shift;
 while $test $# -ge 2; do
        case "$1" in
@@ -9551,6 +9559,14 @@ set d_isascii
 eval $setvar
 $rm -f isascii*
 
+: see if isnan exists
+set isnan d_isnan
+eval $inlibc
+
+: see if isnanl exists
+set isnanl d_isnanl
+eval $inlibc
+
 : see if killpg exists
 set killpg d_killpg
 eval $inlibc
@@ -9770,6 +9786,10 @@ esac
 
 
 
+: see if modfl exists
+set modfl d_modfl
+eval $inlibc
+
 : see if mprotect exists
 set mprotect d_mprotect
 eval $inlibc
@@ -15176,6 +15196,7 @@ d_flock='$d_flock'
 d_fork='$d_fork'
 d_fpathconf='$d_fpathconf'
 d_fpos64_t='$d_fpos64_t'
+d_frexpl='$d_frexpl'
 d_fs_data_s='$d_fs_data_s'
 d_fseeko='$d_fseeko'
 d_fsetpos='$d_fsetpos'
@@ -15225,6 +15246,8 @@ d_index='$d_index'
 d_inetaton='$d_inetaton'
 d_int64_t='$d_int64_t'
 d_isascii='$d_isascii'
+d_isnan='$d_isnan'
+d_isnanl='$d_isnanl'
 d_killpg='$d_killpg'
 d_lchown='$d_lchown'
 d_ldbl_dig='$d_ldbl_dig'
@@ -15251,6 +15274,7 @@ d_mkstemp='$d_mkstemp'
 d_mkstemps='$d_mkstemps'
 d_mktime='$d_mktime'
 d_mmap='$d_mmap'
+d_modfl='$d_modfl'
 d_mprotect='$d_mprotect'
 d_msg='$d_msg'
 d_msg_ctrunc='$d_msg_ctrunc'
index cc66d70..d60a168 100644 (file)
@@ -573,6 +573,10 @@ d_fpathconf (d_pathconf.U):
 d_fpos64_t (d_fpos64_t.U):
        This symbol will be defined if the C compiler supports fpos64_t.
 
+d_frexpl (d_frexpl.U):
+       This variable conditionally defines the HAS_FREXPL symbol, which
+       indicates to the C program that the frexpl() routine is available.
+
 d_fs_data_s (d_fs_data_s.U):
        This variable conditionally defines the HAS_STRUCT_FS_DATA symbol,
        which indicates that the struct fs_data is supported.
@@ -811,6 +815,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_isnan (d_isnan.U):
+       This variable conditionally defines the HAS_ISNAN symbol, which
+       indicates to the C program that the isnan() routine is available.
+
+d_isnanl (d_isnanl.U):
+       This variable conditionally defines the HAS_ISNANL symbol, which
+       indicates to the C program that the isnanl() routine is available.
+
 d_killpg (d_killpg.U):
        This variable conditionally defines the HAS_KILLPG symbol, which
        indicates to the C program that the killpg() routine is available
@@ -933,6 +945,10 @@ d_mmap (d_mmap.U):
        This variable conditionally defines HAS_MMAP if mmap() is
        available to map a file into memory.
 
+d_modfl (d_modfl.U):
+       This variable conditionally defines the HAS_MODFL symbol, which
+       indicates to the C program that the modfl() routine is available.
+
 d_mprotect (d_mprotect.U):
        This variable conditionally defines HAS_MPROTECT if mprotect() is
        available to modify the access protection of a memory mapped file.
index 35bb954..a658cc2 100644 (file)
@@ -8,7 +8,7 @@
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Mon Apr 24 22:38:56 EET DST 2000
+# Configuration time: Tue Apr 25 00:14:34 EET DST 2000
 # Configured by     : jhi
 # Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
 
@@ -59,7 +59,7 @@ ccflags='-pthread -std -DLANGUAGE_C'
 ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_BSD=1 SYSTYPE_BSD=1 unix=1'
 cf_by='jhi'
 cf_email='yourname@yourhost.yourplace.com'
-cf_time='Mon Apr 24 22:38:56 EET DST 2000'
+cf_time='Tue Apr 25 00:14:34 EET DST 2000'
 charsize='1'
 chgrp=''
 chmod=''
@@ -151,6 +151,7 @@ d_flock='define'
 d_fork='define'
 d_fpathconf='define'
 d_fpos64_t='undef'
+d_frexpl='define'
 d_fs_data_s='undef'
 d_fseeko='undef'
 d_fsetpos='define'
@@ -200,6 +201,8 @@ d_index='undef'
 d_inetaton='define'
 d_int64_t='undef'
 d_isascii='define'
+d_isnan='define'
+d_isnanl='define'
 d_killpg='define'
 d_lchown='define'
 d_ldbl_dig='define'
@@ -226,6 +229,7 @@ d_mkstemp='define'
 d_mkstemps='undef'
 d_mktime='define'
 d_mmap='define'
+d_modfl='define'
 d_mprotect='define'
 d_msg='define'
 d_msg_ctrunc='define'
index 263e7f4..130a613 100644 (file)
@@ -17,7 +17,7 @@
 /*
  * Package name      : perl5
  * Source directory  : .
- * Configuration time: Mon Apr 24 22:38:56 EET DST 2000
+ * Configuration time: Tue Apr 25 00:14:34 EET DST 2000
  * Configured by     : jhi
  * Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
  */
  */
 /*#define      HAS_FPOS64_T            / **/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+#define HAS_FREXPL             /**/
+
 /* HAS_STRUCT_FS_DATA:
  *     This symbol, if defined, indicates that the struct fs_data
  *     to do statfs() is supported.
  */
 #define HAS_ISASCII            /**/
 
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
+ */
+#define HAS_ISNAN              /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+#define HAS_ISNANL             /**/
+
 /* HAS_LCHOWN:
  *     This symbol, if defined, indicates that the lchown routine is
  *     available to operate on a symbolic link (instead of following the
 #define PERL_XS_APIVERSION "5.6.0"
 #define PERL_PM_APIVERSION "5.005"
 
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
+ */
+#define HAS_MODFL              /**/
+
 #endif
index 9abeb55..fac325c 100644 (file)
--- a/Todo-5.6
+++ b/Todo-5.6
@@ -125,12 +125,14 @@ Miscellaneous
        Configure doesn't yet probe for usleep/nanosleep/ualarm but
        the units exist)
     floating point handling: nans, infinities, fp exception masks, etc.
-       at least the following interfaces exist: fp_classify(), fp_class(),
-       class(), isnan(), isinf(), isfinite(), finite(), isnormal(),
-       ordered(), fp_setmask(), fp_getmask(), fp_setround(), fp_getround(), 
-       ieeefp.h, fp_class.h.  There are metaconfig units for most of these.
-        Search for ifdef __osf__ in pp.c to find a temporary fix that
-       needs to be done right.
+       At least the following interfaces exist: fp_classify(), fp_class(),
+       class(), isinf(), isfinite(), finite(), isnormal(), unordered(),
+       <ieeefp.h>, <fp_class.h> (there are metaconfig units for all these),
+       fp_setmask(), fp_getmask(), fp_setround(), fp_getround()
+       (no metaconfig units yet for these).
+        Don't forget finitel(), fp_classl(), fp_class_l(), (yes, both do,
+       unfortunately, exist), and unorderedl().
+       As of 5.6.1 there is cpp macro Perl_isnan().
     fix the basic arithmetics (+ - * / %) to preserve IVness/UVness if
        both arguments are IVs/UVs
     replace pod2html with new PodtoHtml? (requires other modules from CPAN)
index 3e66591..08a1cf5 100644 (file)
@@ -1365,6 +1365,13 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_fpos64_t   HAS_FPOS64_T            /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+#$d_frexpl HAS_FREXPL          /**/
+
 /* HAS_STRUCT_FS_DATA:
  *     This symbol, if defined, indicates that the struct fs_data
  *     to do statfs() is supported.
@@ -1644,6 +1651,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_isascii HAS_ISASCII                /**/
 
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
+ */
+#$d_isnan HAS_ISNAN            /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+#$d_isnanl HAS_ISNANL          /**/
+
 /* HAS_LCHOWN:
  *     This symbol, if defined, indicates that the lchown routine is
  *     available to operate on a symbolic link (instead of following the
@@ -3103,5 +3122,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define PERL_XS_APIVERSION "$xs_apiversion"
 #define PERL_PM_APIVERSION "$pm_apiversion"
 
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
+ */
+#$d_modfl HAS_MODFL            /**/
+
 #endif
 !GROK!THIS!
index a60b7a0..b1fee71 100644 (file)
@@ -33,8 +33,8 @@ apirevision=''
 apisubversion=''
 apiversion=''
 ar='arm-pe-ar'
-archlib='/perl/lib/5.6.0/epoc'
-archlibexp='/perl/lib/5.6.0/epoc'
+archlib='/perl/lib/5.6.1/epoc'
+archlibexp='/perl/lib/5.6.1/epoc'
 archname64=''
 archname='epoc'
 archobjs='epoc.o epocish.o epoc_stubs.o'
@@ -149,6 +149,7 @@ d_flock='undef'
 d_fork='undef'
 d_fpathconf='undef'
 d_fpos64_t='undef'
+d_frexpl='undef'
 d_fseeko='undef'
 d_fsetpos='define'
 d_fstatfs='define'
@@ -196,6 +197,8 @@ d_inetaton='define'
 d_int64t='undef'
 d_iovec_s='undef'
 d_isascii='define'
+d_isnan='define'
+d_isnanl='undef'
 d_killpg='undef'
 d_lchown='undef'
 d_ldbl_dig='undef'
@@ -220,6 +223,7 @@ d_mkdir='define'
 d_mkfifo='undef'
 d_mktime='define'
 d_mmap='undef'
+d_modfl='undef'
 d_mprotect='undef'
 d_msg='undef'
 d_msg_ctrunc='undef'
@@ -581,8 +585,8 @@ pmake=''
 pr=''
 prefix=''
 prefixexp=''
-privlib='/perl/lib/5.6.0'
-privlibexp='/perl/lib/5.6.0'
+privlib='/perl/lib/5.6.1'
+privlibexp='/perl/lib/5.6.1'
 prototype='define'
 ptrsize='4'
 randbits='31'
@@ -626,11 +630,11 @@ sig_name_init='"ZERO", 0'
 sig_num='0'
 sig_num_init='0, 0'
 signal_t='void'
-sitearch='/perl/lib/site_perl/5.6.0/epoc'
-sitearchexp='/perl/lib/site_perl/5.6.0/epoc'
-sitelib='/perl/lib/site_perl/5.6.0/'
+sitearch='/perl/lib/site_perl/5.6.1/epoc'
+sitearchexp='/perl/lib/site_perl/5.6.1/epoc'
+sitelib='/perl/lib/site_perl/5.6.1/'
 sitelib_stem='/perl/lib/site_perl'
-sitelibexp='/perl/lib/site_perl/5.6.0/'
+sitelibexp='/perl/lib/site_perl/5.6.1/'
 siteprefix=''
 siteprefixexp=''
 sizesize='4'
@@ -702,7 +706,7 @@ vendorlib_stem=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
-version='5.6.0'
+version='5.6.1'
 vi=''
 voidflags='15'
 xlibpth=''
@@ -725,7 +729,7 @@ config_arg10=''
 config_arg11=''
 PERL_REVISION=5
 PERL_VERSION=6
-PERL_SUBVERSION=0
+PERL_SUBVERSION=1
 PERL_API_REVISION=5
 PERL_API_VERSION=6
 PERL_API_SUBVERSION=0
diff --git a/perl.h b/perl.h
index 2f30218..04b6196 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1145,15 +1145,6 @@ typedef NVTYPE NV;
 #   endif
 #   define NV_DIG LDBL_DIG
 #   ifdef HAS_SQRTL
-        /* libsunmath doesn't have modfl and frexpl as of mid-March 2000 */
-       /* XXX Configure probe for modfl and frexpl needed XXX */
-#       if defined(__sun) && defined(__svr4)
-#           define Perl_modf(x,y) ((long double)modf((double)(x),(double*)(y)))
-#           define Perl_frexp(x) ((long double)frexp((double)(x)))
-#       else
-#           define Perl_modf modfl
-#           define Perl_frexp frexpl
-#       endif
 #       define Perl_cos cosl
 #       define Perl_sin sinl
 #       define Perl_sqrt sqrtl
@@ -1164,10 +1155,28 @@ typedef NVTYPE NV;
 #       define Perl_floor floorl
 #       define Perl_fmod fmodl
 #   endif
+/* e.g. libsunmath doesn't have modfl and frexpl as of mid-March 2000 */
+#   ifdef HAS_MODFL
+#       define Perl_modf(x,y) modfl(x,y)
+#   else
+#       define Perl_modf(x,y) ((long double)modf((double)(x),(double*)(y)))
+#   endif
+#   ifdef HAS_FREXPL
+#       define Perl_frexp(x) frexpl(x)
+#   else
+#       define Perl_frexp(x) ((long double)frexp((double)(x)))
+#   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))
+#       endif
+#   endif
 #else
 #   define NV_DIG DBL_DIG
-#   define Perl_modf modf
-#   define Perl_frexp frexp
 #   define Perl_cos cos
 #   define Perl_sin sin
 #   define Perl_sqrt sqrt
@@ -1177,6 +1186,13 @@ typedef NVTYPE NV;
 #   define Perl_pow pow
 #   define Perl_floor floor
 #   define Perl_fmod fmod
+#   define Perl_modf(x,y) modf(x,y)
+#   define Perl_frexp(x) frexp(x)
+#   ifdef HAS_ISNAN
+#       define Perl_isnan(x) isnan(x)
+#   else
+#       define Perl_isnan(x) ((x)!=(x))
+#   endif
 #endif
 
 #if !defined(Perl_atof) && defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
diff --git a/pp.c b/pp.c
index 316c793..e90b538 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -1199,15 +1199,8 @@ PP(pp_ncmp)
     {
       dPOPTOPnnrl;
       I32 value;
-#ifdef __osf__ /* XXX Configure probe for isnan and isnanl needed XXX */
-#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
-#define Perl_isnan isnanl
-#else
-#define Perl_isnan isnan
-#endif
-#endif
 
-#ifdef __osf__ /* XXX fix in 5.6.1 --jhi */
+#ifdef Perl_isnan
       if (Perl_isnan(left) || Perl_isnan(right)) {
          SETs(&PL_sv_undef);
          RETURN;
index a068923..f9f6052 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -198,7 +198,6 @@ static char zero_but_true[ZBTLEN + 1] = "0 but true";
 #   if defined(I_SYS_SECURITY)
 #       include <sys/security.h>
 #   endif
-    /* XXX Configure test needed for eaccess */
 #   ifdef ACC_SELF
         /* HP SecureWare */
 #       define PERL_EFF_ACCESS_R_OK(p) (eaccess((p), R_OK, ACC_SELF))
index 56de278..479d315 100644 (file)
@@ -69,6 +69,7 @@ $ myname = myhostname
 $ IF myname .EQS. "" THEN myname = F$TRNLNM("SYS$NODE")
 $!
 $! ##ADD NEW CONSTANTS HERE##
+$ perl_d_isnan= = "define"
 $ perl_sizesize = "4"
 $ perl_shmattype = ""
 $ perl_mmaptype = ""
@@ -486,6 +487,9 @@ $   perl_d_quad = "define"
 $   perl_quadtype = "long long"
 $   perl_uquadtype = "unsigned long long"
 $   perl_quadkind  = "QUAD_IS_LONG_LONG"
+$   perl_d_frexpl = "define"
+$   perl_d_isnanl = "define"
+$   perl_d_modfl = "define"
 $ ELSE
 $   perl_d_PRIfldbl = "undef"
 $   perl_d_PRIgldbl = "undef"
@@ -503,6 +507,9 @@ $   perl_d_quad = "undef"
 $   perl_quadtype = "long"
 $   perl_uquadtype = "unsigned long"
 $   perl_quadkind  = "QUAD_IS_LONG"
+$   perl_d_frexpl = "undef"
+$   perl_d_isnanl = "undef"
+$   perl_d_modfl = "undef"
 $ ENDIF
 $!
 $! Now some that we build up
@@ -4246,6 +4253,10 @@ $ WC "uvoformat='" + perl_uvoformat + "'"
 $ WC "uvxformat='" + perl_uvxformat + "'"
 $ WC "d_vms_case_sensitive_symbols='" + d_vms_be_case_sensitive + "'"
 $ WC "sizesize='" + perl_sizesize + "'"
+$ WC "d_frexpl='" + perl_d_frexpl + "'"
+$ WC "d_isnan='" + perl_d_isnan + "'"
+$ WC "d_isnanl='" + perl_d_isnanl + "'"
+$ WC "d_modfl='" + perl_d_modfl + "'"
 $!
 $! ##WRITE NEW CONSTANTS HERE##
 $!
index 1352c05..e66c87a 100644 (file)
@@ -65,6 +65,7 @@ $d_flock='undef'
 $d_fork='undef'
 $d_fpathconf='define'
 $d_fpos64_t='undef'
+$d_frexpl='undef'
 $d_fs_data_s='undef'
 $d_fseeko='undef'
 $d_fsetpos='define'
@@ -114,6 +115,8 @@ $d_index='undef'
 $d_inetaton='undef'
 $d_int64_t='undef'
 $d_isascii='define'
+$d_isnan='define'
+$d_isnanl='undef'
 $d_killpg='undef'
 $d_lchown='undef'
 $d_ldbl_dig='define'
@@ -140,6 +143,7 @@ $d_mkstemps='undef'
 $d_mkfifo='define'
 $d_mktime='define'
 $d_mmap='undef'
+$d_modfl='undef'
 $d_mprotect='undef'
 $d_msg='undef'
 $d_msg_ctrunc='undef'
index d77218a..5e4e665 100644 (file)
  */
 #define HAS_FGETPOS    /**/
 
-/* FLEXFILENAMES:
- *     This symbol, if defined, indicates that the system supports filenames
- *     longer than 14 characters.
- */
-#define        FLEXFILENAMES           /**/
-
 /* HAS_FLOCK:
  *     This symbol, if defined, indicates that the flock routine is
  *     available to do file locking.
 #  define STRINGIFY(a) PeRl_StGiFy(a)
 #endif
 #if 42 != 1 && 42 != 42
-#include "Bletch: How does this C preprocessor catenate tokens?"
+#   include "Bletch: How does this C preprocessor catenate tokens?"
 #endif
 
 /* CPPSTDIN:
  */
 /*#define HAS_FD_SET   /**/
 
+/* FLEXFILENAMES:
+ *     This symbol, if defined, indicates that the system supports filenames
+ *     longer than 14 characters.
+ */
+#define        FLEXFILENAMES           /**/
+
 /* HAS_FPOS64_T:
  *     This symbol will be defined if the C compiler supports fpos64_t.
  */
 /*#define      HAS_FPOS64_T            /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+/*#define HAS_FREXPL           /**/
+
 /* HAS_STRUCT_FS_DATA:
  *     This symbol, if defined, indicates that the struct fs_data
  *     to do statfs() is supported.
  */
 #define HAS_GETCWD             /**/
 
+/* HAS_GETFSSTAT:
+ *     This symbol, if defined, indicates that the getfsstat routine is
+ *     available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT                /**/
+
 /* HAS_GETGRENT:
  *     This symbol, if defined, indicates that the getgrent routine is
  *     available for sequential access of the group database.
  */
 #define HAS_ISASCII            /**/
 
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
+ */
+#define HAS_ISNAN              /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+/*#define HAS_ISNANL           /**/
+
 /* HAS_LCHOWN:
  *     This symbol, if defined, indicates that the lchown routine is
  *     available to operate on a symbolic link (instead of following the
 #define LONGLONGSIZE _error_           /**/
 #endif
 
+/* HAS_LSEEK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the lseek() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern off_t lseek(int, off_t, int);
+ */
+#define        HAS_LSEEK_PROTO /**/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
  */
 /*#define      I_ICONV         /**/
 
+/* I_IEEEFP:
+ *     This symbol, if defined, indicates that <ieeefp.h> exists and
+ *     should be included.
+ */
+/*#define      I_IEEEFP                /**/
+
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <inttypes.h>.
 /* U64SIZE:
  *     This symbol contains the sizeof(U64).
  */
+/* NVSIZE:
+ *     This symbol contains the sizeof(NV).
+ */
 /* NV_PRESERVES_UV:
  *     This symbol, if defined, indicates that a variable of type NVTYPE
  *     can preserve all the bit of a variable of type UVSIZE.
 #define        I64SIZE         _error_ /**/
 #define        U64SIZE         _error_ /**/
 #endif
+#define        NVSIZE          $nvsize         /**/
 #define        NV_PRESERVES_UV
 
 /* IVdf:
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-/*#define SITEARCH ""          /**/
-/*#define SITEARCH_EXP ""              /**/
+#define SITEARCH ""            /**/
+#define SITEARCH_EXP ""                /**/
 
 /* SITELIB:
  *     This symbol contains the name of the private library for this package.
  */
 #define Size_t size_t   /* length paramater for string functions */
 
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument of
+ *     various socket calls (just the base type, not the pointer-to).
+ */
+#define Sock_size_t            int /**/
+
 /* SSize_t:
  *     This symbol holds the type used by functions that return
  *     a count of bytes or an error condition.  It must be a signed type.
 #endif
 /*#define      OLD_PTHREADS_API                /**/
 
+/* PERL_VENDORARCH:
+ *     If defined, this symbol contains the name of a private library.
+ *     The library is private in the sense that it needn't be in anyone's
+ *     execution path, but it should be accessible by the world.
+ *     It may have a ~ on the front. 
+ *     The standard distribution will put nothing in this directory.
+ *     Vendors who distribute perl may wish to place their own
+ *     architecture-dependent modules and extensions in this directory with
+ *             MakeMaker Makefile.PL INSTALLDIRS=vendor 
+ *     or equivalent.  See INSTALL for details.
+ */
 /* PERL_VENDORARCH_EXP:
  *     This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+#define PERL_VENDORARCH ""             /**/
 #define PERL_VENDORARCH_EXP ""         /**/
 
 /* PERL_VENDORLIB_EXP:
 #define PERL_XS_APIVERSION "5.00563"
 #define PERL_PM_APIVERSION "5.00563"
 
-/* HAS_GETFSSTAT:
- *     This symbol, if defined, indicates that the getfsstat routine is
- *     available to stat filesystems in bulk.
- */
-/*#define HAS_GETFSSTAT                /**/
-
-/* I_IEEEFP:
- *     This symbol, if defined, indicates that <ieeefp.h> exists and
- *     should be included.
- */
-/*#define      I_IEEEFP                /**/
-
-/* HAS_LSEEK_PROTO:
- *     This symbol, if defined, indicates that the system provides
- *     a prototype for the lseek() function.  Otherwise, it is up
- *     to the program to supply one.  A good guess is
- *             extern off_t lseek(int, off_t, int);
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
  */
-#define        HAS_LSEEK_PROTO /**/
-
-/* Sock_size_t:
- *     This symbol holds the type used for the size argument of
- *     various socket calls (just the base type, not the pointer-to).
- */
-#define Sock_size_t            int /**/
+/*#define HAS_MODFL            /**/
 
 #endif
index b743847..08a1cf5 100755 (executable)
@@ -189,12 +189,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_fgetpos HAS_FGETPOS        /**/
 
-/* FLEXFILENAMES:
- *     This symbol, if defined, indicates that the system supports filenames
- *     longer than 14 characters.
- */
-#$d_flexfnam   FLEXFILENAMES           /**/
-
 /* HAS_FLOCK:
  *     This symbol, if defined, indicates that the flock routine is
  *     available to do file locking.
@@ -1218,7 +1212,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #  define STRINGIFY(a) PeRl_StGiFy(a)
 #endif
 #if $cpp_stuff != 1 && $cpp_stuff != 42
-#include "Bletch: How does this C preprocessor catenate tokens?"
+#   include "Bletch: How does this C preprocessor catenate tokens?"
 #endif
 
 /* CPPSTDIN:
@@ -1360,11 +1354,24 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_fd_set HAS_FD_SET  /**/
 
+/* FLEXFILENAMES:
+ *     This symbol, if defined, indicates that the system supports filenames
+ *     longer than 14 characters.
+ */
+#$d_flexfnam   FLEXFILENAMES           /**/
+
 /* HAS_FPOS64_T:
  *     This symbol will be defined if the C compiler supports fpos64_t.
  */
 #$d_fpos64_t   HAS_FPOS64_T            /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+#$d_frexpl HAS_FREXPL          /**/
+
 /* HAS_STRUCT_FS_DATA:
  *     This symbol, if defined, indicates that the struct fs_data
  *     to do statfs() is supported.
@@ -1412,6 +1419,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_getcwd HAS_GETCWD          /**/
 
+/* HAS_GETFSSTAT:
+ *     This symbol, if defined, indicates that the getfsstat routine is
+ *     available to stat filesystems in bulk.
+ */
+#$d_getfsstat HAS_GETFSSTAT            /**/
+
 /* HAS_GETGRENT:
  *     This symbol, if defined, indicates that the getgrent routine is
  *     available for sequential access of the group database.
@@ -1638,6 +1651,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_isascii HAS_ISASCII                /**/
 
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
+ */
+#$d_isnan HAS_ISNAN            /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+#$d_isnanl HAS_ISNANL          /**/
+
 /* HAS_LCHOWN:
  *     This symbol, if defined, indicates that the lchown routine is
  *     available to operate on a symbolic link (instead of following the
@@ -1680,6 +1705,14 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define LONGLONGSIZE $longlongsize             /**/
 #endif
 
+/* HAS_LSEEK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the lseek() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern off_t lseek(int, off_t, int);
+ */
+#$d_lseekproto HAS_LSEEK_PROTO /**/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
@@ -2280,6 +2313,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$i_iconv      I_ICONV         /**/
 
+/* I_IEEEFP:
+ *     This symbol, if defined, indicates that <ieeefp.h> exists and
+ *     should be included.
+ */
+#$i_ieeefp     I_IEEEFP                /**/
+
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <inttypes.h>.
@@ -2630,6 +2669,9 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 /* U64SIZE:
  *     This symbol contains the sizeof(U64).
  */
+/* NVSIZE:
+ *     This symbol contains the sizeof(NV).
+ */
 /* NV_PRESERVES_UV:
  *     This symbol, if defined, indicates that a variable of type NVTYPE
  *     can preserve all the bit of a variable of type UVSIZE.
@@ -2659,6 +2701,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define        I64SIZE         $i64size        /**/
 #define        U64SIZE         $u64size        /**/
 #endif
+#define        NVSIZE          $nvsize         /**/
 #$d_nv_preserves_uv    NV_PRESERVES_UV
 
 /* IVdf:
@@ -2798,8 +2841,8 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#$d_sitearch SITEARCH "$sitearch"              /**/
-#$d_sitearch SITEARCH_EXP "$sitearchexp"               /**/
+#define SITEARCH "$sitearch"           /**/
+#define SITEARCH_EXP "$sitearchexp"            /**/
 
 /* SITELIB:
  *     This symbol contains the name of the private library for this package.
@@ -2838,6 +2881,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define Size_t $sizetype        /* length paramater for string functions */
 
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument of
+ *     various socket calls (just the base type, not the pointer-to).
+ */
+#define Sock_size_t            $socksizetype /**/
+
 /* SSize_t:
  *     This symbol holds the type used by functions that return
  *     a count of bytes or an error condition.  It must be a signed type.
@@ -2983,10 +3032,22 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #endif
 #$d_oldpthreads        OLD_PTHREADS_API                /**/
 
+/* PERL_VENDORARCH:
+ *     If defined, this symbol contains the name of a private library.
+ *     The library is private in the sense that it needn't be in anyone's
+ *     execution path, but it should be accessible by the world.
+ *     It may have a ~ on the front. 
+ *     The standard distribution will put nothing in this directory.
+ *     Vendors who distribute perl may wish to place their own
+ *     architecture-dependent modules and extensions in this directory with
+ *             MakeMaker Makefile.PL INSTALLDIRS=vendor 
+ *     or equivalent.  See INSTALL for details.
+ */
 /* PERL_VENDORARCH_EXP:
  *     This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+#$d_vendorarch PERL_VENDORARCH "$vendorarch"           /**/
 #$d_vendorarch PERL_VENDORARCH_EXP "$vendorarchexp"            /**/
 
 /* PERL_VENDORLIB_EXP:
@@ -3061,31 +3122,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define PERL_XS_APIVERSION "$xs_apiversion"
 #define PERL_PM_APIVERSION "$pm_apiversion"
 
-/* HAS_GETFSSTAT:
- *     This symbol, if defined, indicates that the getfsstat routine is
- *     available to stat filesystems in bulk.
- */
-#$d_getfsstat HAS_GETFSSTAT            /**/
-
-/* I_IEEEFP:
- *     This symbol, if defined, indicates that <ieeefp.h> exists and
- *     should be included.
- */
-#$i_ieeefp     I_IEEEFP                /**/
-
-/* HAS_LSEEK_PROTO:
- *     This symbol, if defined, indicates that the system provides
- *     a prototype for the lseek() function.  Otherwise, it is up
- *     to the program to supply one.  A good guess is
- *             extern off_t lseek(int, off_t, int);
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
  */
-#$d_lseekproto HAS_LSEEK_PROTO /**/
-
-/* Sock_size_t:
- *     This symbol holds the type used for the size argument of
- *     various socket calls (just the base type, not the pointer-to).
- */
-#define Sock_size_t            $socksizetype /**/
+#$d_modfl HAS_MODFL            /**/
 
 #endif
 !GROK!THIS!
index 1b984bb..e737ae7 100644 (file)
@@ -140,6 +140,7 @@ d_flock='define'
 d_fork='undef'
 d_fpathconf='undef'
 d_fpos64_t='undef'
+d_frexpl='undef'
 d_fs_data_s='undef'
 d_fseeko='undef'
 d_fsetpos='define'
@@ -189,6 +190,8 @@ d_index='undef'
 d_inetaton='undef'
 d_int64_t='undef'
 d_isascii='define'
+d_isnan='define'
+d_isnanl='undef'
 d_killpg='undef'
 d_lchown='undef'
 d_ldbl_dig='define'
@@ -215,6 +218,7 @@ d_mkstemp='undef'
 d_mkstemps='undef'
 d_mktime='define'
 d_mmap='undef'
+d_modfl='undef'
 d_mprotect='undef'
 d_msg='undef'
 d_msg_ctrunc='undef'
index 762e792..a926ac5 100644 (file)
@@ -140,6 +140,7 @@ d_flock='define'
 d_fork='undef'
 d_fpathconf='undef'
 d_fpos64_t='undef'
+d_frexpl='undef'
 d_fs_data_s='undef'
 d_fseeko='undef'
 d_fsetpos='define'
@@ -189,6 +190,8 @@ d_index='undef'
 d_inetaton='undef'
 d_int64_t='undef'
 d_isascii='define'
+d_isnan='define'
+d_isnanl='undef'
 d_killpg='undef'
 d_lchown='undef'
 d_ldbl_dig='define'
@@ -215,6 +218,7 @@ d_mkstemp='undef'
 d_mkstemps='undef'
 d_mktime='define'
 d_mmap='undef'
+d_modfl='undef'
 d_mprotect='undef'
 d_msg='undef'
 d_msg_ctrunc='undef'
index f3dff46..2437be2 100644 (file)
@@ -140,6 +140,7 @@ d_flock='define'
 d_fork='undef'
 d_fpathconf='undef'
 d_fpos64_t='undef'
+d_frexpl='undef'
 d_fs_data_s='undef'
 d_fseeko='undef'
 d_fsetpos='define'
@@ -189,6 +190,8 @@ d_index='undef'
 d_inetaton='undef'
 d_int64_t='undef'
 d_isascii='define'
+d_isnan='define'
+d_isnanl='undef'
 d_killpg='undef'
 d_lchown='undef'
 d_ldbl_dig='define'
@@ -215,6 +218,7 @@ d_mkstemp='undef'
 d_mkstemps='undef'
 d_mktime='define'
 d_mmap='undef'
+d_modfl='undef'
 d_mprotect='undef'
 d_msg='undef'
 d_msg_ctrunc='undef'
index 7e04ed1..8ca757c 100644 (file)
  */
 /*#define HAS_FORK             /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+/*#define HAS_FREXPL           /**/
+
 /* HAS_FSETPOS:
  *     This symbol, if defined, indicates that the fsetpos routine is
  *     available to set the file position indicator, similar to fseek().
  */
 #define HAS_ISASCII            /**/
 
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
+ */
+#define HAS_ISNAN              /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+/*#define HAS_ISNANL           /**/
+
 /* HAS_LDBL_DIG:
  *     This symbol, if defined, indicates that this system's <float.h>
  *     or <limits.h> defines the symbol LDBL_DIG, which is the number
  */
 /*#define HAS_MPROTECT         /**/
 
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
+ */
+/*#define HAS_MODFL            /**/
+
 /* HAS_MSG:
  *     This symbol, if defined, indicates that the entire msg*(2) library is
  *     supported (IPC mechanism based on message queues).
index 07e89da..289eadd 100644 (file)
  */
 /*#define HAS_FORK             /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+/*#define HAS_FREXPL           /**/
+
 /* HAS_FSETPOS:
  *     This symbol, if defined, indicates that the fsetpos routine is
  *     available to set the file position indicator, similar to fseek().
  */
 #define HAS_ISASCII            /**/
 
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
+ */
+#define HAS_ISNAN              /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+/*#define HAS_ISNANL           /**/
+
 /* HAS_LDBL_DIG:
  *     This symbol, if defined, indicates that this system's <float.h>
  *     or <limits.h> defines the symbol LDBL_DIG, which is the number
  */
 /*#define HAS_MPROTECT         /**/
 
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
+ */
+/*#define HAS_MODFL            /**/
+
 /* HAS_MSG:
  *     This symbol, if defined, indicates that the entire msg*(2) library is
  *     supported (IPC mechanism based on message queues).
index 5d77c7b..b0702f0 100644 (file)
  */
 /*#define HAS_FORK             /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+/*#define HAS_FREXPL           /**/
+
 /* HAS_FSETPOS:
  *     This symbol, if defined, indicates that the fsetpos routine is
  *     available to set the file position indicator, similar to fseek().
  */
 #define HAS_ISASCII            /**/
 
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
+ */
+#define HAS_ISNAN              /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+/*#define HAS_ISNANL           /**/
+
 /* HAS_LDBL_DIG:
  *     This symbol, if defined, indicates that this system's <float.h>
  *     or <limits.h> defines the symbol LDBL_DIG, which is the number
  */
 /*#define HAS_MPROTECT         /**/
 
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
+ */
+/*#define HAS_MODFL            /**/
+
 /* HAS_MSG:
  *     This symbol, if defined, indicates that the entire msg*(2) library is
  *     supported (IPC mechanism based on message queues).