FAQ
# New Ticket Created by bulk88
# Please include the string: [perl #123528]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=123528 >


This is a bug report for perl from bulk88@hotmail.com,
generated with the help of perlbug 1.40 running under perl 5.21.7.


-----------------------------------------------------------------
[Please describe your issue here]

need # for ticket.

failed due to ineffiency former plan

# define NV_NAN (*(double*)"\x00\x00\x00\x00\x00\x00\xF8\x7F")

SECTION HEADER #3F
    .rdata name
         0 physical address
         0 virtual address
         9 size of raw data
      4CA1 file pointer to raw data (00004CA1 to 00004CA9)
         0 file pointer to relocation table
         0 file pointer to line numbers
         0 number of relocations
         0 number of line numbers
40301040 flags
           Initialized Data
           COMDAT; sym= "`string'"
(??_C@_08KIGKMAA@?$AA?$AA?$AA?$AA?$AA?$AA?x?$HP?$AA@)
           4 byte align
           Read Only

RAW DATA #3F
    00000000: 00 00 00 00 00 00 F8 7F 00 ......ø..

it string is officially 9 bytes long, it will be rounded to 12 or 16. I
dont think there is a way to chop of the terminating null char to bring
back its size to 8 and not wasting all that space.

This is what a real FP symbol looks like

SECTION HEADER #47
    .rdata name
         0 physical address
         0 virtual address
         8 size of raw data
      5595 file pointer to raw data (00005595 to 0000559C)
         0 file pointer to relocation table
         0 file pointer to line numbers
         0 number of relocations
         0 number of line numbers
40401040 flags
           Initialized Data
           COMDAT; sym= __real@7fefffffffffffff
           8 byte align
           Read Only

RAW DATA #47
    00000000: FF FF FF FF FF FF EF 7F ÿÿÿÿÿÿï.

If you want more info, contact me offlist about this patch.


[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
                     category=core
                     severity=low
---
Site configuration information for perl 5.21.7:

Configured by Owner at Sat Nov 22 21:54:54 2014.

Summary of my perl5 (revision 5 version 21 subversion 7) configuration:
                   Local Commit: 1bce52df028aabe28c20b2d97949e35c17ea811e
                   Ancestor: 7072da8afeba4c87ae623cd913e274396ffcf1cd
                   Platform:
                     osname=MSWin32, osvers=5.1,
archname=MSWin32-x86-multi-thread
                     uname=''
                     config_args='undef'
                     hint=recommended, useposix=true, d_sigaction=undef
                     useithreads=define, usemultiplicity=define
                     use64bitint=undef, use64bitall=undef,
uselongdouble=undef
                     usemymalloc=n, bincompat5005=undef
                   Compiler:
                     cc='cl', ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG
-G7 -GL
-DWIN32 -D_CONSOLE -DNO_STRICT -DPERL_TEXTMODE_SCRIPTS
-DPERL_HASH_FUNC_ONE_AT_A_TIME -DNO_MATHOMS -DPERL_IMPLICIT_CONTEXT
-DPERL_IMPLICIT_SYS -DUSE_PERLIO -D_USE_32BIT_TIME_T',
                     optimize='-O1 -MD -Zi -DNDEBUG -G7 -GL',
                     cppflags='-DWIN32'
                     ccversion='13.10.6030', gccversion='', gccosandvers=''
                     intsize=4, longsize=4, ptrsize=4, doublesize=8,
byteorder=1234,
doublekind=3
                     d_longlong=undef, longlongsize=8, d_longdbl=define,
longdblsize=8,
longdblkind=0
                     ivtype='long', ivsize=4, nvtype='double', nvsize=8,
Off_t='__int64',
lseeksize=8
                     alignbytes=8, prototype=define
                   Linker and Libraries:
                     ld='link', ldflags ='-nologo -nodefaultlib -debug
-opt:ref,icf
-ltcg -libpath:"c:\perl521\lib\CORE" -machine:x86'
                     libpth="C:\Program Files\Microsoft Visual Studio .NET
2003\VC7\lib"
                     libs=oldnames.lib kernel32.lib user32.lib gdi32.lib
winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
                     perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib
oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib
version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
                     libc=msvcrt.lib, so=dll, useshrplib=true,
libperl=perl521.lib
                     gnulibc_version=''
                   Dynamic Linking:
                     dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef,
ccdlflags=' '
                     cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib
-debug
-opt:ref,icf -ltcg -libpath:"c:\perl521\lib\CORE" -machine:x86'

Locally applied patches:
                     ce7a4d57d0acca9f39a84d36d708c4505dfe45ca
                     ca0b263f4b167ddf97416f657d79ab5bd3344357
                     08919bf863666074243240abbd19cd1a74cc7b74
                     b8a043377dbf39548709b107a11e5cc2714c0e9a
                     efa855eb5cffb7739616c295dd968d1510efeeb0
                     1d47d0b810e26d9a2f9101fb813bd5b3dd332cc9
                     3faca062ddb056db54f73fa55b0a9d473675dd33
                     0b3e905bda3e75ad948a1213f620656b60807393
                     1b1efc719fde05d215e5a13fb38c03e12a3aab08
                     1bce52df028aabe28c20b2d97949e35c17ea811e

---
@INC for perl 5.21.7:
                     ..\lib
                     C:/perl521/srcnewb4opt/lib
                     .

---
Environment for perl 5.21.7:
                     HOME (unset)
                     LANG (unset)
                     LANGUAGE (unset)
                     LD_LIBRARY_PATH (unset)
                     LOGDIR (unset)
                     PATH=C:\WINDOWS\system32;C:\Program Files\Microsoft
Visual
Studio
.NET 2003\Vc7\bin;C:\Program Files\Microsoft Visual Studio .NET
2003\Common7\IDE;C:\WINDOWS;C:\Program Files\Git\cmd;C:\Program
Files\Microsoft Visual Studio .NET 2003\Common7\Tools\bin;C:\perl\bin
                     PERL_BADLANG (unset)
                     PERL_JSON_BACKEND=Cpanel::JSON::XS
                     PERL_YAML_BACKEND=YAML
                     SHELL (unset)

Search Discussions

  • Bulk88 at Dec 31, 2014 at 12:45 pm
    patch attached
  • bulk88 via RT at Dec 31, 2014 at 10:12 pm

    On Wed Dec 31 04:46:08 2014, bulk88 wrote:
    patch attached
    More background and a revised patch with vc6 tweaks attached.

    PL_nan before

    COFF SYMBOL TABLE
    000 0000000F DEBUG notype Filename | .file
         ..\av.c
    002 005F178E ABS notype Static | @comp.id
    003 00000001 ABS notype Static | @feat.00
    004 00000000 SECT1 notype Static | .drectve
         Section length 2C, #relocs 0, #linenums 0, checksum 0
    006 00000000 SECT2 notype Static | .debug$S
         Section length 1BF2, #relocs 6, #linenums 0, checksum 0
    008 00000000 SECT3 notype Static | .rdata
         Section length 4, #relocs 0, #linenums 0, checksum B40BBE3
    00A 00000000 SECT3 notype Static | ___PL_nan_u

    SECTION HEADER #3
       .rdata name
            0 physical address
            0 virtual address
            4 size of raw data
         27AE file pointer to raw data (000027AE to 000027B1)
            0 file pointer to relocation table
            0 file pointer to line numbers
            0 number of relocations
            0 number of line numbers
    40300040 flags
              Initialized Data
              4 byte align
              Read Only

    RAW DATA #3
       00000000: 00 00 C0 7F ..À.


    Notice there is no "COMDAT;" flag on the old PL_nan_u like on the string and the real (not type puned nan) FP double constant above.

    On the new PL_nan_u there is a COMDAT flag

    COFF SYMBOL TABLE
    000 0000000F DEBUG notype Filename | .file
         ..\av.c
    002 005F178E ABS notype Static | @comp.id
    003 00000001 ABS notype Static | @feat.00
    004 00000000 SECT1 notype Static | .drectve
         Section length 2C, #relocs 0, #linenums 0, checksum 0
    006 00000000 SECT2 notype Static | .debug$S
         Section length 1BB2, #relocs 4, #linenums 0, checksum 0
    008 00000000 SECT3 notype Static | .rdata
         Section length 8, #relocs 0, #linenums 0, checksum 1CDF0718, selection 2 (pick any)
    00A 00000000 SECT3 notype External | ___PL_nan_u

    SECTION HEADER #3
       .rdata name
            0 physical address
            0 virtual address
            8 size of raw data
         2782 file pointer to raw data (00002782 to 00002789)
            0 file pointer to relocation table
            0 file pointer to line numbers
            0 number of relocations
            0 number of line numbers
    40401040 flags
              Initialized Data
              COMDAT; sym= ___PL_nan_u
              8 byte align
              Read Only

    RAW DATA #3
       00000000: 00 00 00 00 00 00 F8 7F ......ø.

    --
    bulk88 ~ bulk88 at hotmail.com

    ---
    via perlbug: queue: perl5 status: new
    https://rt.perl.org/Ticket/Display.html?id=123528

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupperl5-porters @
categoriesperl
postedDec 31, '14 at 12:42p
activeDec 31, '14 at 10:12p
posts3
users2
websiteperl.org

2 users in discussion

bulk88 via RT: 2 posts Bulk88: 1 post

People

Translate

site design / logo © 2021 Grokbase