FAQ

On Thu, Apr 15, 2010 at 11:29:21AM -0700, Eric Wilhelm wrote:

But perl6 is not a version of perl5.
I know this is a contentious issue but, with all dure respect, I disagree.

I believe that's a short-sighted viewpoint that has some value in the
short term but is likely to lead us to make decisions we'll regret in
future.

I think most of us would agree that perl6 will run perl5 code, to some
degree, at some point in the future. I'm thinking of that future point.

I think most of us would agree that CPAN is the "jewel in the crown"
of Perl and we look forward to the day when perl6 can run *existing*
perl5 modules from CPAN.

At that point I see little difference between the fact that perl 5.8
can't run perl 5.10 code that says "use feature ...", and the fact that
perl 5.18 can't run perl 6.1 code.

Tim.

Search Discussions

  • Ævar Arnfjörð Bjarmason at Apr 15, 2010 at 10:48 pm

    On Thu, Apr 15, 2010 at 22:23, Tim Bunce wrote:
    On Thu, Apr 15, 2010 at 11:29:21AM -0700, Eric Wilhelm wrote:

    But perl6 is not a version of perl5.
    I know this is a contentious issue but, with all dure respect, I disagree.
    FWIW I thought the now-deleted 'language' key in META 2.0 sidestepped
    this issue nicely. It placed that info on the top level rather than in
    the bit that requires a given perl version.

    Perl 6 isn't Perl 5 just like Clojure isn't Java. Just because it has
    (or in the case of Perl 6, might have) a very well working glue layer
    that doesn't mean they're the same language.

    But that's just splitting hairs.
  • Eric Wilhelm at Apr 15, 2010 at 11:10 pm
    # from Ævar Arnfjörð Bjarmason
    # on Thursday 15 April 2010 15:48:
    On Thu, Apr 15, 2010 at 22:23, Tim Bunce wrote:
    On Thu, Apr 15, 2010 at 11:29:21AM -0700, Eric Wilhelm wrote:
    It's also the wrong place to encode version information.
    But perl6 is not a version of perl5.
    I know this is a contentious issue but, with all dure respect, I
    disagree.
    Perl 6 isn't Perl 5 just like Clojure isn't Java. Just because it has
    (or in the case of Perl 6, might have) a very well working glue layer
    that doesn't mean they're the same language.
    Indeed. It is a completely different language. For that reason, I
    think the file extension distinction on the distribution package is a
    good idea.

    One could say that 6 vs 5 is just a "major version" and that would be
    true too, but does anyone want to discuss perl 4 modules? So at least
    in that sense, the major version is a significantly different language
    and the change goes beyond ordinary "version information".

    And even so, perl6 is not a version of perl5.

    --Eric
    --
    "Everything goes wrong all at once."
    --Quantized Revision of Murphy's Law
    ---------------------------------------------------
    http://scratchcomputing.com
    ---------------------------------------------------
  • Adam Kennedy at Apr 16, 2010 at 12:07 am
    The language key let you declare the language of the package itself.

    However, that same language concept did not extend to the dependency
    specification, which is only in terms of Perl 5 namespaces.

    The complexity of a multi-language META specification (and I've
    actually written one as an experiment in the past) requires a
    something other than (and bigger than) META.yml

    Adam K

    On Fri, Apr 16, 2010 at 8:48 AM, Ævar Arnfjörð Bjarmason
    wrote:
    On Thu, Apr 15, 2010 at 22:23, Tim Bunce wrote:
    On Thu, Apr 15, 2010 at 11:29:21AM -0700, Eric Wilhelm wrote:

    But perl6 is not a version of perl5.
    I know this is a contentious issue but, with all dure respect, I disagree.
    FWIW I thought the now-deleted 'language' key in META 2.0 sidestepped
    this issue nicely. It placed that info on the top level rather than in
    the bit that requires a given perl version.

    Perl 6 isn't Perl 5 just like Clojure isn't Java. Just because it has
    (or in the case of Perl 6, might have) a very well working glue layer
    that doesn't mean they're the same language.

    But that's just splitting hairs.
  • Ævar Arnfjörð Bjarmason at Apr 16, 2010 at 12:17 am

    On Fri, Apr 16, 2010 at 00:07, Adam Kennedy wrote:
    The complexity of a multi-language META specification (and I've
    actually written one as an experiment in the past) requires a
    something other than (and bigger than) META.yml
    All you need to support any language is to:

    1. Allow language => or something like it
    2. Allow extensions to the format. META 2.0 does this via its X_* keys.

    Before ^1 was removed from the spec I couldn't think of a language
    that couldn't be shoe-horned into it with some custom X_* keys. Even
    without ^1 it can still be hacked in by just requiring version X of
    "some_module_name_that_is_a_language". It's just more hacky.

    Perl 6's idea of modules isn't finalized. But meanwhile something like this:

    class Dog:auth ;

    Can be expressed in META.yml like this:

    X_auth => { mailto => 'jrandom@some.com' },
    X_ver => '1.2.1',

    etc. Can you think of anything that can't be supported like this and a
    custom indexer that reads the magic X_* values?
  • Adam Kennedy at Apr 16, 2010 at 1:56 am
    That's not the problem.

    The problem is how do you deal with multi-language dependencies in the
    requires: (et al) parts of the META.yml.

    Adam K

    On Fri, Apr 16, 2010 at 10:17 AM, Ævar Arnfjörð Bjarmason
    wrote:
    On Fri, Apr 16, 2010 at 00:07, Adam Kennedy wrote:
    The complexity of a multi-language META specification (and I've
    actually written one as an experiment in the past) requires a
    something other than (and bigger than) META.yml
    All you need to support any language is to:

    1. Allow language => or something like it
    2. Allow extensions to the format. META 2.0 does this via its X_* keys.

    Before ^1 was removed from the spec I couldn't think of a language
    that couldn't be shoe-horned into it with some custom X_* keys. Even
    without ^1 it can still be hacked in by just requiring version X of
    "some_module_name_that_is_a_language". It's just more hacky.

    Perl 6's idea of modules isn't finalized. But meanwhile something like this:

    class Dog:auth
    Can be expressed in META.yml like this:

    X_auth => { mailto => 'jrandom@some.com' },
    X_ver => '1.2.1',

    etc. Can you think of anything that can't be supported like this and a
    custom indexer that reads the magic X_* values?

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupcpan-workers @
categoriesperl
postedApr 15, '10 at 10:23p
activeApr 16, '10 at 1:56a
posts6
users4
websitecpan.org

People

Translate

site design / logo © 2021 Grokbase