Sorry for delayed response. I've been a little busy.

On 2/9/2003 11:01 PM, Ken Williams wrote:
On Sunday, February 9, 2003, at 11:47  AM, Randy W. Sims wrote:

* Added conditional definition of the PERL_UNUSED_VAR macro to the output file in case it's not already defined for backwards compatibility with pre-5.8 versions of perl. (Not sure if this is the best solution.)

I'm not sure either, but it sounds reasonable to me. It just turns it into a no-op? I'm not quite sure why I didn't see an error when testing against 5.6, though, if PERL_UNUSED_VAR() is new in 5.8.
I grep-ed the sources for 5.6 and did not find that macro anywhere. It only shows up in 5.8 'perl.h', which is where I "borrowed" the definition from.

* In testing ParseXS, I encountered one module that did not expect xsubpp to die when it parsed a file NOT containing a 'MODULE ... PACKAGE ... PREFIX' line. I changed ParseXS so that it instead issued a 'warn' ing. I'm pretty much convinced my change is wrong, but there may be other modules that depend on the old behaviour. The change only involved s/die/warn/ in one place, so it's easily undone.

Hmm, I don't know the right thing to do here. What module was it that didn't work? I'm inclined to keep it the same and get that module fixed.
I agree. Running xsubpp on such a file does nothing but make a copy. The module in question is in libwin32. ( Which, along with Tk, seemed like a good testbed because they contain alot of XS modules. )

The rest of the changes involve the test script, and it's really messy. I don't think that I broke anything for any other platform, but it really needs a cleaner solution. Maybe someone here can suggest a way to use MakeMaker to construct the correct commands for compiling and linking the test XS file???

I'm not sure MakeMaker opens up this part of its API for public use, but maybe someone else knows otherwise. I've attached the patch as I'll apply it. It passes on Mac OS X 10.2.3. If it looks good to you, I'll upload 1.99_01 to CPAN and try to get bunches of people to test it before declaring it 2.00.
I'll try to test this some more this week. I think for the MSVC compiler, which is what ActiveState uses for their perl dist., this is fine. However, the test script may need some more tweaks for the MinGW gcc and Borland compilers under MSWin32.

The test script is probably going to be the biggest problem with this module because of the number of different OSs and compilers used to build perl, which is why I was really hoping someone might have a better suggestion than my hack. Maybe you could invoke xsubpp on the test module to verify that it produces a non-empty file, then invoke MM to build the test module????

( It would be nice if there were a module specifically for invoking the compiler & linker. There are quite a few modules I can think of that would benifit from it. )

(I'd also like to fix the "Use of uninitialized value in join or string at /Users/ken/src/modules/ExtUtils-ParseXS/blib/lib/ExtUtils/ParseXS.pm line 798, <File0000> line 14" error before 2.00, but I don't know what's causing it.)
I don't recall seeing that message. Do you see it when building a particular module?

Randy.

P.S. IRC, I had problems installing this module when you first announced it on P5P due to the version having an underscore in it ( I think it was 1.98_01 at the time ). I don't remember the details now; I didn't spend much time with it then due to the holidays and a general lack of time.


Reply via email to