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