I could not have wished for a more complete answer to my request. Thank you!

I changed all the file IO calls to PerlIO_*, and it now compiles fine on my 
system (which was true before, but still). I can be reasonably sure it's not 
broken on platforms where it wasn't already broken, and I can ask my users to 
test it out now on Windows.

Should be on CPAN any minute now as Text::Scan 0.26...

Again, thanks so much!



-----Original Message-----
From: Sisyphus [mailto:[EMAIL PROTECTED]
Sent: Thursday, January 19, 2006 3:26 PM
To: Ira Woodhead; [email protected]
Cc: Ira Woodhead
Subject: Re: activestate not compiling Text::Scan?



----- Original Message ----- 
From: "Ira Woodhead" <[EMAIL PROTECTED]>
To: <[email protected]>
Cc: "Ira Woodhead" <[EMAIL PROTECTED]>
Sent: Friday, January 20, 2006 6:49 AM
Subject: activestate not compiling Text::Scan?


> Greetings Inliners!
>
> I've gotten some complaints from users of my module Text::Scan, that it is
no longer installable as a precompiled binary via ActiveState's "ppm"
command. Any ideas why not? Is there some place I can go to look at error
messages or something? (I've already fruitlessly searched for such a way)

Go to http://ppm.activestate.com/BuildStatus/ and follow the appropriate
links. In this case, click on the link to '5.8-T.html', scroll down to
'Text-Scan' and click on the 'FAIL' link in the Windows column. There you'll
see essentially the same error as was reported by the user. Note that it's
also listed as failing for solaris and hpux-pa-risc. The solaris failure is
because the 'dumptrie' tests fail -  the hpux failure appears to be bogus
(as sometimes happens on these pages for some reason).

I think, wrt perl-5.8.x on Win32, the problem is your usage of  getc() -
which XSUB.h re-defines as PerlSIO_getc(). You'll find that 'perldoc
perlclib' advises that we should use PerlIO_getc() instead of getc(). (At
least that's the advice we get from perlclib on Win32.) It also advises
replacing fopen(), fread(), etc. with the appropriate PerlIO_* function.

As a quick hack, I removed the re-definition of getc() from XSUB.h, and your
module then compiled and tested fine. But I don't think that's the correct
solution - and one should make sure that the change to XSUB.h is *undone*
immediately after running 'make'. I think the correct solution is to rewrite
your C code following the advice of 'perlclib'.

Mind you .... I have no idea why XSUB.h should re-define getc to some symbol
that then can't be resolved :-)

Cheers,
Rob
 
 
 
-----------------------------------------------------------------------------------
ATTENTION: DO NOT read, copy or disseminate this communication unless you are 
the intended addressee. This message and any file(s) or attachment(s) 
transmitted with it are confidential, intended only for the named recipient, 
and may contain information that is a trade secret, proprietary, protected by 
the attorney work product doctrine, subject to the attorney-client privilege, 
or is otherwise protected against unauthorized use or disclosure. This message 
and any file(s) or attachment(s) transmitted with it are transmitted based on a 
reasonable expectation of privacy consistent with ABA Formal Opinion No. 
99-413.  If you have received this communication in error, please e-mail the 
sender and notify the sender immediately that you have received the 
communication in error. Thank you.

Reply via email to