This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Pod-Simple to CPAN version 3.31
[perl5.git] / config_h.SH
index 75f3952..0d4a409 100755 (executable)
@@ -1952,7 +1952,8 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 /* LONG_DOUBLESIZE:
  *     This symbol contains the size of a long double, so that the
  *     C preprocessor can make decisions based on it.  It is only
- *     defined if the system supports long doubles.
+ *     defined if the system supports long doubles.  Note that this
+ *     is sizeof(long double), which may include unused bytes.
  */
 /* HAS_LDEXPL:
  *     This symbol, if defined, indicates that the ldexpl routine is
@@ -4010,8 +4011,8 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 
 /* HAS_LLROUNDL:
  *     This symbol, if defined, indicates that the llroundl routine is
- *     available to return the nearest long long value of the long double
- *     argument value.
+ *     available to return the nearest long long value away from zero of
+ *     the long double argument value.
  */
 #$d_llroundl HAS_LLROUNDL              /**/
 
@@ -4042,7 +4043,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 
 /* HAS_LRINTL:
  *     This symbol, if defined, indicates that the lrintl routine is
- *     available to return the closest integral value to the long double
+ *     available to return the closest integral value of the long double
  *     argument according to the current rounding mode.
  */
 #$d_lrintl HAS_LRINTL          /**/
@@ -4055,8 +4056,8 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 
 /* HAS_LROUNDL:
  *     This symbol, if defined, indicates that the lroundl routine is
- *     available to return the nearest integral value to the long double
- *     argument.
+ *     available to return the nearest integral value away from zero of
+ *     the long double argument value.
  */
 #$d_lroundl HAS_LROUNDL                /**/
 
@@ -4793,6 +4794,27 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$i_ustat      I_USTAT         /**/
 
+/* DOUBLEINFBYTES:
+ *     This symbol, if defined, is a comma-separated list of
+ *     hexadecimal bytes for the double precision infinity.
+ */
+/* DOUBLENANBYTES:
+ *     This symbol, if defined, is a comma-separated list of
+ *     hexadecimal bytes (0xHH) for the double precision not-a-number.
+ */
+/* LONGDBLINFBYTES:
+ *     This symbol, if defined, is a comma-separated list of
+ *     hexadecimal bytes for the long double precision infinity.
+ */
+/* LONGDBLNANBYTES:
+ *     This symbol, if defined, is a comma-separated list of
+ *     hexadecimal bytes (0xHH) for the long double precision not-a-number.
+ */
+#define DOUBLEINFBYTES  $doubleinfbytes                /**/
+#define DOUBLENANBYTES  $doublenanbytes                /**/
+#define LONGDBLINFBYTES $longdblinfbytes               /**/
+#define LONGDBLNANBYTES $longdblnanbytes               /**/
+
 /* PERL_PRIfldbl:
  *     This symbol, if defined, contains the string used by stdio to
  *     format long doubles (format 'f') for output.
@@ -4836,6 +4858,30 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #$d_PRIeldbl PERL_PRIeldbl     $sPRIeldbl      /**/
 #$d_SCNfldbl PERL_SCNfldbl     $sSCNfldbl      /**/
 
+/* DOUBLEMANTBITS:
+ *     This symbol, if defined, tells how many mantissa bits
+ *     there are in double precision floating point format.
+ *     Note that this is usually DBL_MANT_DIG minus one, since
+ *     with the standard IEEE 754 formats DBL_MANT_DIG includes
+ *     the implicit bit, which doesn't really exist.
+ */
+/* LONGDBLMANTBITS:
+ *     This symbol, if defined, tells how many mantissa bits
+ *     there are in long double precision floating point format.
+ *     Note that this can be LDBL_MANT_DIG minus one,
+ *     since LDBL_MANT_DIG can include the IEEE 754 implicit bit.
+ *     The common x86-style 80-bit long double does not have
+ *     an implicit bit.
+ */
+/* NVMANTBITS:
+ *     This symbol, if defined, tells how many mantissa bits
+ *     (not including implicit bit) there are in a Perl NV.
+ *     This depends on which floating point type was chosen.
+ */
+#define DOUBLEMANTBITS  $doublemantbits
+#define LONGDBLMANTBITS $longdblmantbits
+#define NVMANTBITS      $nvmantbits
+
 /* NEED_VA_COPY:
  *     This symbol, if defined, indicates that the system stores
  *     the variable argument list datatype, va_list, in a format
@@ -4912,6 +4958,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* NVSIZE:
  *     This symbol contains the sizeof(NV).
+ *     Note that some floating point formats have unused bytes.
+ *     The most notable example is the x86* 80-bit extended precision
+ *     which comes in byte sizes of 12 and 16 (for 32 and 64 bit
+ *     platforms, respectively), but which only uses 10 bytes.
+ *     Perl compiled with -Duselongdouble on x86* is like this.
  */
 /* NV_PRESERVES_UV:
  *     This symbol, if defined, indicates that a variable of type NVTYPE