summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2000-04-24 22:56:32 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2000-04-24 22:56:32 +0000
commita3540c9216933280e8172ff9fdbf23c34fe36604 (patch)
tree2ceb3ec3c2163498c845e55f1e8050e379991a4a
parentb6592ff05e68c575099e94faea60fc84984b6b46 (diff)
downloadperl-a3540c9216933280e8172ff9fdbf23c34fe36604.tar.gz
Add HAS_FREXPL, HAS_ISNAN, HAS_ISNANL, and HAS_MODFL.
Now pp_ncmp() returns undef is either operand is a NaN. p4raw-id: //depot/cfgperl@5943
-rwxr-xr-xConfigure26
-rw-r--r--Porting/Glossary16
-rw-r--r--Porting/config.sh8
-rw-r--r--Porting/config_H28
-rw-r--r--Todo-5.614
-rw-r--r--config_h.SH26
-rw-r--r--epoc/config.sh24
-rw-r--r--perl.h38
-rw-r--r--pp.c9
-rw-r--r--pp_sys.c1
-rw-r--r--vms/subconfigure.com11
-rw-r--r--vos/config.def4
-rw-r--r--vos/config.h108
-rwxr-xr-xvos/config_h.SH_orig108
-rw-r--r--win32/config.bc4
-rw-r--r--win32/config.gc4
-rw-r--r--win32/config.vc4
-rw-r--r--win32/config_H.bc26
-rw-r--r--win32/config_H.gc26
-rw-r--r--win32/config_H.vc26
20 files changed, 405 insertions, 106 deletions
diff --git a/Configure b/Configure
index cfec7fa70e..9538137d7e 100755
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on 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'
diff --git a/Porting/Glossary b/Porting/Glossary
index cc66d7041b..d60a168ca3 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -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.
diff --git a/Porting/config.sh b/Porting/config.sh
index 35bb95444b..a658cc21e5 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -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'
diff --git a/Porting/config_H b/Porting/config_H
index 263e7f4746..130a613529 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -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
*/
@@ -1351,6 +1351,13 @@
*/
/*#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.
@@ -1630,6 +1637,18 @@
*/
#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
@@ -3089,4 +3108,11 @@
#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
diff --git a/Todo-5.6 b/Todo-5.6
index 9abeb55ebb..fac325c704 100644
--- 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)
diff --git a/config_h.SH b/config_h.SH
index 3e665919d2..08a1cf5ad1 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -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!
diff --git a/epoc/config.sh b/epoc/config.sh
index a60b7a0f08..b1fee71e06 100644
--- a/epoc/config.sh
+++ b/epoc/config.sh
@@ -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 2f30218978..04b6196223 100644
--- 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 316c7936d7..e90b5386fc 100644
--- 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;
diff --git a/pp_sys.c b/pp_sys.c
index a068923f36..f9f6052bec 100644
--- 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))
diff --git a/vms/subconfigure.com b/vms/subconfigure.com
index 56de2786e7..479d3152ac 100644
--- a/vms/subconfigure.com
+++ b/vms/subconfigure.com
@@ -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##
$!
diff --git a/vos/config.def b/vos/config.def
index 1352c0586e..e66c87ac14 100644
--- a/vos/config.def
+++ b/vos/config.def
@@ -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'
diff --git a/vos/config.h b/vos/config.h
index d77218a06e..5e4e665a93 100644
--- a/vos/config.h
+++ b/vos/config.h
@@ -171,12 +171,6 @@
*/
#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.
@@ -1200,7 +1194,7 @@
# 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:
@@ -1342,11 +1336,24 @@
*/
/*#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.
@@ -1394,6 +1401,12 @@
*/
#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.
@@ -1620,6 +1633,18 @@
*/
#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
@@ -1662,6 +1687,14 @@
#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.
@@ -2262,6 +2295,12 @@
*/
/*#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>.
@@ -2612,6 +2651,9 @@
/* 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.
@@ -2641,6 +2683,7 @@
#define I64SIZE _error_ /**/
#define U64SIZE _error_ /**/
#endif
+#define NVSIZE $nvsize /**/
#define NV_PRESERVES_UV
/* IVdf:
@@ -2780,8 +2823,8 @@
* 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.
@@ -2820,6 +2863,12 @@
*/
#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.
@@ -2965,10 +3014,22 @@
#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:
@@ -3043,30 +3104,11 @@
#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
diff --git a/vos/config_h.SH_orig b/vos/config_h.SH_orig
index b743847203..08a1cf5ad1 100755
--- a/vos/config_h.SH_orig
+++ b/vos/config_h.SH_orig
@@ -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!
diff --git a/win32/config.bc b/win32/config.bc
index 1b984bb08d..e737ae7c5e 100644
--- a/win32/config.bc
+++ b/win32/config.bc
@@ -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'
diff --git a/win32/config.gc b/win32/config.gc
index 762e792464..a926ac500a 100644
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -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'
diff --git a/win32/config.vc b/win32/config.vc
index f3dff460ca..2437be2f85 100644
--- a/win32/config.vc
+++ b/win32/config.vc
@@ -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'
diff --git a/win32/config_H.bc b/win32/config_H.bc
index 7e04ed184f..8ca757c913 100644
--- a/win32/config_H.bc
+++ b/win32/config_H.bc
@@ -183,6 +183,13 @@
*/
/*#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().
@@ -1620,6 +1627,18 @@
*/
#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
@@ -1713,6 +1732,13 @@
*/
/*#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).
diff --git a/win32/config_H.gc b/win32/config_H.gc
index 07e89dadb5..289eadd767 100644
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -183,6 +183,13 @@
*/
/*#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().
@@ -1620,6 +1627,18 @@
*/
#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
@@ -1713,6 +1732,13 @@
*/
/*#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).
diff --git a/win32/config_H.vc b/win32/config_H.vc
index 5d77c7b032..b0702f079c 100644
--- a/win32/config_H.vc
+++ b/win32/config_H.vc
@@ -183,6 +183,13 @@
*/
/*#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().
@@ -1620,6 +1627,18 @@
*/
#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
@@ -1713,6 +1732,13 @@
*/
/*#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).