# from Ricardo SIGNES
# on Wednesday 01 October 2008:

>* Ken Williams <[EMAIL PROTECTED]> [2008-10-01T12:15:04]
>
>> On Wed, Oct 1, 2008 at 11:12 AM, Smylers <[EMAIL PROTECTED]> wrote:
>> > But what if the bundled version of latest.pm is buggy and I
>> > already have a later latest.pm installed on my system?  That will
>> > use the wrong one!!
>>
>> latest.pm doesn't ever get installed on anyone's computer.  If you
>> install it, we have a backup plan for that too - the guys in black
>> coats will come and take your computer away.
>
>Well, at this point we're back to "everybody must upgrade everything."
>Presumably latest.pm knows to use the installed latest.pm if it's
> later, even if this is rarely true and even more rarely needed.

There is no 'installed latest.pm', and yes this is a potential for bugs 
with any bundling solution.  Even if there were an 'installed 
latest.pm', what if the bundled latest.pm had a bug where it failed to 
give way to the installed one?

We could recommend that the Build.PL does BEGIN {push(@INC, 'inc')} 
instead of use lib 'inc' (an unshift()), which gives the target the 
opportunity to upgrade (or break) their latest.pm.

But what we're talking about is allowing the target machine to escape 
from a bad situation caused by hard-coded/bundled code -- and that can 
be solved with a simple unshift(@INC, sub {...}) or various other 
hackery where you would say perl -MDevel::noinc Build.PL or whatever.

But latest.pm is fairly short and simple, which reduces the bug rate.  
It could probably still use some testing -- given that I just fixed a 
non-starter bug in it the other day, I appear to be the only user.

--Eric
-- 
"Beware of bugs in the above code; I have only proved it correct, not
tried it."
--Donald Knuth
---------------------------------------------------
    http://scratchcomputing.com
---------------------------------------------------

Reply via email to