Skip Menu |

This queue is for tickets about the PPI-XS CPAN distribution.

Report information
The Basics
Id: 13616
Status: stalled
Priority: 0/
Queue: PPI-XS

People
Owner: Nobody in particular
Requestors: johanl [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: (no value)
Fixed in: (no value)



Subject: cvs: missing ppport.h + too strict test(?)
This is for the cvs version of PPI::XS. When running nmake, I get: XS.xs(4) : fatal error C1083: Cannot open include file: 'ppport.h': No such file or directory After a quick Google, I found the Devel::PPPort module. Maybe adding something like this to the Makefile.PL works? build_requires( 'Devel::PPPort' => 0 ); ... use Devel::PPPort; Devel::PPPort::WriteFile(); Now it compiles fine (with some warnings: "XS.c(29) : warning C4101: 'RETVAL' : unreferenced local variable".) (However, when doing that, the tests fail with this: C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'in c', 'blib\lib', 'blib\arch')" t/01_compile.t t/02_autoload.t t/03_integration.t t/04_significant.t t/05_destroy.t t/01_compile........ok t/02_autoload.......ok t/03_integration....ok t/04_significant....ok 6/12 t/04_significant....NOK 12# Failed test (t/04_significant.t at line 50) # got: undef # expected: '' # Looks like you failed 1 test of 12. t/04_significant....dubious Test returned status 1 (wstat 256, 0x100) DIED. FAILED test 12 Failed 1/12 tests, 91.67% okay t/05_destroy........ok Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/04_significant.t 1 256 12 1 8.33% 12 Failed 1/5 test scripts, 80.00% okay. 1/34 subtests failed, 97.06% okay. NMAKE : fatal error U1077: 'C:\Perl\bin\perl.exe' : return code '0xff' Stop. Changing the test on line 50 to ok( ! PPI::Token::End->significant, 'PPI::Token::End->significant returns false' ); fixes that, and it seems semantically more correct judging from the test comment.
[guest - Sat Jul 9 13:55:24 2005]: Show quoted text
> Changing the test on line 50 to > > ok( ! PPI::Token::End->significant, 'PPI::Token::End->significant > returns false' ); > > fixes that, and it seems semantically more correct judging from the > test comment.
Hmmm, nope. Now my other tests fail when PPI::XS is installed like this. The warnings indicate that PPI indeed wants an empty string. Use of uninitialized value in string eq at C:/Perl/site/lib/PPI/Lexer.pm line 217. Use of uninitialized value in hash element at C:/Perl/site/lib/PPI/Lexer.pm line 338. Use of uninitialized value in string eq at C:/Perl/site/lib/PPI/Lexer.pm line 354. Use of uninitialized value in string eq at C:/Perl/site/lib/PPI/Lexer.pm line 455. Use of uninitialized value in string eq at C:/Perl/site/lib/PPI/Lexer.pm line 738. Use of uninitialized value in string eq at C:/Perl/site/lib/PPI/Lexer.pm line 739. Use of uninitialized value in string eq at C:/Perl/site/lib/PPI/Lexer.pm line 740. Could not parse file (data/project-lib/Game/Object/Worm/ShaiHulud.pm): Unknown error returned by PPI::Lexer I can provide an example source file if you like, but this is probably a very generic problem. I guess ideally the entire PPI test suite should be run in both pure Perl mode and in XS mode. /J
Show quoted text
> I guess ideally the entire PPI test suite should be run in both pure > Perl mode and in XS mode.
That would be the ideal. But short of copying the entire massive number of tests from PPI to PPI::XS, which I'm loath to do anyway as it breaks the backcompatibility mechanism, I don't know how we could do this. There's a bunch of code in PPI::XS in cvs that is pretty iffy. coral started coding some functions without doing the full set of testing. I actually need to do a clean out of those extras, but I don't know XS. I'm mostly now waiting for someone who a) needs PPI b) hates it being slow c) knows XS, to get an itch and take look after at least the care and feeding of PPI::XS. if you think you could handle it, I'd be happy to hand out commit bits :)