Front page | perl.perl5.porters |
Postings from June 2020
Re: Announcing Perl 7
Thread Previous
|
Thread Next
From:
demerphq
Date:
June 26, 2020 16:01
Subject:
Re: Announcing Perl 7
Message ID:
CANgJU+WJBphWpt0NgU6qT13yRmAw-+wRcwZ2N7BPsNFhBBxSRg@mail.gmail.com
On Fri, 26 Jun 2020 at 17:54, Dan Book <grinnz@gmail.com> wrote:
>
> On Fri, Jun 26, 2020 at 11:51 AM demerphq <demerphq@gmail.com> wrote:
>>
>> On Fri, 26 Jun 2020 at 17:29, Dave Mitchell <davem@iabyn.com> wrote:
>> >
>> > On Fri, Jun 26, 2020 at 05:10:57PM +0200, demerphq wrote:
>> > > My understanding is any existing code which has "use strict;" will be
>> > > fine as "use strict" will be the same "use perl5-semantics" or
>> > > whatever the syntaxt will be. Thus relatively little will break.
>> >
>> > This seems to be an important and fundamental disagreement or
>> > misunderstanding between us, and I think it needs resolving before
>> > anything else gets discussed.
>>
>> Ok, so just to be clear, my understanding that "use strict" and "no
>> strict" will be equivalent to "use perl-5-semantics; use strict;" and
>> "use perl-5-semantics; no strict;".
>>
>> Whatever the semantics are. Since most cases people tend to do this:
>>
>> package Whatever;
>> use strict;
>> use warnings;
>>
>> assuming i am right this is seems to cover making old code continue to
>> work as though it had been modified to read:
>>
>> package Whatever;
>> use perl-5-semantics;
>> use strict;
>> use warnings;
>>
>> > My understanding was that, by default, perl7 will enable many of the
>> > optional features available via 'use feature X' and/or 'use v5.32.0',
>> > plus possibly some other stuff.
>>
>> Yes, unless you request perl-5 semantics by saying "use strict;" or
>> "use perl-5-semantics;" (however it is spelled in practice)
>>
>> > I think that this will break a *lot* of existing code and CPAN modules.
>> > Which is at the heart of my objection.
>>
>> If I am right about strict do you agree that the scope of breakage
>> will be much smaller than if I am wrong?
>>
>> >
>> > For example, disabling indirect object syntax by default will break
>> > all code containing
>> >
>> > my $foo = new Foo(...);
>> >
>> > which is still a commonly-used idiom.
>>
>> I don't have that impression. We have none at work for instance. But
>> ok. But i think most of it runs inside of `use strict;`
>>
>> > Enabling signatures by default will make it nearly impossible to portably
>> > write code which uses subroutine prototypes. (Seriously, try the challenge
>> > I set in my previous email).
>>
>> Ill take another look, but again, since I can just say:
>>
>> use perl-5-semantics;
>>
>> then surely it can't be impossible?
>>
>> > Enabling 'use utf8' or 'feature_unicode' by default will silently change
>> > the semantics of code.
>>
>> Again, if this only applies to code not running under use strict I
>> dont think it will be a big deal.
>
>
> You seem to be making a lot of fundamental assumptions that are not part of the proposal.
Im just repeating what I understood from the many discussions I was
involved in with Sawyer about the proposal, it is entirely possible I
am behind on the plan, or that I misunderstood at the time, or that
the proposal somehow missed details that are important to this
discussion.
I have not claimed otherwise either. In my first reply about this I stated:
"I may be wrong and the plan has changed since last Sawyer and I
talked, but i believe that the use of "strict" in your code already
triggers the correct assumptions about the code."
And I was very careful to say "my understanding" in all my comments.
Yves
--
perl -Mre=debug -e "/just|another|perl|hacker/"
Thread Previous
|
Thread Next