develooper Front page | perl.perl5.porters | Postings from January 2022

PSC #049 2022-01-07

Thread Next
Neil Bowers
January 9, 2022 12:37
PSC #049 2022-01-07
Message ID:
PSC #049 2022-01-07

Present: Paul, Rik, Neil

The next dev release – 5.35.8 – is the "Contentious changes freeze". We don't currently have anyone on the hook for this or the subsequent dev releases. It would be great if we could get volunteers, but if we don't we'll approach some experienced releasers. Neil to compile a shortlist.

The rest of the meeting, which ran over, was spent discussing subroutine signatures. We've discussed this topic a lot over the last year. We really want to get signatures out of experimental; they're widely used, but have been experimental for way too many years.

The thing that has held this up is not having nailed down the end-game for signatures: it would be a major footgun to make it not experimental, encourage everyone to start using them, and then realise that we have to make a change to what's already there, and it should have stayed experimental after all. But the reality is that signatures haven't any user-visible changes they were first released in 5.20, apart from changing where they appear relative to attributes, which was in 5.22 (there were some internal changes in 5.26).

The topic we've discussed a lot recently is what to do with @_ in signatured-subs: if your sub has a signature then you shouldn’t be touching @_. If we can remove support for @_ in signatured subs, that could give a performance boost, and also remove a class of potential bugs.

Our overriding desire is to get signatures "out there", but what's the right next step? There are at least 4 options:

1. Remove the experimental sticker off signatures and release that way in 5.36 (so you'd still have to `use feature` or `use v5.36`), but no other changes.
2. As for 1, but also add a runtime warning if you touch @_ inside a signatured-sub.
3. Like 2, but touching @_ is fatal.
4. Inside signatured-subs @_ becomes non-special.

We got pretty close to converging, but felt this was a good point to send this to the list to hear other opinions. Rik and Paul will follow up with their individual thoughts on this. My thought is that I’d like `use v5.36` to enable signatures.


Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About