Klaas-Jan Stol a écrit :
somehow a fresh checkout has resolved the problem
(but my other sandbox was still up to date according to svn status...)
anyhow, this ticket can be rejected.
I'm not sure.
Since r26988, I've same failure on Windows, with mingw gcc-3.4.2, and
perl 5.8.8 (build 822 from ActiveState).
The following patch solves (or hides) the problem
Index: src/string.c
===================================================================
--- src/string.c (revision 28084)
+++ src/string.c (working copy)
@@ -284,7 +284,7 @@
for (i = 0; i < n_parrot_cstrings; ++i) {
interp->const_cstring_table[i] = string_make_direct(interp,
parrot_cstrings[i].string,
- parrot_cstrings[i].len,
+ strlen(parrot_cstrings[i].string),
PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET,
PObj_external_FLAG|PObj_constant_FLAG);
}
Now, I start to investigate where are the difference with the following
code :
for (i = 0; i < n_parrot_cstrings; ++i) {
if (strlen(parrot_cstrings[i].string) != parrot_cstrings[i].len) {
printf("string_init %d %d 0x%08x %s\n",
strlen(parrot_cstrings[i].string),
parrot_cstrings[i].len,
parrot_cstrings[i].hash_val,
parrot_cstrings[i].string);
}
interp->const_cstring_table[i] = string_make_direct(interp,
parrot_cstrings[i].string,
strlen(parrot_cstrings[i].string),
PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET,
PObj_external_FLAG|PObj_constant_FLAG);
}
I obtain the following ouput (note the newline):
string_init 1 2 0x00000c38 \
string_init 3 4 0x00334876 ?%d
string_init 1 2 0x00000c4a
string_init 1 4 0x003477f8 "
string_init 2 3 0x000193b0 \x
string_init 2 3 0x000193ad \u
string_init 0 2 0x00000c0c
I suspect a problem in c2str.pl string only on Windows, something like a
missing or bad binmode.
François.
kjs
On Thu, Jun 5, 2008 at 10:38 AM, via RT Klaas-Jan Stol
<[EMAIL PROTECTED]> wrote:
# New Ticket Created by Klaas-Jan Stol
# Please include the string: [perl #55332]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=55332 >
Parrot is built fine, but there seems to be something wrong in PGE.
I'm using visual studio express edition and strawberry perl.
this is the output:
[...]
mingw32-make: Leaving directory `C:/Documents and
Settings/klaas-jan.stol/My Documents/parrot3/src/dynoplibs'
mingw32-make -C compilers\pct
mingw32-make: Entering directory `C:/Documents and
Settings/klaas-jan.stol/My Documents/parrot3/compilers/pct'
..\..\parrot.exe -o ..\..\runtime\parrot\library\PCT.pbc --output-pbc PCT.pir
..\..\parrot.exe -o ..\..\runtime\parrot\library\PCT\PAST.pbc
--output-pbc src\PAST.pir
..\..\parrot.exe -o ..\..\runtime\parrot\library\PCT\Grammar.pbc
--output-pbc src\PCT\Grammar.pir
..\..\parrot.exe -o ..\..\runtime\parrot\library\PCT\HLLCompiler.pbc
--output-pbc src\PCT\HLLCompiler.pir
mingw32-make: Leaving directory `C:/Documents and
Settings/klaas-jan.stol/My Documents/parrot3/compilers/pct'
mingw32-make -C compilers\pge
mingw32-make: Entering directory `C:/Documents and
Settings/klaas-jan.stol/My Documents/parrot3/compilers/pge'
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e rm_f PGE.pbc
..\..\runtime\parrot\library\PGE.pbc
C:\strawberry\perl\bin\perl.exe -e "" >PGE\builtins_gen.pir
..\..\parrot.exe -o PGE.pbc --output-pbc PGE.pir
..\..\parrot.exe ..\..\runtime\parrot\library\PGE\Perl6Grammar.pir
--output=PGE\builtins_gen.pir PGE\builtins.pg
Null PMC access in invoke()
current instr.: 'parrot;PGE::Perl6Grammar::Compiler;compile' pc 200
(..\..\runtime\parrot\library\PGE\Perl6Grammar.pir:157)
called from Sub 'parrot;PCT::HLLCompiler;eval' pc 753
(src\PCT\HLLCompiler.pir:450)
called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1065
(src\PCT\HLLCompiler.pir:587)
called from Sub 'parrot;PCT::HLLCompiler;command_line' pc 1257
(src\PCT\HLLCompiler.pir:679)
called from Sub 'parrot;PGE::Perl6Grammar::Compiler;main' pc 16
(..\..\runtime\parrot\library\PGE\Perl6Grammar.pir:66)
mingw32-make: *** [PGE.pbc] Error 1
mingw32-make: Leaving directory `C:/Documents and
Settings/klaas-jan.stol/My Documents/parrot3/compilers/pge'
NMAKE : fatal error U1077: 'mingw32-make' : return code '0x2'
Stop.
======= myconfig ===================
Summary of my parrot 0.6.2 (r28084) configuration:
configdate='Thu Jun 5 09:24:55 2008 GMT'
Platform:
osname=MSWin32, archname=MSWin32-x86-multi-thread
jitcapable=1, jitarchname=i386-MSWin32,
jitosname=MSWIN32, jitcpuarch=i386
execcapable=1
perl=C:\strawberry\perl\bin\perl.exe
Compiler:
cc='gcc', ccflags='-DWIN32 -DHASATTRIBUTE_CONST
-DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC
-DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE
-DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT
-falign-functions=16 -maccumulate-outgoing-args -W -Wall
-Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts
-Wcomment -Wdisabled-optimization -Wendif-labels -Wextra -Wformat
-Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k
-Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch
-Wmissing-braces -Wno-missing-format-attribute -Wpacked -Wparentheses
-Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow
-Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch
-Wswitch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused
-Wwrite-strings -Wbad-function-cast -Wdeclaration-after-statement
-Wimplicit-function-declaration -Wimplicit-int -Wmain
-Wmissing-declarations -Wmissing-prototypes -Wnested-externs
-Wnonnull',
Linker and Libraries:
ld='g++', ldflags='',
cc_ldflags='',
libs='-lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool
-lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid
-lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lgmp'
Dynamic Linking:
share_ext='.dll', ld_share_flags='-shared ',
load_ext='.dll', ld_load_flags='-shared '
Types:
iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
ptrsize=4, ptr_alignment=1 byteorder=1234,
nv=double, numvalsize=8, doublesize=8