Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^2: p5p vs CPAN

by Anonymous Monk
on Oct 17, 2019 at 12:40 UTC ( #11107598=note: print w/replies, xml ) Need Help??


in reply to Re: p5p vs CPAN
in thread p5p vs CPAN

> Bugward compatibility takes a backseat to correctness for example.

This is the problem. The perfect (p5p) is the enemy of the good (CPAN). How can it be acceptable that "fixing" Perl is "breaking" CPAN? I noticed the breaking changes tend to reduce the DWIM nature of perl in favor of some abstract notion of what is correct, like for example, my $foo qw(bar baz) makes perfect sense and was valid perl until some programming justice warriors decided that breaking backcompat was less important than their idea of programming correctness.

The result is broken scientific distros sitting on CPAN forever because, for example, we now have to --force install and add 2 characters to 1 module to fix 3 modules. Someone who is more of a scientist than a perl programmer will shrug their shoulders and move on to a programming language with working libraries. It's a dire situation!

Thank you Corion and daxim for your thoughtful replies and valuable information (but that anonymous reply, get an account! =)

Replies are listed 'Best First'.
Re^3: p5p vs CPAN
by hippo (Chancellor) on Oct 17, 2019 at 13:15 UTC
    like for example, my $foo qw(bar baz) makes perfect sense and was valid perl until

    I'm afraid to say that it doesn't make perfect sense to me. What would you expect it to mean?

    It's also not valid perl, even on the oldest one I could find:

    $ perl -v This is perl, v5.8.8 built for i386-linux-thread-multi Copyright 1987-2006, Larry Wall Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5 source ki +t. Complete documentation for Perl, including FAQ lists, should be found +on this system using "man perl" or "perldoc perl". If you have access to + the Internet, point your browser at http://www.perl.org/, the Perl Home Pa +ge. $ perl -e 'my $foo qw(bar baz)' syntax error at -e line 1, near "$foo qw(bar baz)" Execution of -e aborted due to compilation errors.
    The result is broken scientific distros sitting on CPAN forever because, for example, we now have to --force install and add 2 characters to 1 module to fix 3 modules.

    I am no advocate for breaking backwards compatibility but a seemingly trivial change to a module which moves it from unusable to working on modern perls is something any module maintainer should be doing. Just not necessarily in the next half hour. If there's no repsonse to such tickets in a reasonable time-frame (give them a few weeks at least) then it's probably abandoned and a good candidate for a take-over.

      like for example, my $foo qw(bar baz) makes perfect sense and was valid perl until
      I'm afraid to say that it doesn't make perfect sense to me. What would you expect it to mean? It's also not valid perl

      I assume this was the same anonymous monk from Re^2: How can I create a simple Autocad drawing with Perl, who complained about needing to fix foreach my $action qw(load save) { to foreach my $action (qw(load save)) { in order to use CAD::Drawing::IO. Apparently, this AM either didn't read, didn't like, or didn't accept afoken's detailed explanation as to why the original syntax was never meant to work (hence Corion's use of "bugwards compatibility" earlier in this thread).

      It's also not valid perl, even on the oldest one I could find ... v5.8.8

      According to CPAN Testers "Use of qw(...) as parentheses" was "valid" perl after 5.8.8. The deprecation warning showed up in 5.13.5 and became fatal for linux in 5.18.1 and bsd in 5.18.4. Then this broke: foreach my $foo qw(bar baz){}

Re^3: p5p vs CPAN
by Corion (Pope) on Oct 17, 2019 at 12:50 UTC

    In that case, it was always a bug, it just wasn't reported by Perl as such.

    If you want more "influence", consider becoming a part of p5p. It's as easy as reading the mailing list and/or writing a mail to it:

    Please note that these are all volunteers, so taking a belligerent stance may not get your case heard in the way you want. But if you are interested in actually fixing the problems, I'm sure you will be welcome there.

      taking a belligerent stance may not get your case heard

      I'm not really that belligerent, just trying to be funny about a tragic subject, with a somewhat frustrated rant. Sorry if my sense of humor offends anyone. I am serious, and silly simultaneously, for pure enjoyment.

      In that case, it was always a bug, it just wasn't reported by Perl as such.

      Maybe it wasn't reported as a bug because it was a feature? I'm curious how "fixing" that particular "bug" really improved Perl? Does it 1) make new things possible, or 2) make things that should have worked function properly, or does it just remove one of a million shortcuts and 3) break the holy grail: CPAN? (I understand what is "wrong" with for qw(), but don't care! DWIM)

      if you are interested in actually fixing the problems

      My preferences in order:

      1. Someone never decided to cause this problem.
      2. Someone with more power and skill fixes the problem.
         a. Repair Perl backwards compatability.
         b. Repair CPAN distributions.
      3. I fix the problem locally and am happy that it works.
      4. I have to work to fix the problem for everyone.
      
      I know you want me to do 4 because of 3 but I'm looking at 1 with an occasional glance at 2a =)

        Quoting [

        ... These would sometimes get the lexer into the wrong state, so they didn't fully work, and the similar foreach qw(a b c) {...} that one might expect to be permitted never worked at all.

        So, just because they worked for you, they didn't work in all cases, and I suppose fixing the bug made the code simpler than keeping the special case around.

        But I'm sure you already read the post by afoken where this was explained. If you have further questions, I'm sure they can be answered from the git repository, or by asking the people involved.

        Again, I perceive your tone as confrontative, so you might want to work on that before communicating with other people about it. If you think that "p5p breaks things to spite you", you should maybe read more of the communication of p5p. p5p is not some dark cabal, and you will find that most changes to Perl get discussed on the mailing list.

        If you think that Perl should not change, why do you keep upgrading perl?

Re^3: p5p vs CPAN
by swl (Curate) on Oct 17, 2019 at 20:47 UTC

    Could you list some of the broken distros? There might be simple fixes that others could implement.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://11107598]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (8)
As of 2019-12-11 17:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?