develooper Front page | perl.perl5.porters | Postings from February 2021

De-experimentalising "signatures"

Thread Next
Paul "LeoNerd" Evans
February 7, 2021 16:54
De-experimentalising "signatures"
Message ID:
`use feature 'signatures';` was added in 5.20 - May 2014 (over 6 years
ago). Since then, it has seen some minor adjustment to the order of
signatures vs. attribute notation; swapped in 5.22 then back again to
its now-current form in 5.24 - May 2016 (over 4 years ago).

It has remained "stable" (i.e. not being changed) in its current form
ever since then, yet the "experimental" feature tag remains.


I know Dave M has plans to add lots more things (type assertions,
generic query syntax, named variables, etc...) and I'm excited about
and definitely want to see many of those things. But I don't know of
any firm reason why signatures in their current form need to be marked
"experimental" to do so. All over the language we are able to
experimentally add new things without marking the entire surrounding
context as "experimental".

In the meantime, a lot of feedback I've been seeing for a long time on
Freenode #perl, and more recently at FOSDEM over this weekend, is that
folks don't want to wait, or aren't allowed to use signatures as they
stand, because it is still marked "experimental" and thus they are
forbidden by whatever local policy development houses may have. Yet
other developers are simply put off by the scary "e" word. I have heard
- on more than one occasion - that devs have been firmly told by their
manager "do not use signatures" for the sole reason of them being

I would therefore like to propose that signatures - in their current
form unchanged between 5.24 and 5.32 - be declared no longer
experimental and promoted to a fully-fledged first-class language
feature. Any further additions (which as already mentioned are very
welcome and keenly anticipated) can perhaps be done either under a new
experiment name, or by adding the "experimental" warning to that part
of the syntax alone. I don't see why signatures *as a whole* should
still be declared experimental. Many developers and CPAN modules are
already using them as if they were stable first-class features. I think
by now the ship has *already* sailed on us ever changing any existing
details of them.

(cross-posted to github as )

Paul "LeoNerd" Evans      |  |

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