Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Special-case "use v6" #16007

Open
p5pRT opened this issue Jun 8, 2017 · 6 comments
Open

Special-case "use v6" #16007

p5pRT opened this issue Jun 8, 2017 · 6 comments

Comments

@p5pRT
Copy link

p5pRT commented Jun 8, 2017

Migrated from rt.perl.org#131538 (status was 'open')

Searchable as RT131538$

@p5pRT
Copy link
Author

p5pRT commented Jun 8, 2017

From juerd@tnx.nl

Currently, "use v6" run by perl 5 results in something like​:

  Perl v6.0.0 required--this is only v5.24.1, stopped at foo.p6 line 3.

The message "this is only", especially the word "only", shows that it's
treating v6 like a version number in the typical sense that the program
with the higher number replaces the one with the lower number. While
that's true for almost all software, Perl 5 and 6 are said to live
side-by-side; Perl 6 does not replace Perl 5.

Besides that, Perl 6 doesn't use version numbers like "6.0.0"; the
current version is "6.c".

I think v6 should be special-cased. My suggestion would be to simply
remove all details​:

  Perl 6 required--this is Perl 5, stopped at foo.p6 line 3.

and to support anything after the period, so that even the weird "6.c"
will work for forward compatibility with hypothetical future weirdness
in Perl 6 version numbering.
--
Met vriendelijke groet, // Kind regards, // Korajn salutojn,

Juerd Waalboer <juerd@​tnx.nl>
TNX

@p5pRT
Copy link
Author

p5pRT commented Jun 9, 2017

From @avar

On Thu, Jun 8, 2017 at 9​:08 PM, Juerd Waalboer
<perlbug-followup@​perl.org> wrote​:

# New Ticket Created by Juerd Waalboer
# Please include the string​: [perl #131538]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=131538 >

Currently, "use v6" run by perl 5 results in something like​:

Perl v6\.0\.0 required\-\-this is only v5\.24\.1\, stopped at foo\.p6 line 3\.

The message "this is only", especially the word "only", shows that it's
treating v6 like a version number in the typical sense that the program
with the higher number replaces the one with the lower number. While
that's true for almost all software, Perl 5 and 6 are said to live
side-by-side; Perl 6 does not replace Perl 5.

Besides that, Perl 6 doesn't use version numbers like "6.0.0"; the
current version is "6.c".

I think v6 should be special-cased. My suggestion would be to simply
remove all details​:

Perl 6 required\-\-this is Perl 5\, stopped at foo\.p6 line 3\.

and to support anything after the period, so that even the weird "6.c"
will work for forward compatibility with hypothetical future weirdness
in Perl 6 version numbering.

Related to this​: Is there no such thing as an integration plan for p5
& p6 anymore? The bitrotting MAD support added in 2006 by Nicholas was
finally removed in 2014 by Jarkko.

There's Inline​::Perl[56] modules for perl6 & perl5 respectively which
act as a bidirectional bridge. That along with rakudo+nqp+moarvm is
something which I guess I always assumed would be shipped with a
standard perl install in some future where the perl6 stack became
stable enough.

That would allow "use v6" do DWYM instead of erroring out, wasn't that
always the plan for that construct?

In any case, maybe that's not going to happen, but changing the error
message as you suggest seems to be implicitly closing the door on that
to some extent, so it's worth explicitly bringing this up. I.e. should
the error say something like "sorry, we don't have a perl6 bridge
*yet*" or "go away, perl5 will never support some perl6 magic"?

@p5pRT
Copy link
Author

p5pRT commented Jun 9, 2017

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jun 9, 2017

From @xsawyerx

On 06/09/2017 11​:13 AM, Ævar Arnfjörð Bjarmason wrote​:

On Thu, Jun 8, 2017 at 9​:08 PM, Juerd Waalboer
<perlbug-followup@​perl.org> wrote​:

# New Ticket Created by Juerd Waalboer
# Please include the string​: [perl #131538]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=131538 >

Currently, "use v6" run by perl 5 results in something like​:

Perl v6\.0\.0 required\-\-this is only v5\.24\.1\, stopped at foo\.p6 line 3\.

The message "this is only", especially the word "only", shows that it's
treating v6 like a version number in the typical sense that the program
with the higher number replaces the one with the lower number. While
that's true for almost all software, Perl 5 and 6 are said to live
side-by-side; Perl 6 does not replace Perl 5.

Besides that, Perl 6 doesn't use version numbers like "6.0.0"; the
current version is "6.c".

I think v6 should be special-cased. My suggestion would be to simply
remove all details​:

Perl 6 required\-\-this is Perl 5\, stopped at foo\.p6 line 3\.

and to support anything after the period, so that even the weird "6.c"
will work for forward compatibility with hypothetical future weirdness
in Perl 6 version numbering.
[...]

In any case, maybe that's not going to happen, but changing the error
message as you suggest seems to be implicitly closing the door on that
to some extent, so it's worth explicitly bringing this up. I.e. should
the error say something like "sorry, we don't have a perl6 bridge
*yet*" or "go away, perl5 will never support some perl6 magic"?

I think both of these are too committal. If you say "*yet*," you will
now have to plan out how and when, and you are committed to that. And I
would never say "never" either.

@p5pRT
Copy link
Author

p5pRT commented Jun 9, 2017

From @cpansprout

On Thu, 08 Jun 2017 12​:08​:04 -0700, juerd@​tnx.nl wrote​:

Currently, "use v6" run by perl 5 results in something like​:

Perl v6\.0\.0 required\-\-this is only v5\.24\.1\, stopped at foo\.p6 line 3\.

The message "this is only", especially the word "only", shows that it's
treating v6 like a version number in the typical sense that the program
with the higher number replaces the one with the lower number. While
that's true for almost all software, Perl 5 and 6 are said to live
side-by-side; Perl 6 does not replace Perl 5.

Besides that, Perl 6 doesn't use version numbers like "6.0.0"; the
current version is "6.c".

I think v6 should be special-cased. My suggestion would be to simply
remove all details​:

Perl 6 required\-\-this is Perl 5\, stopped at foo\.p6 line 3\.

But leave the full Perl 5 version in. There is no need to special-case that part of the message, and it is still useful information for the user regardless.

--

Father Chrysostomos

@p5pRT
Copy link
Author

p5pRT commented Jun 10, 2017

From zefram@fysh.org

Juerd Waalboer wrote​:

I think v6 should be special-cased. My suggestion would be to simply
remove all details​:

Perl 6 required--this is Perl 5, stopped at foo.p6 line 3.

+1.

and to support anything after the period,

That sounds like a special case too far​: it would require a non-trivial
chunk of parsing code dedicated purely to this one case. Version parsing
is already too complicated for us to cope with.

-zefram

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants