At 5:53 PM -0500 12/16/01, Michael G Schwern wrote:
>I just recently tried to install a module (Test::Harness 2.00) using
>bleadperl on VMS and noticed it was using miniperl. bleadperl's
>perl_setup.com doesn't define a miniperl symbol, but I had one left
>over from 5.005_03 and it was pointing there. So the build choked
>when it tried to use the 5.006 only ExtUtils::Installed with a
>5.005_03 miniperl.
>
>So, there's two things going on here.
>
> 1) Why is MakeMaker looking for miniperl?
Hmm. There is no miniperl installed with 5.005_03 (or later) in any
installation I've looked at, nor have I found any version of Perl on
VMS that defines miniperl as a symbol (it's always invoked directly
during the core build). Do you see something from the command C<SHOW
SYMBOL MINIPERL> ?
Perhaps your PERL_ROOT logical name points to a 5.005_03 build
directory (or possibly such a directory is in your path). But that
should only happen if you were running Makefile.PL with 5.005_03.
Were you?
I have successfully built and installed the extension against a
bleadperl build directory tree, and though there were a number of
test failures, I had no trouble getting it to build and install, and
miniperl was never selected by find_perl even though it exists in the
directory PERL_ROOT points to.
> 2) Should perl_setup.com define it?
I don't think so. I don't believe there is anything that has reason
to use miniperl that doesn't also know how to invoke it directly.
>I think the answer to #1 is "because it needs it when building the
>core". That can be made more elegant by only looking for miniperl if
>PERL_CORE is set. I can fix it in ExtUtils::MM_Unix (patch below),
I don't have any objections to this patch. Did it do you any good?
>but somebody else is going to have to fix this in MM_VMS:
Hmm. I'd be willing to take a look if I had something I could reproduce.
> # Check miniperl before perl, and check names likely to contain
> # version numbers before "generic" names, so we pick up an
> # executable that's less likely to be from an old installation.
> @snames = sort { my($ba) = $a =~ m!([^:>\]/]+)$!; # basename
> my($bb) = $b =~ m!([^:>\]/]+)$!;
> my($ahasdir) = (length($a) - length($ba) > 0);
> my($bhasdir) = (length($b) - length($bb) > 0);
> if ($ahasdir and not $bhasdir) { return 1; }
> elsif ($bhasdir and not $ahasdir) { return -1; }
> else { $bb =~ /\d/ <=> $ba =~ /\d/
> or substr($ba,0,1) cmp substr($bb,0,1)
> or length($bb) <=> length($ba) } } @$names;
--
________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]
"... getting out of a sonnet is much more
difficult than getting in."
Brad Leithauser