On 5/19/05, Michael G Schwern <[EMAIL PROTECTED]> wrote: > On Thu, May 19, 2005 at 09:18:26PM -0400, Rob Kinyon wrote: > > I've been following the threads on PM and would like to offer my > > services. What are the development tasks needed to get this in? > > > > I have -not- read the archives of this list, so a perfectly good > > response might be "Read this specific note in the archives". > > The code in question is ExtUtils::MM_Any->init_INSTALL_from_PREFIX() as > well as MM_Unix and MM_VMS->prefixify. Somehow this logic must be made > either: > > a) callable as a function (ie. it cannot rely on the MakeMaker object) > b) moved into Module::Build::Base and the MakeMaker object replaced by > the Module::Build object. > > While option b duplicates the code I don't expect the code to change and > it is the easiest option and doesn't require Module::Build to rely on an > up-to-date MakeMaker. So I'd say that's the best stab. I think it should > be possible to do a rote translation of the code from MakeMaker to > Module::Build. > > > > Also, how would I be able to test this feature? > > You run the prefixification function with various install configs (by > altering $self->{config}) and different prefix values and see if you get > the right install paths. Of course even knowing what the right result > shoudl be can be tricky. The MakeMaker test suite has some PREFIX tests > you can look at.
A few questions about how this works / should work: 1) The EU::MM classes are quite ... incestuous. Everything inherits from MM_Any and MM_Unix (in some order). This implies that everything should use the MM_Unix method of PREFIX, except for VMS which has its own. Is this correct? 2) Given #1, that would imply that the PREFIX logic should be in M::B::Base, except for VMS which would override it. Is this correct? 3) Any recommendation on method name? 4) Within MM_Any::init_INSTALL(), it asserts that INSTALLBASE and PREFIX cannot be used together. Should this assertion hold true in the M::B port? 5) Is there anything I'm not asking that I should be asking? Thanks, Rob