Question on platform dependency of ExtUtils::Command::MM (file globbing)

Question on platform dependency of ExtUtils::Command::MM (file globbing)

am 17.12.2006 13:49:46 von Bart Lateur

Background: I'm testing installation of POE 0.95 on Windows, to see what
works and what doesn't, on ActivePerl 5.8.8 (817) (with the MinGW 3.2.3,
though I don't think it's used for this module) and on PXPerl 5.8.7. The
latter is an abandoned distribution, the website (http://pxperl.com) has
even disappeared, but I still like it, especially for testing purposes.
I'm going to install VanillaPerl and/or Strawberry Perl RSN. Anyway.

When running "nmake test" on ActivePerl, it hangs in some tests for an
obscure reason, but at least this command works (starts the testing):

c:\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e"
test_harness(0, 'blib\lib', 'blib\arch')" t/*.t t/*/*.t t/*/*/*.t

However, on PXPerl, the same command line (apart from the path to perl)
produces the following result:

t/*........t/*.t does not exist
t/*/*......t/*/*.t does not exist
t/*/*/*....t/*/*/*.t does not exist
FAILED-- 3 test scripts could be run, alas--no output ever seen
NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe': return
code '0x2' Stop.

The basic problem appears to be that the shell on Windows (XP, thus it's
cmd.exe) doesn't glob file patterns on the command line. What the
programs get, is what you gave them, thus, stars instead of a file list.

But the same applies to ActivePerl. So how come ActivePerl passes this
hurdle? Both ports return "MSWin32" in $^O, both use the same shell...
so the difference must be hidden somewhere in the guts of
ExtUtils::Command::MM... but where?

--
Bart.

Re: Question on platform dependency of ExtUtils::Command::MM (file globbing)

am 18.12.2006 09:54:46 von ken1

> But the same applies to ActivePerl. So how come ActivePerl passes this
> hurdle? Both ports return "MSWin32" in $^O, both use the same shell...
> so the difference must be hidden somewhere in the guts of
> ExtUtils::Command::MM... but where?

Not necessarily. With the MS compiler you get a 'setargv.obj' (IIRC)
that you can link in to your app. If you do, it will do the expansion
before your app sees argv. Whether this is the case here though is
unknown to me...just wanted to mention this so you at least know there
are possible alternatives...

ken1

Re: Question on platform dependency of ExtUtils::Command::MM (file globbing)

am 18.12.2006 11:50:15 von Ron Savage

On Sun, 17 Dec 2006 23:49:46 +1100, Bart Lateur wrote:

Hi Bart

> But the same applies to ActivePerl. So how come ActivePerl passes
> this hurdle? Both ports return "MSWin32" in $^O, both use the same
> shell... so the difference must be hidden somewhere in the guts of
> ExtUtils::Command::MM... but where?

Line 57, maybe:

my @argv =3D ExtUtils::Command::expand_wildcards(@ARGV);

Re: Question on platform dependency of ExtUtils::Command::MM (file globbing)

am 18.12.2006 22:33:44 von Bart Lateur

Ron Savage wrote:

>Line 57, maybe:
>
> my @argv = ExtUtils::Command::expand_wildcards(@ARGV);

Duh! Simply the ExtUtils::Command::MM version, 0.03 versus 0.05.

You're right, that line is in 0.05 and missing in 0.03.

--
Bart.

Re: Question on platform dependency of ExtUtils::Command::MM (file globbing)

am 18.12.2006 22:44:16 von Bart Lateur

Bart Lateur wrote:

>Background: I'm testing installation of POE 0.95 on Windows, to see what
>works and what doesn't, on ActivePerl 5.8.8 (817) (with the MinGW 3.2.3,
>though I don't think it's used for this module) and on PXPerl 5.8.7. The
>latter is an abandoned distribution, the website (http://pxperl.com) has
>even disappeared, but I still like it, especially for testing purposes.
>I'm going to install VanillaPerl and/or Strawberry Perl RSN. Anyway.

BTW after the upgrade of ExtUtils::MakeMaker, test of POE ran flawlessly
on PXPerl. They're acting very strangely on ActivePerl (some stranges
hangs, often in different spots...).

So yeah, I do kind of like PXPerl better than ActivePerl, abandoned or
not.

--
Bart.