develooper Front page | perl.perl5.porters | Postings from October 2014

Re: ExtUtils-MakeMaker and Win32 woes: call for assistance

Thread Previous | Thread Next
From:
Father Chrysostomos
Date:
October 31, 2014 21:47
Subject:
Re: ExtUtils-MakeMaker and Win32 woes: call for assistance
Message ID:
20141031214751.13511.qmail@lists-nntp.develooper.com
> The branch http://perl5.git.perl.org/perl.git/shortlog/refs/heads/bingos/eumm-7.01_03 has ExtUtils-MakeMaker-7.01_04
> integrated and it is failing the cpan/ExtUtils-MakeMaker/t/miniperl.t test
> as follows:
...
> Can't use an undefined value as a symbol reference at ../../lib/Cwd.pm line 618.

This code is wrong:

    if (*{$DynaLoader::{boot_DynaLoader}}{CODE}) {

If $DynaLoader::{boot_DynaLoader} is undef because MakeMaker::Test::NoXS
deleted it, then it croaks.  It should be something like:

    if ($DynaLoader::{boot_DynaLoader} && *{$DynaLoader::{boot_DynaLoader}}{CODE}) {

I suspect Cwd is being loaded earlier than before.  There is another ref-
erence to this typeglob earlier on in Cwd.pm that would vivify it when
Cwd is loaded, causing that test not to fail.

I don't think this is a very robust approach at all.  We are switching
to miniperl mode after loading several things.  And this also causes a
run-time penalty for cwd on Windows.  miniperl.t ought to be deleting
$DynaLoader::{boot_DynaLoader} at the very top in a BEGIN block.  Or this
test should actually be run with miniperl.  (Though if it is not being
run with miniperl, why can't it be run in the CPAN release?)


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