David Golden wrote:
> So, yes, it was a crappy design decision/hack, but now we're stuck with it.

No, we should not wedge ourselves into a corner like this.  Preventing a
better way of doing it from going into a protocol because there's a handful of
code that uses the old way is doomed to render protocol improvements
impossible.  META.yml is versioned just to handle this sort of thing.

Furthermore, there's probably all of 2 or 3 pieces of code which actually
handles "requires: perl".  CPAN, CPANPLUS and maybe PAUSE.  That's going
overboard on the backwards compatibility police to protect those.  We're not
even talking about removing "requires: perl", just adding a better way.

There's only two important pieces of code which generate "requires: perl",
Module::Build and Module::Install.  Change them and almost all uses of
"requires: perl" on CPAN will melt away over time.

Hell, "requires: perl" isn't even clearly part of the spec.  The "requires"
documentation clearly says:  "The keys are the module names, and the values
are version specifications as described in VERSION SPECIFICATIONS."  The
"perl" thing just slipped into the synopsis without explanation.  MakeMaker
has never honored it.

There's an old, but sadly true, joke about some bizarre feature of C and why
it's there.  Turns out waaaaaaaaaaaay back in the beginning the bizarreness of
the feature was pointed out and a better way to do it given.  At the time the
response was "we can't possibly change that, there must be *a dozen users* of
C by now!"

We have to be able to move forward, always.


-- 
Don't try the paranormal until you know what's normal.
        -- "Lords and Ladies" by Terry Prachett

Reply via email to