develooper Front page | perl.perl5.porters | Postings from December 2014

[perl #123522] [PATCH] refactor gv_add_by_type

From:
bulk88
Date:
December 30, 2014 14:33
Subject:
[perl #123522] [PATCH] refactor gv_add_by_type
Message ID:
rt-4.0.18-23520-1419950010-62.123522-75-0@perl.org
# New Ticket Created by  bulk88 
# Please include the string:  [perl #123522]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=123522 >


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]

See attached patch.

The original patch message was

before VC 2003 32 -01 .text 0xc8813 .rdata 0x482fa in bytes after
.text 0xc8623 .rdata 0x4857c

but the theoretical .rdata of the 2 arrays I added was 0x18 bytes, but 
some of it was atoned for by the string removal, as in the pics, so it 
probably should be been ~0x10< delta, not 0x18. while the delta seen was 
is 0x282, but it seems the build process switch from 3 "local patches" 
to 16 "local patches" and that made .rdata much bigger with those string 
extra SHA1s.

This will cause some minor breakage with DEFSV 
http://grep.cpan.me/?q=-file%3Appport\.h+DEFSV , but all the code that 
currently assigns to DEFSV is leaking anyway since perl.h currently has

#ifdef PERL_CORE
# define DEFSV (0 + GvSVn(PL_defgv))
# define DEFSV_set(sv) \
     (SvREFCNT_dec(GvSV(PL_defgv)), GvSV(PL_defgv) = SvREFCNT_inc(sv))
# define SAVE_DEFSV                \
     (                               \
	save_gp(PL_defgv, 0),        \
	GvINTRO_off(PL_defgv),        \
	SAVEGENERICSV(GvSV(PL_defgv)), \
	GvSV(PL_defgv) = NULL           \
     )
#else
# define DEFSV GvSVn(PL_defgv)
# define DEFSV_set(sv) (GvSV(PL_defgv) = (sv))
# define SAVE_DEFSV SAVESPTR(GvSV(PL_defgv))
#endif

assigning to GvSVn will leak.

There doesn't seem to be anything on CPAN that will break as of Gv\w\wn 
becoming rvalue only.

http://grep.cpan.me/?q=-file%3Appport\.h%20Gv\w\wn\%28&page=1

[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)





















nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About