Skip Menu |
Report information
Id: 126045
Status: resolved
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: bulk88 <bulk88 [at] hotmail.com>
Cc:
AdminCc:

Operating System: mswin32
PatchStatus: HasPatch
Severity: low
Type: core
Perl Version: 5.23.3
Fixed In: (no value)

Attachments
0001-perl-126045-part-revert-e9b19ab7-for-vc2003-and-earl.patch
0001-perl-126045-part-revert-e9b19ab7-for-vc2003-only.patch
0001-Revert-utf8.h-utfebcdic.h-Add-some-assertions.patch
0001-WIP-test-fix-for-126045-needs-work-needs-testing.patch



To: perlbug [...] perl.org
From: bulk88 <bulk88 [...] hotmail.com>
Date: Sat, 12 Sep 2015 20:24:26 -0400
Subject: [PATCH] Revert "utf8.h, utfebcdic.h: Add some assertions"
Download (untitled) / with headers
text/plain 7.6k
This is a bug report for perl from bulk88@hotmail.com, generated with the help of perlbug 1.40 running under perl 5.23.3. ----------------------------------------------------------------- [Please describe your issue here] See attached patch. before ---------------------------------------- C:\perl521\src\win32>dmake test CCTYPE=MSVC70 CFG=Debug if not exist ".\mini" mkdir ".\mini" if exist config.h del /f config.h copy config_H.vc config.h 1 file(s) copied. rem. > .\mini\.exists cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\toke.obj -Fdmini\toke.pdb ..\toke.c toke.c ..\toke.c(3118) : warning C4244: 'function' : conversion from 'IV' to 'const U8' , possible loss of data ..\toke.c(3137) : warning C4244: 'function' : conversion from 'IV' to 'const U8' , possible loss of data ..\toke.c(3660) : warning C4018: '>' : signed/unsigned mismatch cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\regcomp.obj -Fdmini\regcomp.pdb ..\regcomp.c regcomp.c cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\regexec.obj -Fdmini\regexec.pdb ..\regexec.c regexec.c ..\regexec.c(2006) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 2708) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information dmake: Error code 130, while making 'mini\regexec.obj' C:\perl521\src\win32> ------------------------------------------- after ------------------------------------------- C:\perl521\src\win32>dmake test CCTYPE=MSVC70 CFG=Debug if not exist ".\mini" mkdir ".\mini" if exist config.h del /f config.h copy config_H.vc config.h 1 file(s) copied. rem. > .\mini\.exists cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\toke.obj -Fdmini\toke.pdb ..\toke.c toke.c ..\toke.c(3118) : warning C4244: 'function' : conversion from 'IV' to 'const U8' , possible loss of data ..\toke.c(3137) : warning C4244: 'function' : conversion from 'IV' to 'const U8' , possible loss of data ..\toke.c(3660) : warning C4018: '>' : signed/unsigned mismatch cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\regcomp.obj -Fdmini\regcomp.pdb ..\regcomp.c regcomp.c cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\regexec.obj -Fdmini\regexec.pdb ..\regexec.c regexec.c cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\op.obj -Fdmini\op.pdb ..\op.c op.c op.c(8397) : warning C4244: 'function' : conversion from 'cv_flags_t' to 'char', possible loss of data cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\sv.obj -Fdmini\sv.pdb ..\sv.c sv.c Caught SIGINT. Trying to quit ... dmake: C:\perl521\src\win32> ------------------------------------------- [Please do not change anything below this line] ----------------------------------------------------------------- --- Flags: category=core severity=low --- Site configuration information for perl 5.23.3: Configured by Owner at Sat Sep 12 17:01:50 2015. Summary of my perl5 (revision 5 version 23 subversion 3) configuration: undef undef 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 -GL -DWIN32 -D_CONSOLE -DNO_STRICT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS', optimize='-O1 -MD -Zi -DNDEBUG -GL', cppflags='-DWIN32' ccversion='14.00.50727.42', 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:\perl\lib\CORE" -machine:x86 "/manifestdependency:type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"' libpth=\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=perl523.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:\perl\lib\CORE" -machine:x86 "/manifestdependency:type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"' --- @INC for perl 5.23.3: C:\perl521\src\lib C:\perl521\src\cpan\AutoLoader\lib C:\perl521\src\dist\Carp\lib C:\perl521\src\dist\PathTools C:\perl521\src\dist\PathTools\lib C:\perl521\src\cpan\ExtUtils-Command\lib C:\perl521\src\cpan\ExtUtils-Install\lib C:\perl521\src\cpan\ExtUtils-MakeMaker\lib C:\perl521\src\cpan\ExtUtils-Manifest\lib C:\perl521\src\cpan\File-Path\lib C:\perl521\src\ext\re C:\perl521\src\dist\Term-ReadLine\lib C:\perl521\src\dist\Exporter\lib C:\perl521\src\ext\File-Find\lib C:\perl521\src\cpan\Text-Tabs\lib C:\perl521\src\dist\constant\lib C:\perl521\src\cpan\Text-ParseWords\lib C:\perl521\src\dist\ExtUtils-ParseXS\lib C:\perl521\src\cpan\Getopt-Long\lib C:\perl521\src\cpan\parent\lib C:\perl521\src\cpan\ExtUtils-Constant\lib . --- Environment for perl 5.23.3: HOME (unset) LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=C:\perl521\bin;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE;C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\BIN;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\bin\prerelease;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem; PERL_BADLANG (unset) SHELL (unset)
From af3851c8d46d25f5ab5ab6b9a595bdbdb890a92a Mon Sep 17 00:00:00 2001 From: Daniel Dragan <bulk88@hotmail.com> Date: Sat, 12 Sep 2015 20:15:23 -0400 Subject: [PATCH] Revert "utf8.h, utfebcdic.h: Add some assertions" This reverts commit e9b19ab7df3480e8f710ca6faad519f6fccdb081. This fixes a Win32 Visual C 2003 DEBUGGING build failure in compiling regexec.obj. cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\regexec.obj -Fdmini\regexec.pdb ..\regexec.c regexec.c ..\regexec.c(2006) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 2708) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information No response from original author of the code at http://www.nntp.perl.org/group/perl.perl5.porters/2015/09/msg230842.html --- utf8.h | 8 ++++---- utfebcdic.h | 10 ++++------ 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/utf8.h b/utf8.h index 17f0e82..668626f 100644 --- a/utf8.h +++ b/utf8.h @@ -127,8 +127,8 @@ END_EXTERN_C /* Native character to/from iso-8859-1. Are the identity functions on ASCII * platforms */ -#define NATIVE_TO_LATIN1(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) (ch)) -#define LATIN1_TO_NATIVE(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) (ch)) +#define NATIVE_TO_LATIN1(ch) (ch) +#define LATIN1_TO_NATIVE(ch) (ch) /* I8 is an intermediate version of UTF-8 used only in UTF-EBCDIC. We thus * consider it to be identical to UTF-8 on ASCII platforms. Strictly speaking @@ -136,8 +136,8 @@ END_EXTERN_C * because they are 8-bit encodings that serve the same purpose in Perl, and * rarely do we need to distinguish them. The term "NATIVE_UTF8" applies to * whichever one is applicable on the current platform */ -#define NATIVE_UTF8_TO_I8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) (ch)) -#define I8_TO_NATIVE_UTF8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) (ch)) +#define NATIVE_UTF8_TO_I8(ch) (ch) +#define I8_TO_NATIVE_UTF8(ch) (ch) /* Transforms in wide UV chars */ #define UNI_TO_NATIVE(ch) (ch) diff --git a/utfebcdic.h b/utfebcdic.h index c852946..003fb79 100644 --- a/utfebcdic.h +++ b/utfebcdic.h @@ -133,13 +133,11 @@ END_EXTERN_C /* EBCDIC-happy ways of converting native code to UTF-8 */ -/* Use these when ch is known to be < 256 */ -#define NATIVE_TO_LATIN1(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) PL_e2a[(U8)(ch)]) -#define LATIN1_TO_NATIVE(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) PL_a2e[(U8)(ch)]) +#define NATIVE_TO_LATIN1(ch) PL_e2a[(U8)(ch)] +#define LATIN1_TO_NATIVE(ch) PL_a2e[(U8)(ch)] -/* Use these on bytes */ -#define NATIVE_UTF8_TO_I8(b) (__ASSERT_(FITS_IN_8_BITS(b)) PL_e2utf[(U8)(b)]) -#define I8_TO_NATIVE_UTF8(b) (__ASSERT_(FITS_IN_8_BITS(b)) PL_utf2e[(U8)(b)]) +#define NATIVE_UTF8_TO_I8(ch) PL_e2utf[(U8)(ch)] +#define I8_TO_NATIVE_UTF8(ch) PL_utf2e[(U8)(ch)] /* Transforms in wide UV chars */ #define NATIVE_TO_UNI(ch) (FITS_IN_8_BITS(ch) ? NATIVE_TO_LATIN1(ch) : (ch)) -- 1.7.9.msysgit.0
Subject: Re: [perl #126045] [PATCH] Revert "utf8.h, utfebcdic.h: Add some assertions"
Date: Thu, 17 Sep 2015 21:35:29 -0600
From: Karl Williamson <public [...] khwilliamson.com>
To: Perl5 Porters <perl5-porters [...] perl.org>
On 09/12/2015 06:25 PM, bulk88 (via RT) wrote: Show quoted text
> # New Ticket Created by bulk88 > # Please include the string: [perl #126045] > # in the subject line of all future correspondence about this issue. > # <URL: https://rt.perl.org/Ticket/Display.html?id=126045 > > This reverts commit e9b19ab7df3480e8f710ca6faad519f6fccdb081.
Show quoted text
> This fixes a Win32 Visual C 2003 DEBUGGING build failure in compiling
regexec.obj. Show quoted text
> cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE
-DNO_STRICT -DPERL DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\regexec.obj -Fdmini\regexec.pdb ..\regexec.c regexec.c Show quoted text
> ..\regexec.c(2006) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 2708) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information Show quoted text
> No response from original author of the code at > http://www.nntp.perl.org/group/perl.perl5.porters/2015/09/msg230842.html
=========================== Reverting the patch for the sake of a now-superseded compiler doesn't make sense. The patch detects array bounds errors on debugging builds on EBCDIC systems, and on non-EBCDIC systems, it detects code problems that would cause bounds errors when run on EBCDIC systems. Of course, we will try to support your compiler, but support for current z/OS is no less worthy than support of an old, superseded Win32 compiler. And, the EBCDIC portion of the patch has zero effect on Windows platforms. There must be a better way to get your compiler to work than to revert this patch. If nothing else, utf8.h could have #ifndef Win32 to work around the problematic code, but I would think that there is a way to be more specific to limit things to just the problematic compilers. Your final statement quoted above seems to indicate that because I (the original author) did not respond to an email you posted, that you have no choice but to revert the whole patch. But I, and most people, aren't going to respond to non-actionable emails. You said, "I day or 2 ago on some a now deleted smoke-me branch of khws I got ...[the internal compiler error]." There is nothing actionable in that. smoke-me branches come and go. This one was now gone. It seemed likely that this one was superseded by another one that had fixes in it. You gave no indication that you knew the failure was from the same set of changes that broke Merijn's compiler. I typically have several smokes of different things going on at the same time. I did not see anything I could do about this deleted code, so didn't respond. If we found out that the commit was stressing a bunch of different compilers, then the non-EBCDIC portion might need to be reverted. But Merijn's compiler (for which we have a work-around) and yours are the only ones so far. The bottom line is to submit a patch that gets your compiler to working, but doesn't affect anyone else's. Show quoted text
> > > This is a bug report for perl from bulk88@hotmail.com, > generated with the help of perlbug 1.40 running under perl 5.23.3. > > > ----------------------------------------------------------------- > [Please describe your issue here] > > See attached patch. > > before > ---------------------------------------- > C:\perl521\src\win32>dmake test CCTYPE=MSVC70 CFG=Debug > if not exist ".\mini" mkdir ".\mini" > if exist config.h del /f config.h > copy config_H.vc config.h > 1 file(s) copied. > rem. > .\mini\.exists > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\toke.obj -Fdmini\toke.pdb ..\toke.c > toke.c > ..\toke.c(3118) : warning C4244: 'function' : conversion from 'IV' to > 'const U8' > , possible loss of data > ..\toke.c(3137) : warning C4244: 'function' : conversion from 'IV' to > 'const U8' > , possible loss of data > ..\toke.c(3660) : warning C4018: '>' : signed/unsigned mismatch > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\regcomp.obj -Fdmini\regcomp.pdb ..\regcomp.c > regcomp.c > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\regexec.obj -Fdmini\regexec.pdb ..\regexec.c > regexec.c > ..\regexec.c(2006) : fatal error C1001: INTERNAL COMPILER ERROR > (compiler file 'msc1.cpp', line 2708) > Please choose the Technical Support command on the Visual C++ > Help menu, or open the Technical Support help file for more > information > > dmake: Error code 130, while making 'mini\regexec.obj' > C:\perl521\src\win32> > ------------------------------------------- > after > ------------------------------------------- > C:\perl521\src\win32>dmake test CCTYPE=MSVC70 CFG=Debug > if not exist ".\mini" mkdir ".\mini" > if exist config.h del /f config.h > copy config_H.vc config.h > 1 file(s) copied. > rem. > .\mini\.exists > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\toke.obj -Fdmini\toke.pdb ..\toke.c > toke.c > ..\toke.c(3118) : warning C4244: 'function' : conversion from 'IV' to > 'const U8' > , possible loss of data > ..\toke.c(3137) : warning C4244: 'function' : conversion from 'IV' to > 'const U8' > , possible loss of data > ..\toke.c(3660) : warning C4018: '>' : signed/unsigned mismatch > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\regcomp.obj -Fdmini\regcomp.pdb ..\regcomp.c > regcomp.c > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\regexec.obj -Fdmini\regexec.pdb ..\regexec.c > regexec.c > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\op.obj -Fdmini\op.pdb ..\op.c > op.c > op.c(8397) : warning C4244: 'function' : conversion from 'cv_flags_t' to > 'char', > possible loss of data > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -O1 -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\sv.obj -Fdmini\sv.pdb ..\sv.c > sv.c > Caught SIGINT. Trying to quit ... > dmake: > C:\perl521\src\win32> > ------------------------------------------- > > [Please do not change anything below this line] > ----------------------------------------------------------------- > --- > Flags: > category=core > severity=low > --- > Site configuration information for perl 5.23.3: > > Configured by Owner at Sat Sep 12 17:01:50 2015. > > Summary of my perl5 (revision 5 version 23 subversion 3) configuration: > undef undef > 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 -GL -DWIN32 > -D_CONSOLE -DNO_STRICT -D_CRT_SECURE_NO_DEPRECATE > -D_CRT_NONSTDC_NO_DEPRECATE -DPERL_TEXTMODE_SCRIPTS > -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS', > optimize='-O1 -MD -Zi -DNDEBUG -GL', > cppflags='-DWIN32' > ccversion='14.00.50727.42', 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:\perl\lib\CORE" -machine:x86 > "/manifestdependency:type='Win32' > name='Microsoft.Windows.Common-Controls' version='6.0.0.0' > processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"' > libpth=\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=perl523.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:\perl\lib\CORE" -machine:x86 > "/manifestdependency:type='Win32' > name='Microsoft.Windows.Common-Controls' version='6.0.0.0' > processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"' > > > --- > @INC for perl 5.23.3: > C:\perl521\src\lib > C:\perl521\src\cpan\AutoLoader\lib > C:\perl521\src\dist\Carp\lib > C:\perl521\src\dist\PathTools > C:\perl521\src\dist\PathTools\lib > C:\perl521\src\cpan\ExtUtils-Command\lib > C:\perl521\src\cpan\ExtUtils-Install\lib > C:\perl521\src\cpan\ExtUtils-MakeMaker\lib > C:\perl521\src\cpan\ExtUtils-Manifest\lib > C:\perl521\src\cpan\File-Path\lib > C:\perl521\src\ext\re > C:\perl521\src\dist\Term-ReadLine\lib > C:\perl521\src\dist\Exporter\lib > C:\perl521\src\ext\File-Find\lib > C:\perl521\src\cpan\Text-Tabs\lib > C:\perl521\src\dist\constant\lib > C:\perl521\src\cpan\Text-ParseWords\lib > C:\perl521\src\dist\ExtUtils-ParseXS\lib > C:\perl521\src\cpan\Getopt-Long\lib > C:\perl521\src\cpan\parent\lib > C:\perl521\src\cpan\ExtUtils-Constant\lib > . > > --- > Environment for perl 5.23.3: > HOME (unset) > LANG (unset) > LANGUAGE (unset) > LD_LIBRARY_PATH (unset) > LOGDIR (unset) > PATH=C:\perl521\bin;C:\Program Files\Microsoft Visual Studio .NET > 2003\Common7\IDE;C:\Program Files\Microsoft Visual Studio .NET > 2003\VC7\BIN;C:\Program Files\Microsoft Visual Studio .NET > 2003\Common7\Tools;C:\Program Files\Microsoft Visual Studio .NET > 2003\Common7\Tools\bin\prerelease;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem; > PERL_BADLANG (unset) > SHELL (unset) >
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 15.4k

Message body is not shown because it is too large.

RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 1.3k
On Thu Sep 24 04:11:58 2015, bulk88 wrote: Show quoted text
> I did research fixing it myself, but I stopped since you created an > macro API (macro FBC_BOUND) that uses implicitly assumes there are > certain C autos in scope, which is not allowed by perl's design style > policy (there is grandfathered use AFAIK). At that point I stopped > thinking of writing a patch since I cant change FBC_BOUND and started > bisecting.
Show quoted text
> As davem suggested in > http://www.nntp.perl.org/group/perl.perl5.porters/2015/09/msg230968.html > you need to turn stuff into functions. You are the creator of every > token in the string "FBC_BOUND(isWORDCHAR_LC, isWORDCHAR_LC_uvchr, > isWORDCHAR_LC_utf8);" >
... Show quoted text
> Nobody else is going to, or will be competent at refactoring that API > except you.
I (and I expect khw) don't have the compiler to test with, and it's not being used for smoking. Only you can test such changes. Show quoted text
> I did research fixing it myself, but I stopped since you created > an macro API (macro FBC_BOUND) that uses implicitly assumes there > are certain C autos in scope, which is not allowed by perl's > design style policy (there is grandfathered use AFAIK).
While I think it's bad in general, both the parser and the regexp engine make use of it, and for good reason I think. Could you please test the branch tonyc/vc2003-macro-issues to see if it crashes VC2003? Tony
Subject: 0001-WIP-test-fix-for-126045-needs-work-needs-testing.patch
From e708ca371e3916d4d43873b94590507b76536a3b Mon Sep 17 00:00:00 2001 From: Tony Cook <tony@develop-help.com> Date: Tue, 3 Nov 2015 15:27:31 +1100 Subject: WIP test fix for 126045, needs work, needs testing --- regexec.c | 48 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/regexec.c b/regexec.c index 85c31a6..c76190f 100644 --- a/regexec.c +++ b/regexec.c @@ -263,6 +263,44 @@ static void S_setup_eval_state(pTHX_ regmatch_info *const reginfo); static void S_cleanup_regmatch_info_aux(pTHX_ void *arg); static regmatch_state * S_push_slab(pTHX); +/* this needs to check the correct version number for MSVC 2003 */ +#ifdef _MSC_VER + +PERL_STATIC_INLINE bool +S_isWORDCHAR_uni(pTHX_ UV c) { + /* macro already does cBOOL() */ + return isWORDCHAR_uni(c); +} + +PERL_STATIC_INLINE bool +S_isWORDCHAR_LC_uvchr(pTHX_ UV c) { + return isWORDCHAR_LC_uvchr(c); +} + +PERL_STATIC_INLINE bool +S_isWORDCHAR_utf8(pTHX_ const U8 *p) { + return isWORDCHAR_utf8(p); +} + +PERL_STATIC_INLINE bool +S_isWORDCHAR_LC_utf8(pTHX_ const U8 *p) { + return isWORDCHAR_LC_utf8(p); +} + +#define isWORDCHAR_uni_x(c) (S_isWORDCHAR_uni(aTHX_ (c))) +#define isWORDCHAR_LC_uvchr_x(c) (S_isWORDCHAR_LC_uvchr(aTHX_ (c))) +#define isWORDCHAR_utf8_x(p) (S_isWORDCHAR_utf8(aTHX_ (p))) +#define isWORDCHAR_LC_utf8_x(p) (S_isWORDCHAR_LC_utf8(aTHX_ (p))) + +#else + +#define isWORDCHAR_uni_x isWORDCHAR_uni +#define isWORDCHAR_LC_uvchr_x isWORDCHAR_LC_uvchr +#define isWORDCHAR_utf8_x isWORDCHAR_utf8 +#define isWORDCHAR_LC_utf8_x isWORDCHAR_LC_utf8 + +#endif + #define REGCP_PAREN_ELEMS 3 #define REGCP_OTHER_ELEMS 3 #define REGCP_FRAME_ELEMS 1 @@ -2003,7 +2041,7 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, goto do_boundu; } - FBC_BOUND(isWORDCHAR_LC, isWORDCHAR_LC_uvchr, isWORDCHAR_LC_utf8); + FBC_BOUND(isWORDCHAR_LC, isWORDCHAR_LC_uvchr_x, isWORDCHAR_LC_utf8_x); break; case NBOUNDL: @@ -2016,14 +2054,14 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, goto do_nboundu; } - FBC_NBOUND(isWORDCHAR_LC, isWORDCHAR_LC_uvchr, isWORDCHAR_LC_utf8); + FBC_NBOUND(isWORDCHAR_LC, isWORDCHAR_LC_uvchr_x, isWORDCHAR_LC_utf8_x); break; case BOUND: /* regcomp.c makes sure that this only has the traditional \b meaning */ assert(FLAGS(c) == TRADITIONAL_BOUND); - FBC_BOUND(isWORDCHAR, isWORDCHAR_uni, isWORDCHAR_utf8); + FBC_BOUND(isWORDCHAR, isWORDCHAR_uni_x, isWORDCHAR_utf8_x); break; case BOUNDA: /* regcomp.c makes sure that this only has the traditional \b @@ -2037,7 +2075,7 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, meaning */ assert(FLAGS(c) == TRADITIONAL_BOUND); - FBC_NBOUND(isWORDCHAR, isWORDCHAR_uni, isWORDCHAR_utf8); + FBC_NBOUND(isWORDCHAR, isWORDCHAR_uni_x, isWORDCHAR_utf8_x); break; case NBOUNDA: /* regcomp.c makes sure that this only has the traditional \b @@ -2049,7 +2087,7 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, case NBOUNDU: if ((bound_type) FLAGS(c) == TRADITIONAL_BOUND) { - FBC_NBOUND(isWORDCHAR_L1, isWORDCHAR_uni, isWORDCHAR_utf8); + FBC_NBOUND(isWORDCHAR_L1, isWORDCHAR_uni_x, isWORDCHAR_utf8_x); break; } -- 2.1.4
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 4.1k
On Mon Nov 02 21:02:44 2015, tonyc wrote: Show quoted text
> While I think it's bad in general, both the parser and the regexp > engine make use of it, and for good reason I think. > > Could you please test the branch tonyc/vc2003-macro-issues to see if > it crashes VC2003? > > Tony
Your branch changes the fatal error from VC 2003 but doesnt fix it. before ------------------------------------------------------ C:\perl521\src\win32>dmake test if not exist ".\mini" mkdir ".\mini" if exist config.h del /f config.h copy config_H.vc config.h 1 file(s) copied. rem. > .\mini\.exists cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\toke.obj -Fdmini\toke.pdb ..\toke.c toke.c cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\regcomp.obj -Fdmini\regcomp.pdb ..\regcomp.c regcomp.c cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\regexec.obj -Fdmini\regexec.pdb ..\regexec.c regexec.c ..\regexec.c(2006) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 2708) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information dmake: Error code 130, while making 'mini\regexec.obj' C:\perl521\src\win32> ------------------------------------------------------ after your patch "* WIP test fix for 126045, needs work, needs testing" ------------------------------------------------------ C:\perl521\src\win32>dmake test if not exist ".\mini" mkdir ".\mini" if exist config.h del /f config.h copy config_H.vc config.h 1 file(s) copied. rem. > .\mini\.exists cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\toke.obj -Fdmini\toke.pdb ..\toke.c toke.c cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\regcomp.obj -Fdmini\regcomp.pdb ..\regcomp.c regcomp.c cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB - DPERL_IS_MINIPERL -Fomini\regexec.obj -Fdmini\regexec.pdb ..\regexec.c regexec.c ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5592) : error C2026: string too big, trailing characters truncated ..\regexec.c(5671) : error C2026: string too big, trailing characters truncated ..\regexec.c(5671) : error C2026: string too big, trailing characters truncated ..\regexec.c(5671) : error C2026: string too big, trailing characters truncated dmake: Error code 130, while making 'mini\regexec.obj' C:\perl521\src\win32> ------------------------------------------------------ The description for C2026 says the buffer is 2KB. https://msdn.microsoft.com/en-us/library/dddywwsc%28v=vs.71%29.aspx -- bulk88 ~ bulk88 at hotmail.com
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 4.4k
On Sat Nov 28 00:40:08 2015, bulk88 wrote: Show quoted text
> On Mon Nov 02 21:02:44 2015, tonyc wrote:
> > While I think it's bad in general, both the parser and the regexp > > engine make use of it, and for good reason I think. > > > > Could you please test the branch tonyc/vc2003-macro-issues to see if > > it crashes VC2003? > > > > Tony
> > Your branch changes the fatal error from VC 2003 but doesnt fix it. > > before > ------------------------------------------------------ > C:\perl521\src\win32>dmake test > if not exist ".\mini" mkdir ".\mini" > if exist config.h del /f config.h > copy config_H.vc config.h > 1 file(s) copied. > rem. > .\mini\.exists > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\toke.obj -Fdmini\toke.pdb ..\toke.c > toke.c > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\regcomp.obj -Fdmini\regcomp.pdb ..\regcomp.c > regcomp.c > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\regexec.obj -Fdmini\regexec.pdb ..\regexec.c > regexec.c > ..\regexec.c(2006) : fatal error C1001: INTERNAL COMPILER ERROR > (compiler file 'msc1.cpp', line 2708) > Please choose the Technical Support command on the Visual C++ > Help menu, or open the Technical Support help file for more > information > > dmake: Error code 130, while making 'mini\regexec.obj' > > C:\perl521\src\win32> > ------------------------------------------------------ > > after your patch "* WIP test fix for 126045, needs work, needs > testing" > ------------------------------------------------------ > C:\perl521\src\win32>dmake test > if not exist ".\mini" mkdir ".\mini" > if exist config.h del /f config.h > copy config_H.vc config.h > 1 file(s) copied. > rem. > .\mini\.exists > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\toke.obj -Fdmini\toke.pdb ..\toke.c > toke.c > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\regcomp.obj -Fdmini\regcomp.pdb ..\regcomp.c > regcomp.c > cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE > -DNO_STRICT -DPERL > DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING > -DPERL_EXTERNAL_GLOB - > DPERL_IS_MINIPERL -Fomini\regexec.obj -Fdmini\regexec.pdb ..\regexec.c > regexec.c > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5592) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5671) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5671) : error C2026: string too big, trailing characters > truncated > ..\regexec.c(5671) : error C2026: string too big, trailing characters > truncated > dmake: Error code 130, while making 'mini\regexec.obj' > > C:\perl521\src\win32> > ------------------------------------------------------ > > The description for C2026 says the buffer is 2KB. > https://msdn.microsoft.com/en-us/library/dddywwsc%28v=vs.71%29.aspx
Bump -- bulk88 ~ bulk88 at hotmail.com
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 704b
On Sat Nov 28 00:40:08 2015, bulk88 wrote: Show quoted text
> On Mon Nov 02 21:02:44 2015, tonyc wrote:
> > While I think it's bad in general, both the parser and the regexp > > engine make use of it, and for good reason I think. > > > > Could you please test the branch tonyc/vc2003-macro-issues to see if > > it crashes VC2003? > > > > Tony
> > Your branch changes the fatal error from VC 2003 but doesnt fix it.
How about the attached? This follows the approach khw suggested in IRC, assuming I understand what he meant. The value I'm checking _MSC_VER against came from http://varlab.blogspot.com.au/2012/11/if-you-develop-applications-for-windows.html so it might need adjustment if that page is incorrect. Tony
Subject: 0001-perl-126045-part-revert-e9b19ab7-for-vc2003-only.patch
From 31c4a31a656328fc3509a6a2abfddf13b345e305 Mon Sep 17 00:00:00 2001 From: Tony Cook <tony@develop-help.com> Date: Mon, 4 Jan 2016 15:50:59 +1100 Subject: [PATCH] [perl #126045] part revert e9b19ab7 for vc2003 only This avoids an internal compiler error on VC 2003. --- utf8.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/utf8.h b/utf8.h index 1ed8fd8..5af7dc3 100644 --- a/utf8.h +++ b/utf8.h @@ -136,8 +136,13 @@ END_EXTERN_C /* Native character to/from iso-8859-1. Are the identity functions on ASCII * platforms */ +#if _MSC_VER == 1310 +#define NATIVE_TO_LATIN1(ch) (ch) +#define LATIN1_TO_NATIVE(ch) (ch) +#else #define NATIVE_TO_LATIN1(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch))) #define LATIN1_TO_NATIVE(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch))) +#endif /* I8 is an intermediate version of UTF-8 used only in UTF-EBCDIC. We thus * consider it to be identical to UTF-8 on ASCII platforms. Strictly speaking @@ -145,8 +150,13 @@ END_EXTERN_C * because they are 8-bit encodings that serve the same purpose in Perl, and * rarely do we need to distinguish them. The term "NATIVE_UTF8" applies to * whichever one is applicable on the current platform */ +#if _MSC_VER == 1310 +#define NATIVE_UTF8_TO_I8(ch) (ch) +#define I8_TO_NATIVE_UTF8(ch) (ch) +#else #define NATIVE_UTF8_TO_I8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch))) #define I8_TO_NATIVE_UTF8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch))) +#endif /* Transforms in wide UV chars */ #define UNI_TO_NATIVE(ch) ((UV) (ch)) -- 1.9.5.msysgit.0
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 908b
On Sun Jan 03 20:54:25 2016, tonyc wrote: Show quoted text
> On Sat Nov 28 00:40:08 2015, bulk88 wrote:
> > On Mon Nov 02 21:02:44 2015, tonyc wrote:
> > > While I think it's bad in general, both the parser and the regexp > > > engine make use of it, and for good reason I think. > > > > > > Could you please test the branch tonyc/vc2003-macro-issues to see > > > if > > > it crashes VC2003? > > > > > > Tony
> > > > Your branch changes the fatal error from VC 2003 but doesnt fix it.
> > How about the attached? > > This follows the approach khw suggested in IRC, assuming I understand > what he meant. > > The value I'm checking _MSC_VER against came from > http://varlab.blogspot.com.au/2012/11/if-you-develop-applications-for- > windows.html so it might need adjustment if that page is incorrect. > > Tony
the latest patch "part revert e9b19ab7 for vc2003 only" fixes the problem. -- bulk88 ~ bulk88 at hotmail.com
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 1.2k
On Fri Jan 15 09:28:58 2016, bulk88 wrote: Show quoted text
> On Sun Jan 03 20:54:25 2016, tonyc wrote:
> > On Sat Nov 28 00:40:08 2015, bulk88 wrote:
> > > On Mon Nov 02 21:02:44 2015, tonyc wrote:
> > > > While I think it's bad in general, both the parser and the regexp > > > > engine make use of it, and for good reason I think. > > > > > > > > Could you please test the branch tonyc/vc2003-macro-issues to see > > > > if > > > > it crashes VC2003? > > > > > > > > Tony
> > > > > > Your branch changes the fatal error from VC 2003 but doesnt fix it.
> > > > How about the attached? > > > > This follows the approach khw suggested in IRC, assuming I understand > > what he meant. > > > > The value I'm checking _MSC_VER against came from > > http://varlab.blogspot.com.au/2012/11/if-you-develop-applications-for- > > windows.html so it might need adjustment if that page is incorrect. > > > > Tony
> > the latest patch "part revert e9b19ab7 for vc2003 only" fixes the problem.
Egh, I tested VC6, the CC crashed like VC 2003 does, you need to add VC 6 and 2002 (dont have it) to the no assert logic . I tested VC 2005 and it built fine (no crash, I guess VC 2005 is the first VC to increase its preprocessor buffer size). -- bulk88 ~ bulk88 at hotmail.com
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 457b
On Fri Jan 15 09:38:03 2016, bulk88 wrote: Show quoted text
> On Fri Jan 15 09:28:58 2016, bulk88 wrote:
> > the latest patch "part revert e9b19ab7 for vc2003 only" fixes the > > problem.
> > Egh, I tested VC6, the CC crashed like VC 2003 does, you need to add > VC 6 and 2002 (dont have it) to the no assert logic . I tested VC 2005 > and it built fine (no crash, I guess VC 2005 is the first VC to > increase its preprocessor buffer size).
Here's an updated patch. Tony
Subject: 0001-perl-126045-part-revert-e9b19ab7-for-vc2003-and-earl.patch
From 228f19ed730b470b3ca2afbbcbed00da8f646466 Mon Sep 17 00:00:00 2001 From: Tony Cook <tony@develop-help.com> Date: Thu, 28 Jan 2016 15:08:01 +1100 Subject: [perl #126045] part revert e9b19ab7 for vc2003 and earlier This avoids an internal compiler error on VC 2003 and earlier --- utf8.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/utf8.h b/utf8.h index 1ed8fd8..e523cc3 100644 --- a/utf8.h +++ b/utf8.h @@ -134,10 +134,20 @@ EXTCONST unsigned char PL_utf8skip[]; END_EXTERN_C +#if _MSC_VER < 1400 +/* older MSVC versions have a smallish macro buffer */ +#define PERL_SMALL_MACRO_BUFFER +#endif + /* Native character to/from iso-8859-1. Are the identity functions on ASCII * platforms */ +#ifdef PERL_SMALL_MACRO_BUFFER +#define NATIVE_TO_LATIN1(ch) (ch) +#define LATIN1_TO_NATIVE(ch) (ch) +#else #define NATIVE_TO_LATIN1(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch))) #define LATIN1_TO_NATIVE(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch))) +#endif /* I8 is an intermediate version of UTF-8 used only in UTF-EBCDIC. We thus * consider it to be identical to UTF-8 on ASCII platforms. Strictly speaking @@ -145,8 +155,13 @@ END_EXTERN_C * because they are 8-bit encodings that serve the same purpose in Perl, and * rarely do we need to distinguish them. The term "NATIVE_UTF8" applies to * whichever one is applicable on the current platform */ +#ifdef PERL_SMALL_MACRO_BUFFER +#define NATIVE_UTF8_TO_I8(ch) (ch) +#define I8_TO_NATIVE_UTF8(ch) (ch) +#else #define NATIVE_UTF8_TO_I8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch))) #define I8_TO_NATIVE_UTF8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch))) +#endif /* Transforms in wide UV chars */ #define UNI_TO_NATIVE(ch) ((UV) (ch)) -- 1.9.5.msysgit.0
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 636b
On Wed Jan 27 20:09:11 2016, tonyc wrote: Show quoted text
> On Fri Jan 15 09:38:03 2016, bulk88 wrote:
> > On Fri Jan 15 09:28:58 2016, bulk88 wrote:
> > > the latest patch "part revert e9b19ab7 for vc2003 only" fixes the > > > problem.
> > > > Egh, I tested VC6, the CC crashed like VC 2003 does, you need to add > > VC 6 and 2002 (dont have it) to the no assert logic . I tested VC 2005 > > and it built fine (no crash, I guess VC 2005 is the first VC to > > increase its preprocessor buffer size).
> > Here's an updated patch. > > Tony
new patch works on VC 6 and VC 2003 with DEBUGGING. no CC SEGV or errors. -- bulk88 ~ bulk88 at hotmail.com
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 741b
On Thu Jan 28 03:01:28 2016, bulk88 wrote: Show quoted text
> On Wed Jan 27 20:09:11 2016, tonyc wrote:
> > On Fri Jan 15 09:38:03 2016, bulk88 wrote:
> > > On Fri Jan 15 09:28:58 2016, bulk88 wrote:
> > > > the latest patch "part revert e9b19ab7 for vc2003 only" fixes the > > > > problem.
> > > > > > Egh, I tested VC6, the CC crashed like VC 2003 does, you need to add > > > VC 6 and 2002 (dont have it) to the no assert logic . I tested VC 2005 > > > and it built fine (no crash, I guess VC 2005 is the first VC to > > > increase its preprocessor buffer size).
> > > > Here's an updated patch.
> > new patch works on VC 6 and VC 2003 with DEBUGGING. no CC SEGV or errors.
Thanks for testing, applied as 6f6d1bab3343e4cff9dab0934b654ade4a85bd59. Tony
Download (untitled) / with headers
text/plain 252b
Thank you for submitting this report. You have helped make Perl better. With the release of Perl 5.24.0 on May 9, 2016, this and 149 other issues have been resolved. Perl 5.24.0 may be downloaded via https://metacpan.org/release/RJBS/perl-5.24.0


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org