Change 33877 by [EMAIL PROTECTED] on 2008/05/20 09:41:34
Integrate:
[ 33049]
Fix the misplaced warnings and failing tests caused by the precision
loss warning on ++ and -- by moving the check to Configure time,
creating a new config.sh variable nv_overflows_integers_at which
contains an constant expression for the value of the NV which can't
be incremented by 1.0
[ 33054]
Oops, change 33049 really did need to update all the Win?? headers
as the symbol isn't used in a conditional compile.
[ 33055]
Update uconfig.h to add USE_DTRACE back in.
[ 33321]
Resync with metaconfig. Escape the last ~.
[ 33345]
Sync win32/config.* with Porting/config.sh
Affected files ...
... //depot/maint-5.10/perl/Configure#7 integrate
... //depot/maint-5.10/perl/Cross/config.sh-arm-linux#4 integrate
... //depot/maint-5.10/perl/NetWare/config.wc#4 integrate
... //depot/maint-5.10/perl/Porting/Glossary#5 integrate
... //depot/maint-5.10/perl/Porting/config.sh#4 integrate
... //depot/maint-5.10/perl/Porting/config_H#4 integrate
... //depot/maint-5.10/perl/config_h.SH#5 integrate
... //depot/maint-5.10/perl/configure.com#6 integrate
... //depot/maint-5.10/perl/epoc/config.sh#4 integrate
... //depot/maint-5.10/perl/plan9/config_sh.sample#4 integrate
... //depot/maint-5.10/perl/symbian/config.sh#4 integrate
... //depot/maint-5.10/perl/uconfig.h#5 integrate
... //depot/maint-5.10/perl/uconfig.sh#5 integrate
... //depot/maint-5.10/perl/win32/config.bc#4 integrate
... //depot/maint-5.10/perl/win32/config.ce#4 integrate
... //depot/maint-5.10/perl/win32/config.gc#4 integrate
... //depot/maint-5.10/perl/win32/config.vc#4 integrate
... //depot/maint-5.10/perl/win32/config.vc64#4 integrate
... //depot/maint-5.10/perl/win32/config_H.bc#4 integrate
... //depot/maint-5.10/perl/win32/config_H.ce#4 integrate
... //depot/maint-5.10/perl/win32/config_H.gc#4 integrate
... //depot/maint-5.10/perl/win32/config_H.vc#4 integrate
... //depot/maint-5.10/perl/win32/config_H.vc64#4 integrate
Differences ...
==== //depot/maint-5.10/perl/Configure#7 (xtext) ====
Index: perl/Configure
--- perl/Configure#6~33875~ 2008-05-20 01:32:47.000000000 -0700
+++ perl/Configure 2008-05-20 02:41:34.000000000 -0700
@@ -25,7 +25,7 @@
# $Id: Head.U 6 2006-08-25 22:21:46Z rmanfredi $
#
-# Generated on Tue Jan 22 17:46:32 CET 2008 [metaconfig 3.0 PL70]
+# Generated on Fri Feb 15 17:37:37 CET 2008 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by [EMAIL PROTECTED])
cat >c1$$ <<EOF
@@ -1057,6 +1057,7 @@
i8type=''
ivsize=''
ivtype=''
+nv_overflows_integers_at=''
nv_preserves_uv_bits=''
nvsize=''
nvtype=''
@@ -3591,7 +3592,7 @@
\~/*|\~)
echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
;;
- ~*)
+ \~*)
if $test -f /bin/csh; then
/bin/csh -f -c "glob \$1"
failed=\$?
@@ -15470,6 +15471,89 @@
esac
$rm_try
+$echo "Checking to find the largest integer value your NVs can hold..." >&4
+: volatile so that the compiler has to store it out to memory.
+if test X"$d_volatile" = X"$define"; then
+ volatile=volatile
+fi
+$cat <<EOP >try.c
+#include <stdio.h>
+
+typedef $nvtype NV;
+
+int
+main() {
+ NV value = 2;
+ int count = 1;
+
+ while(count < 256) {
+ $volatile NV up = value + 1.0;
+ $volatile NV negated = -value;
+ $volatile NV down = negated - 1.0;
+ $volatile NV got_up = up - value;
+ int up_good = got_up == 1.0;
+ int got_down = down - negated;
+ int down_good = got_down == -1.0;
+
+ if (down_good != up_good) {
+ fprintf(stderr,
+ "Inconsistency - up %d %f; down %d %f; for 2**%d (%.20f)\n",
+ up_good, (double) got_up, down_good, (double) got_down,
+ count, (double) value);
+ return 1;
+ }
+ if (!up_good) {
+ while (1) {
+ if (count > 8) {
+ count -= 8;
+ fputs("256.0", stdout);
+ } else {
+ count--;
+ fputs("2.0", stdout);
+ }
+ if (!count) {
+ puts("");
+ return 0;
+ }
+ fputs("*", stdout);
+ }
+ }
+ value *= 2;
+ ++count;
+ }
+ fprintf(stderr, "Cannot overflow integer range, even at 2**%d (%.20f)\n",
+ count, (double) value);
+ return 1;
+}
+EOP
+set try
+
+nv_overflows_integers_at='0'
+if eval $compile; then
+ xxx="`$run ./try`"
+ case "$?" in
+ 0)
+ case "$xxx" in
+ 2*) cat >&4 <<EOM
+The largest integer your NVs can preserve is equal to $xxx
+EOM
+ nv_overflows_integers_at="$xxx"
+ ;;
+ *) cat >&4 <<EOM
+Cannot determine the largest integer value your NVs can hold, unexpected output
+'$xxx'
+EOM
+ ;;
+ esac
+ ;;
+ *) cat >&4 <<EOM
+Cannot determine the largest integer value your NVs can hold
+EOM
+ ;;
+ esac
+fi
+$rm_try
+
$echo "Checking whether NV 0.0 is all bits zero in memory..." >&4
: volatile so that the compiler has to store it out to memory.
if test X"$d_volatile" = X"$define"; then
@@ -22422,6 +22506,7 @@
nvEUformat='$nvEUformat'
nvFUformat='$nvFUformat'
nvGUformat='$nvGUformat'
+nv_overflows_integers_at='$nv_overflows_integers_at'
nv_preserves_uv_bits='$nv_preserves_uv_bits'
nveformat='$nveformat'
nvfformat='$nvfformat'
==== //depot/maint-5.10/perl/Cross/config.sh-arm-linux#4 (text) ====
Index: perl/Cross/config.sh-arm-linux
--- perl/Cross/config.sh-arm-linux#3~33873~ 2008-05-19 17:34:37.000000000
-0700
+++ perl/Cross/config.sh-arm-linux 2008-05-20 02:41:34.000000000 -0700
@@ -808,6 +808,7 @@
nvFUformat='"F"'
nvGUformat='"G"'
nv_preserves_uv_bits='32'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
nveformat='"e"'
nvfformat='"f"'
nvgformat='"g"'
==== //depot/maint-5.10/perl/NetWare/config.wc#4 (text) ====
Index: perl/NetWare/config.wc
--- perl/NetWare/config.wc#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/NetWare/config.wc 2008-05-20 02:41:34.000000000 -0700
@@ -784,6 +784,7 @@
nvFUformat='"F"'
nvGUformat='"G"'
nv_preserves_uv_bits='32'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
nveformat='"e"'
nvfformat='"f"'
nvgformat='"g"'
==== //depot/maint-5.10/perl/Porting/Glossary#5 (text) ====
Index: perl/Porting/Glossary
--- perl/Porting/Glossary#4~33875~ 2008-05-20 01:32:47.000000000 -0700
+++ perl/Porting/Glossary 2008-05-20 02:41:34.000000000 -0700
@@ -3795,6 +3795,11 @@
full pathname (if any) of the nroff program. After Configure runs,
the value is reset to a plain "nroff" and is not useful.
+nv_overflows_integers_at (perlxv.U):
+ This variable gives the largest integer value that NVs can hold
+ as a constant floating point expression.
+ If it could not be determined, it holds the value 0.
+
nv_preserves_uv_bits (perlxv.U):
This variable indicates how many of bits type uvtype
a variable nvtype can preserve.
==== //depot/maint-5.10/perl/Porting/config.sh#4 (text) ====
Index: perl/Porting/config.sh
--- perl/Porting/config.sh#3~33875~ 2008-05-20 01:32:47.000000000 -0700
+++ perl/Porting/config.sh 2008-05-20 02:41:34.000000000 -0700
@@ -824,6 +824,7 @@
nvEUformat='"E"'
nvFUformat='"F"'
nvGUformat='"G"'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
nv_preserves_uv_bits='53'
nveformat='"e"'
nvfformat='"f"'
==== //depot/maint-5.10/perl/Porting/config_H#4 (text) ====
Index: perl/Porting/config_H
--- perl/Porting/config_H#3~33875~ 2008-05-20 01:32:47.000000000 -0700
+++ perl/Porting/config_H 2008-05-20 02:41:34.000000000 -0700
@@ -4271,6 +4271,12 @@
* This symbol contains the number of bits a variable of type NVTYPE
* can preserve of a variable of type UVTYPE.
*/
+/* NV_OVERFLOWS_INTEGERS_AT
+ * This symbol gives the largest integer value that NVs can hold. This
+ * value + 1.0 cannot be stored accurately. It is expressed as constant
+ * floating point expression to reduce the chance of decimale/binary
+ * conversion issues. If it can not be determined, the value 0 is given.
+ */
/* NV_ZERO_IS_ALLBITS_ZERO:
* This symbol, if defined, indicates that a variable of type NVTYPE
* stores 0.0 in memory as all bits zero.
@@ -4303,6 +4309,7 @@
#define NVSIZE 8 /**/
#undef NV_PRESERVES_UV
#define NV_PRESERVES_UV_BITS 53
+#define NV_OVERFLOWS_INTEGERS_AT
256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0
#define NV_ZERO_IS_ALLBITS_ZERO
#if UVSIZE == 8
# ifdef BYTEORDER
==== //depot/maint-5.10/perl/config_h.SH#5 (text) ====
Index: perl/config_h.SH
--- perl/config_h.SH#4~33875~ 2008-05-20 01:32:47.000000000 -0700
+++ perl/config_h.SH 2008-05-20 02:41:34.000000000 -0700
@@ -957,19 +957,16 @@
#if $cpp_stuff == 1
#define CAT2(a,b) a/**/b
#define STRINGIFY(a) "a"
- /* If you can get stringification with catify, tell me how! */
#endif
#if $cpp_stuff == 42
#define PeRl_CaTiFy(a, b) a ## b
#define PeRl_StGiFy(a) #a
-/* the additional level of indirection enables these macros to be
- * used as arguments to other macros. See K&R 2nd ed., page 231. */
#define CAT2(a,b) PeRl_CaTiFy(a,b)
#define StGiFy(a) PeRl_StGiFy(a)
#define STRINGIFY(a) PeRl_StGiFy(a)
#endif
#if $cpp_stuff != 1 && $cpp_stuff != 42
-# include "Bletch: How does this C preprocessor concatenate tokens?"
+#include "Bletch: How does this C preprocessor concatenate tokens?"
#endif
/* CPPSTDIN:
@@ -4300,6 +4297,12 @@
* This symbol contains the number of bits a variable of type NVTYPE
* can preserve of a variable of type UVTYPE.
*/
+/* NV_OVERFLOWS_INTEGERS_AT:
+ * This symbol gives the largest integer value that NVs can hold. This
+ * value + 1.0 cannot be stored accurately. It is expressed as constant
+ * floating point expression to reduce the chance of decimale/binary
+ * conversion issues. If it can not be determined, the value 0 is given.
+ */
/* NV_ZERO_IS_ALLBITS_ZERO:
* This symbol, if defined, indicates that a variable of type NVTYPE
* stores 0.0 in memory as all bits zero.
@@ -4332,6 +4335,7 @@
#define NVSIZE $nvsize /**/
#$d_nv_preserves_uv NV_PRESERVES_UV
#define NV_PRESERVES_UV_BITS $nv_preserves_uv_bits
+#define NV_OVERFLOWS_INTEGERS_AT $nv_overflows_integers_at
#$d_nv_zero_is_allbits_zero NV_ZERO_IS_ALLBITS_ZERO
#if UVSIZE == 8
# ifdef BYTEORDER
@@ -4413,7 +4417,9 @@
* Usual values include _iob, __iob, and __sF.
*/
#$d_stdio_stream_array HAS_STDIO_STREAM_ARRAY /**/
+#ifdef HAS_STDIO_STREAM_ARRAY
#define STDIO_STREAM_ARRAY $stdio_stream_array
+#endif
/* USE_64_BIT_INT:
* This symbol, if defined, indicates that 64-bit integers should
==== //depot/maint-5.10/perl/configure.com#6 (text) ====
Index: perl/configure.com
--- perl/configure.com#5~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/configure.com 2008-05-20 02:41:34.000000000 -0700
@@ -5917,6 +5917,8 @@
$ WC "d_nice='define'"
$ WC "d_nl_langinfo='" + d_nl_langinfo + "'"
$ WC "d_nv_preserves_uv='" + d_nv_preserves_uv + "'"
+$! Pending integrating the probe test
+$ WC "nv_overflows_integers_at='0'"
$ WC "nv_preserves_uv_bits='" + nv_preserves_uv_bits + "'"
$ WC "d_nv_zero_is_allbits_zero='define'"
$ WC "d_off64_t='" + d_off64_t + "'"
==== //depot/maint-5.10/perl/epoc/config.sh#4 (text) ====
Index: perl/epoc/config.sh
--- perl/epoc/config.sh#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/epoc/config.sh 2008-05-20 02:41:34.000000000 -0700
@@ -970,6 +970,7 @@
d_strtouq='undef'
d_nv_preserves_uv='define'
nv_preserves_uv_bits='32'
+nv_overflows_integers_at='0'
useithreads='undef'
inc_version_list=' '
inc_version_list_init='0'
==== //depot/maint-5.10/perl/plan9/config_sh.sample#4 (text) ====
Index: perl/plan9/config_sh.sample
--- perl/plan9/config_sh.sample#3~33873~ 2008-05-19 17:34:37.000000000
-0700
+++ perl/plan9/config_sh.sample 2008-05-20 02:41:34.000000000 -0700
@@ -789,6 +789,7 @@
nvFUformat='"F"'
nvGUformat='"G"'
nv_preserves_uv_bits='31'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
nveformat='"e"'
nvfformat='"f"'
nvgformat='"g"'
==== //depot/maint-5.10/perl/symbian/config.sh#4 (text) ====
Index: perl/symbian/config.sh
--- perl/symbian/config.sh#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/symbian/config.sh 2008-05-20 02:41:34.000000000 -0700
@@ -661,6 +661,7 @@
nveformat='"e"'
nvfformat='"f"'
nvgformat='"g"'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
nvsize='8'
nvtype='double'
o_nonblock='O_NONBLOCK'
==== //depot/maint-5.10/perl/uconfig.h#5 (text+w) ====
Index: perl/uconfig.h
--- perl/uconfig.h#4~33875~ 2008-05-20 01:32:47.000000000 -0700
+++ perl/uconfig.h 2008-05-20 02:41:34.000000000 -0700
@@ -4267,6 +4267,12 @@
* This symbol contains the number of bits a variable of type NVTYPE
* can preserve of a variable of type UVTYPE.
*/
+/* NV_OVERFLOWS_INTEGERS_AT
+ * This symbol gives the largest integer value that NVs can hold. This
+ * value + 1.0 cannot be stored accurately. It is expressed as constant
+ * floating point expression to reduce the chance of decimale/binary
+ * conversion issues. If it can not be determined, the value 0 is given.
+ */
/* NV_ZERO_IS_ALLBITS_ZERO:
* This symbol, if defined, indicates that a variable of type NVTYPE
* stores 0.0 in memory as all bits zero.
@@ -4299,6 +4305,7 @@
#define NVSIZE 8 /**/
#undef NV_PRESERVES_UV
#define NV_PRESERVES_UV_BITS 0
+#define NV_OVERFLOWS_INTEGERS_AT
256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0
#undef NV_ZERO_IS_ALLBITS_ZERO
#if UVSIZE == 8
# ifdef BYTEORDER
@@ -4407,6 +4414,12 @@
/*#define USE_64_BIT_ALL / **/
#endif
+/* USE_DTRACE:
+ * This symbol, if defined, indicates that Perl should
+ * be built with support for DTrace.
+ */
+/*#define USE_DTRACE / **/
+
/* USE_FAST_STDIO:
* This symbol, if defined, indicates that Perl should
* be built to use 'fast stdio'.
==== //depot/maint-5.10/perl/uconfig.sh#5 (xtext) ====
Index: perl/uconfig.sh
--- perl/uconfig.sh#4~33875~ 2008-05-20 01:32:47.000000000 -0700
+++ perl/uconfig.sh 2008-05-20 02:41:34.000000000 -0700
@@ -269,6 +269,7 @@
d_nv_preserves_uv='undef'
d_nv_zero_is_allbits_zero='undef'
nv_preserves_uv_bits='0'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
d_off64_t='undef'
d_old_pthread_create_joinable='undef'
d_oldpthreads='undef'
==== //depot/maint-5.10/perl/win32/config.bc#4 (text) ====
Index: perl/win32/config.bc
--- perl/win32/config.bc#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/win32/config.bc 2008-05-20 02:41:34.000000000 -0700
@@ -801,6 +801,7 @@
nvEUformat='"E"'
nvFUformat='"F"'
nvGUformat='"G"'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
nv_preserves_uv_bits='32'
nveformat='"e"'
nvfformat='"f"'
==== //depot/maint-5.10/perl/win32/config.ce#4 (text) ====
Index: perl/win32/config.ce
--- perl/win32/config.ce#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/win32/config.ce 2008-05-20 02:41:34.000000000 -0700
@@ -775,6 +775,7 @@
nonxs_ext='Errno'
nroff=''
nv_preserves_uv_bits='32'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
nveformat='"e"'
nvfformat='"f"'
nvgformat='"g"'
==== //depot/maint-5.10/perl/win32/config.gc#4 (text) ====
Index: perl/win32/config.gc
--- perl/win32/config.gc#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/win32/config.gc 2008-05-20 02:41:34.000000000 -0700
@@ -801,6 +801,7 @@
nvEUformat='"E"'
nvFUformat='"F"'
nvGUformat='"G"'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
nv_preserves_uv_bits='32'
nveformat='"e"'
nvfformat='"f"'
==== //depot/maint-5.10/perl/win32/config.vc#4 (text) ====
Index: perl/win32/config.vc
--- perl/win32/config.vc#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/win32/config.vc 2008-05-20 02:41:34.000000000 -0700
@@ -801,6 +801,7 @@
nvEUformat='"E"'
nvFUformat='"F"'
nvGUformat='"G"'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
nv_preserves_uv_bits='32'
nveformat='"e"'
nvfformat='"f"'
==== //depot/maint-5.10/perl/win32/config.vc64#4 (text) ====
Index: perl/win32/config.vc64
--- perl/win32/config.vc64#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/win32/config.vc64 2008-05-20 02:41:34.000000000 -0700
@@ -801,6 +801,7 @@
nvEUformat='"E"'
nvFUformat='"F"'
nvGUformat='"G"'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
nv_preserves_uv_bits='53'
nveformat='"e"'
nvfformat='"f"'
==== //depot/maint-5.10/perl/win32/config_H.bc#4 (text+w) ====
Index: perl/win32/config_H.bc
--- perl/win32/config_H.bc#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/win32/config_H.bc 2008-05-20 02:41:34.000000000 -0700
@@ -3920,6 +3920,12 @@
* This symbol contains the number of bits a variable of type NVTYPE
* can preserve of a variable of type UVTYPE.
*/
+/* NV_OVERFLOWS_INTEGERS_AT
+ * This symbol gives the largest integer value that NVs can hold. This
+ * value + 1.0 cannot be stored accurately. It is expressed as constant
+ * floating point expression to reduce the chance of decimale/binary
+ * conversion issues. If it can not be determined, the value 0 is given.
+ */
/* NV_ZERO_IS_ALLBITS_ZERO
* This symbol, if defined, indicates that a variable of type NVTYPE
* stores 0.0 in memory as all bits zero.
@@ -3952,6 +3958,7 @@
#define NVSIZE 8 /**/
#define NV_PRESERVES_UV
#define NV_PRESERVES_UV_BITS 32
+#define NV_OVERFLOWS_INTEGERS_AT
256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0
#define NV_ZERO_IS_ALLBITS_ZERO
#if 4 == 8
# ifdef BYTEORDER
==== //depot/maint-5.10/perl/win32/config_H.ce#4 (text) ====
Index: perl/win32/config_H.ce
--- perl/win32/config_H.ce#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/win32/config_H.ce 2008-05-20 02:41:34.000000000 -0700
@@ -3248,7 +3248,13 @@
* This symbol contains the number of bits a variable of type NVTYPE
* can preserve of a variable of type UVTYPE.
*/
-/* NV_ZERO_IS_ALLBITS_ZERO:
+/* NV_OVERFLOWS_INTEGERS_AT
+ * This symbol gives the largest integer value that NVs can hold. This
+ * value + 1.0 cannot be stored accurately. It is expressed as constant
+ * floating point expression to reduce the chance of decimale/binary
+ * conversion issues. If it can not be determined, the value 0 is given.
+ */
+/* NV_ZERO_IS_ALLBITS_ZERO
* This symbol, if defined, indicates that a variable of type NVTYPE
* stores 0.0 in memory as all bits zero.
*/
@@ -3280,6 +3286,7 @@
#define NVSIZE 8 /**/
#define NV_PRESERVES_UV
#define NV_PRESERVES_UV_BITS undef
+#define NV_OVERFLOWS_INTEGERS_AT
256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0
#undef NV_ZERO_IS_ALLBITS_ZERO
#if UVSIZE == 8
# ifdef BYTEORDER
==== //depot/maint-5.10/perl/win32/config_H.gc#4 (text+w) ====
Index: perl/win32/config_H.gc
--- perl/win32/config_H.gc#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/win32/config_H.gc 2008-05-20 02:41:34.000000000 -0700
@@ -3945,6 +3945,12 @@
* This symbol contains the number of bits a variable of type NVTYPE
* can preserve of a variable of type UVTYPE.
*/
+/* NV_OVERFLOWS_INTEGERS_AT
+ * This symbol gives the largest integer value that NVs can hold. This
+ * value + 1.0 cannot be stored accurately. It is expressed as constant
+ * floating point expression to reduce the chance of decimale/binary
+ * conversion issues. If it can not be determined, the value 0 is given.
+ */
/* NV_ZERO_IS_ALLBITS_ZERO
* This symbol, if defined, indicates that a variable of type NVTYPE
* stores 0.0 in memory as all bits zero.
@@ -3982,6 +3988,7 @@
#define NVSIZE 8 /**/
#define NV_PRESERVES_UV
#define NV_PRESERVES_UV_BITS 32
+#define NV_OVERFLOWS_INTEGERS_AT
256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0
#define NV_ZERO_IS_ALLBITS_ZERO
#if 4 == 8
# ifdef BYTEORDER
==== //depot/maint-5.10/perl/win32/config_H.vc#4 (text+w) ====
Index: perl/win32/config_H.vc
--- perl/win32/config_H.vc#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/win32/config_H.vc 2008-05-20 02:41:34.000000000 -0700
@@ -3941,6 +3941,12 @@
* This symbol contains the number of bits a variable of type NVTYPE
* can preserve of a variable of type UVTYPE.
*/
+/* NV_OVERFLOWS_INTEGERS_AT
+ * This symbol gives the largest integer value that NVs can hold. This
+ * value + 1.0 cannot be stored accurately. It is expressed as constant
+ * floating point expression to reduce the chance of decimale/binary
+ * conversion issues. If it can not be determined, the value 0 is given.
+ */
/* NV_ZERO_IS_ALLBITS_ZERO
* This symbol, if defined, indicates that a variable of type NVTYPE
* stores 0.0 in memory as all bits zero.
@@ -3978,6 +3984,7 @@
#define NVSIZE 8 /**/
#define NV_PRESERVES_UV
#define NV_PRESERVES_UV_BITS 32
+#define NV_OVERFLOWS_INTEGERS_AT
256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0
#define NV_ZERO_IS_ALLBITS_ZERO
#if 4 == 8
# ifdef BYTEORDER
==== //depot/maint-5.10/perl/win32/config_H.vc64#4 (text) ====
Index: perl/win32/config_H.vc64
--- perl/win32/config_H.vc64#3~33873~ 2008-05-19 17:34:37.000000000 -0700
+++ perl/win32/config_H.vc64 2008-05-20 02:41:34.000000000 -0700
@@ -3920,6 +3920,12 @@
* This symbol contains the number of bits a variable of type NVTYPE
* can preserve of a variable of type UVTYPE.
*/
+/* NV_OVERFLOWS_INTEGERS_AT
+ * This symbol gives the largest integer value that NVs can hold. This
+ * value + 1.0 cannot be stored accurately. It is expressed as constant
+ * floating point expression to reduce the chance of decimale/binary
+ * conversion issues. If it can not be determined, the value 0 is given.
+ */
/* NV_ZERO_IS_ALLBITS_ZERO
* This symbol, if defined, indicates that a variable of type NVTYPE
* stores 0.0 in memory as all bits zero.
@@ -3952,6 +3958,7 @@
#define NVSIZE 8 /**/
#undef NV_PRESERVES_UV
#define NV_PRESERVES_UV_BITS 53
+#define NV_OVERFLOWS_INTEGERS_AT
256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0
#define NV_ZERO_IS_ALLBITS_ZERO
#if 8 == 8
# ifdef BYTEORDER
End of Patch.