develooper Front page | perl.vmsperl | Postings from December 2001

Re: [PATCH lib/ExtUtils/MM_Unix.pm] miniperl found before perl?

Thread Previous | Thread Next
From:
Craig A. Berry
Date:
December 16, 2001 22:24
Subject:
Re: [PATCH lib/ExtUtils/MM_Unix.pm] miniperl found before perl?
Message ID:
a05101000b842eb74d48e@[172.16.52.1]
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:craigberry@mac.com

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About