In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/0cd93aca4e274765289e9e01d34c4a5dcf06df1c?hp=923ed5809c063091fb0f77dc6f1b8231d587d13e>
- Log ----------------------------------------------------------------- commit 0cd93aca4e274765289e9e01d34c4a5dcf06df1c Author: Jarkko Hietaniemi <[email protected]> Date: Mon Mar 2 07:00:33 2015 -0500 Configure: add note about nvsize sometimes lying Lying in case you expect that many bytes being used for NV. ----------------------------------------------------------------------- Summary of changes: Porting/Glossary | 6 ++++-- config_h.SH | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Porting/Glossary b/Porting/Glossary index 75f67e3..3f9057e 100644 --- a/Porting/Glossary +++ b/Porting/Glossary @@ -4086,7 +4086,8 @@ longdblkind (d_longdbl.U): longdblsize (d_longdbl.U): This variable contains the value of the LONG_DOUBLESIZE symbol, which indicates to the C program how many bytes there are in a long double, - if this system supports long doubles. + if this system supports long doubles. Note that this is + sizeof(long double), which may include unused bytes. longlongsize (d_longlong.U): This variable contains the value of the LONGLONGSIZE symbol, which @@ -4351,7 +4352,8 @@ nvGUformat (perlxvf.U): a Perl NV using %G-ish floating point format. nvsize (perlxv.U): - This variable is the size of an NV in bytes. + This variable is the size of a Perl NV in bytes. + Note that some floating point formats have unused bytes. nvtype (perlxv.U): This variable contains the C type used for Perl's NV. diff --git a/config_h.SH b/config_h.SH index 03c6753..fb2224e 100755 --- a/config_h.SH +++ b/config_h.SH @@ -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 @@ -4912,6 +4913,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 -- Perl5 Master Repository
