On Thu, Dec 19, 2002 at 10:19:24PM -0600, Craig A. Berry wrote:
> The next snag I hit seems to be that eliminate_macros no longer knows
> who $self is. Since MM needs to run on older perls I have not tried to
> fix this by patching File::Spec, though I'm afraid I don't see right off
> what else to do about it either. The debugger output below illustrates
> the problem better than I could explain it.

Ahh, I know what this is.  Its the catfile/canonpath() override/fix in
ExtUtils::MM_Any.

sub catfile {
    shift;
    # File::Spec <= 0.83 has a bug where the file part of catfile is
    # not canonicalized.
    return File::Spec->canonpath(File::Spec->catfile(@_));
}

catfile() needs to be called as an object method in order for
eliminate_macros() to be usefully found, but we took File::Spec out of the
inheritence tree except on VMS and changed all the File::Spec calls to class
method calls.  Grrr.

Ok, here's the plan:

1. File::Spec goes back into the tree, but MM_Any will be the sole
subclassing point.

2. eliminate_macros() and fixpath() will be copied from File::Spec::VMS into
MM_VMS in preparation for eventual elimination from File::Spec.

3. Change all the calls to File::Spec as class methods back to object
methods throughout MakeMaker.

4. fixpath() and eliminate_macros() will be detangled from catdir() and
catfile() so it can be done as a wrapper around File::Spec in MM_VMS rather
than inside File::Spec::VMS.


I can do 1, 2 and 3 which will fix the VMS problems.  Someone else will have
to do #4, but its not an immediate problem.


-- 

Michael G. Schwern   <[EMAIL PROTECTED]>    http://www.pobox.com/~schwern/
Perl Quality Assurance      <[EMAIL PROTECTED]>         Kwalitee Is Job One
AY!  The ground beef, she is burning my groin!
        http://sluggy.com/d/990105.html

Reply via email to