----- Original Message -----
From: "Sisyphus"
Been away all weekend - I'll have a look at it tonight. (More later, once
I've had a chance to peruse it.)
First thing I noticed is that we now have additional dependencies of (the
non-core modules) IO::String, IO::All, YAML::XS, Pegex and parent.
No big deal, I guess, but I get repeated warnings for all of the IO::All
test scripts:
Useless use of \E at lib/IO/All.pm line 76.
Useless use of \E at lib/IO/All.pm line 84.
Useless use of \E at lib/IO/All.pm line 85.
When I get to running xt/pegex.t I get:
C:\sisyphusion\Inline-pegex\C>perl -Mblib xt/pegex.t
1..2
Useless use of \E at C:/MinGW/perl516/site/lib/IO/All.pm line 76.
Useless use of \E at C:/MinGW/perl516/site/lib/IO/All.pm line 84.
Useless use of \E at C:/MinGW/perl516/site/lib/IO/All.pm line 85.
ok 1
ok 2 - parse worked
rm: cannot remove `_Inline/lib/auto/pegex_t_c4f8/pegex_t_c4f8.dll':
Permission denied
# Looks like your test exited with 256 just after 2.
Why can't it remove that file ? (It can do it in the BEGIN block, but not
the END block.)
Recently (Inline-0.50_01) I hacked ParseRegExp to accommodate the passing of
'void' as a function's single argument - so we can now do:
SV * foo(void) {
return newSViv(-42);
}
That works only with ParseRegExp, btw. It still fails with ParseRecDescent
and, AIUI, will continue to do so until someone writes the appropriate patch
for Parse::RecDescent.
There's a long-standing bug report for this at
https://rt.cpan.org/Public/Bug/Display.html?id=5465
I was curious to see how Pegex would handle that, so I tried this script
(xs/foo.t):
#############################
use strict;
use Test::More tests => 1;
BEGIN { system "rm _Inline* -fr" }
END { system "rm _Inline* -fr" }
use Inline C => <<'END', USING => 'ParsePegex';
SV* foo(void) {
return newSViv(-42);
}
END
is foo(), -42;
#############################
I got:
#############################
C:\sisyphusion\Inline-pegex\C>perl -Mblib xt/foo.t
1..1
C:\MinGW\perl516\bin\perl.exe C:\MinGW\perl516\lib\ExtUtils\xsubpp -typemap
"C:
\MinGW\perl516\lib\ExtUtils\typemap" foo_t_0c81.xs > foo_t_0c81.xsc &&
C:\MinGW
\perl516\bin\perl.exe -MExtUtils::Command -e mv -- foo_t_0c81.xsc
foo_t_0c81.c
Could not find a typemap for C type 'voi'.
The following C types are mapped by the current typemap:
'AV *', 'Boolean', 'CV *', 'FILE *', 'FileHandle', 'HV *', 'I16', 'I32',
'I8', 'IV', 'InOutStream', 'InputStream', 'NV', 'OutputStream', 'PerlIO *',
'Result', 'STRLEN', 'SV *', 'SVREF', 'SysRet', 'SysRetLong', 'Time_t *',
'U16', 'U32', 'U8', 'UV', 'bool', 'bool_t', 'caddr_t', 'char', 'char *',
'char **', 'const char *', 'double', 'float', 'int', 'long', 'short',
'size_t', 'ssize_t', 'time_t', 'unsigned', 'unsigned char', 'unsigned char
*', 'unsigned int', 'unsigned long', 'unsigned long *', 'unsigned short',
'void *', 'wchar_t', 'wchar_t *'
in foo_t_0c81.xs, line 16
dmake: Error code 129, while making 'foo_t_0c81.c'
A problem was encountered while attempting to compile and install your
Inline
C code. The command that failed was:
dmake > out.make 2>&1
The build directory was:
C:\sisyphusion\Inline-pegex\C\_Inline\build\foo_t_0c81
To debug the problem, cd to the build directory, and inspect the output
files.
at xt/foo.t line 7.
BEGIN failed--compilation aborted at xt/foo.t line 11.
#############################
It'd be nice if that could be fixed before we go to production - that would
leave ParseRecDescent as the odd man out.
(I'm sure there are other things to be fixed too ... I'm well aware that
this is still early days for 'ParsePegex'.)
Cheers,
Rob