http://www.perlmonks.org?node_id=11155555


in reply to Re: poll ideas quest 2023 [Reasonable 'use VERSION' for new CPAN modules]
in thread poll ideas quest 2023

My just-released CodeGen::Cpppp requires 5.20 because I required lexical subs, and wanted template authors to be able to use sub signatures and 5.20 is the earliest version that supports it. I enable the 'use experimental' for them behind the scenes. I think this is a fairly reasonable target version because it's been out for a long while and there's simply no good way to back-port subroutine signatures if you're advertising them to users of the module.

Meanwhile, most of my modules will continue to be ~5.8 because 5.8 can do most of anything that needs done, sometimes with some shims to work around bugs. I don't *need* to use subroutine signatures for my own benefit, and indeed they sometimes slow down the code a bit so all the more reason to leave them out of modules if the purpose of the module is performance.

I don't see any reason to support before 5.8 because I've not heard of a single person still using one of them. Also before 5.8 doesn't have weakrefs, and I consider those to be mandatory for any language that is based on reference counting.

Edit

Actually, I'm debating moving all my modules to 5.10 so that I can use //. While I can write that as defined $x? $x : ... the // is cleaner and also more performant.

Replies are listed 'Best First'.
Re^3: poll ideas quest 2023 [Reasonable 'use VERSION' for new CPAN modules]
by kcott (Archbishop) on Nov 11, 2023 at 04:48 UTC

    I don't see how this relates to the poll idea.

    Did you want a change to the options (or some other aspect of the poll idea)?

    If this idea is accepted (and published) as an actual poll, your post looks more like an explanation of your voting choice in that poll.

    I read what you wrote several times. Am I missing something?

    — Ken

      I guess the points I was raising could be summed up as
      • 5.20 should be included
      • actually 5.20 is sufficient for (basic use of) subroutine signatures, you don't need to depend on 5.36 for that (regarding the comment on 5.36 poll option)
      • do you think anyone will cast a serious vote for less than 5.8?

      And the question on my mind:

      • If I target 5.8 but increase the version any time I *need* a feature from a later perl, am I "Dynamic" or "5.8" or "Other"?

        [Note: Between you posting your response (to which I'm replying) and me posting this reply, I changed the "5.18" option. Details in the Updates: list of the "original idea".]

        I picked a range of versions from almost the earliest to almost the latest. I guessed at what might be chosen such that the poll histogram gave a meaningful result. As I see it, the main point of the poll idea is to tailor the choices based on feedback, prior to the actual poll being published.

        I ended up with eight versions which I believe gives suitable coverage. I didn't think listing every base version (i.e. either 5.00[0-5] or 5.x.0 where x >= 6) would have been a good move, or even allowed by the pollsters; similarly, listing only a few versions would not have given a meaningful histogram result.

        The short, parenthesised comment after each version is, as I stated, a "potential reason" for making that choice. It's not intended as the main reason, nor does it need to factor into a user's decision at all.

        I'm more than happy to make changes (additions or deletions) to the list of options. This could be the result of a strong argument or a consensus of opinion. I'm unlikely to add a version because it introduces an experimental feature; I'd need a better reason.

        I agree with ++hippo's comments regarding your last two dot points.

        — Ken

        do you think anyone will cast a serious vote for less than 5.8?

        Isn't it the point of such polls to determine things like this? I think that's a very valid and potentially informative option.

        If I target 5.8 but increase the version any time I *need* a feature from a later perl, am I "Dynamic" or "5.8" or "Other"?

        If you target 5.8 then the answer is 5.8.


        🦛