Quoth [EMAIL PROTECTED] (Eric Wilhelm):
> # from Ben Morrow
> # on Thursday 02 October 2008:
> 
> >Being able to install latest.pm[1] and use an installed version
> > doesn't help, though. If there's a bug in the section of latest.pm
> > that tries to locate the installed copy of itself and use it instead,
> > you *still* can't fix it. And since that is the entire functionality
> > of latest.pm, there won't ever be any bugs you can fix by installing
> > a fixed version.
> 
> That's not what latest.pm does.  The caller is expected to setup the 
> @INC correctly for "use latest" -- *then* latest::import() figures out 
> where the __THING YOU ACTUALLY WANT TO LOAD__ is.

I think we're in violent agreement here: maybe I wasn't clear enough.

    Ken said: latest.pm is never installed, the bundled version is used
    to locate the appropriate copy of M::B to use.

    Ricardo said: But what if there's a bug in the bundled version? Then
    we're back to repackaging everything just like with M::I. To avoid
    this latest.pm should defer to the installed version of itself if
    it's newer.

    I said: If there is a bug in latest.pm, being able to install a
    fixed copy doesn't help. If the bundled version were capable of
    correctly locating and deferring to the installed version, it could
    do the same for M::B. If it isn't, then you're screwed anyway.

So: I understand that the plan is never to install latest.pm, and I
think this is the only correct solution. Of course, latest.pm must be
written rather carefully, and the temptation to add features must be
resisted: this is bootstrap code only :).

> There is nothing in the latest.pm which prevents it *itself* from being 
> superseded by an installed version

I wonder if there should be? If we're running an installed copy of
latest.pm instead of the bundled copy, then something has gone wrong; it
may be better to let the user know they've done something stupid sooner
rather than later.

> >[1] IMHO it *really* ought to be called Module::Build::latest, as
> >otherwise you're stomping on a top-level pragma namespace for the sake
> >of a module that never gets installed.
> 
> If it *were* designed to be installed, then: yes.

I don't think it makes any difference. The namespace is still taken: if
anyone ever had a latest.pm installed that did something different,
*real* chaos would ensue :).

Ben

-- 
For far more marvellous is the truth than any artists of the past imagined!
Why do the poets of the present not speak of it? What men are poets who can
speak of Jupiter if he were like a man, but if he is an immense spinning
sphere of methane and ammonia must be silent? [Feynmann]     [EMAIL PROTECTED]

Reply via email to