So here I am, hacking BASIC to use keyed PMC's for variables to make it
blazingly fast when I find out that to do this I need to use the new
assembler. So I pop into lib\parrot and proceed with the build and I get
this mess:
C:\projects\parrot\parrot\lib\Parrot>perl makefile.pl
Writing Makefile for Parrot::PakFile2
C:\projects\parrot\parrot\lib\Parrot>nmake
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
cp Op.pm blib\lib\Parrot\Op.pm
cp OpTrans.pm blib\lib\Parrot\OpTrans.pm
cp OpsFile.pm blib\lib\Parrot\OpsFile.pm
cp Assembler.pm blib\lib\Parrot\Assembler.pm
cp PMC.pm blib\lib\Parrot\PMC.pm
cp Config.pm blib\lib\Parrot\Config.pm
cp PackFile.pm blib\lib\Parrot\PackFile.pm
cp String.pm blib\lib\Parrot\String.pm
cp Types.pm blib\lib\Parrot\Types.pm
cp Test.pm blib\lib\Parrot\Test.pm
cp BuildUtil.pm blib\lib\Parrot\BuildUtil.pm
cp PakFile2.pm blib\lib\Parrot\PakFile2.pm
AutoSplitting blib\lib\Parrot\PakFile2.pm (blib\lib\auto\Parrot\PakFile2)
cp Vtable.pm blib\lib\Parrot\Vtable.pm
cp Optimizer.pm blib\lib\Parrot\Optimizer.pm
C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib
C:\Perl\lib\ExtUtils/xsubpp -typemap C:\Pe
rl\lib\ExtUtils\typemap PakFile2.xs > PakFile2.xsc && C:\Perl\bin\perl.exe
-IC:\Perl\lib -IC:\Perl\l
ib -MExtUtils::Command -e mv PakFile2.xsc PakFile2.c
Please specify prototyping behavior for PakFile2.xs (see perlxs manual)
cl -c -I../../include -nologo -O1 -MD -DNDEBUG -DWIN32 -D_CONSOLE
-DNO_STRICT -DHAVE_DES_FCR
YPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DPERL_MSVCRT_READFIX -O1
-MD -DNDEBUG -DVERSION=
\"0.01\" -DXS_VERSION=\"0.01\" -IC:\Perl\lib\CORE PakFile2.c
PakFile2.c
PakFile2.xs(21) : warning C4133: 'function' : incompatible types - from
'char [52]' to 'struct inter
preter *'
PakFile2.xs(21) : error C2198: 'Perl_croak' : too few actual parameters
PakFile2.xs(32) : warning C4133: 'function' : incompatible types - from
'char [40]' to 'struct inter
preter *'
PakFile2.xs(32) : error C2198: 'Perl_croak' : too few actual parameters
PakFile2.xs(48) : warning C4133: 'function' : incompatible types - from
'char [52]' to 'struct inter
preter *'
PakFile2.xs(48) : warning C4047: 'function' : 'const char *' differs in
levels of indirection from '
long '
PakFile2.xs(48) : warning C4024: 'Perl_croak' : different types for formal
and actual parameter 2
PakFile2.xs(69) : warning C4133: 'function' : incompatible types - from
'char [36]' to 'struct inter
preter *'
NMAKE : fatal error U1077: 'cl' : return code '0x2'
Stop.
So the new assembler's unhappy. Suggestions?