http://qs321.pair.com?node_id=1212954


in reply to Re^3: Curious about Perl's strengths in 2018
in thread Curious about Perl's strengths in 2018

It doesn't make Perl's management look efficient
It's very little to do with management (efficient or otherwise), and mainly to do with lack of manpower. Specifically there's a whole bunch of stuff I am aware of that needs pinning down and then implementing, before signatures can become non-experimental.

As one example, consider the behaviour of @_ within the body of a signatured sub. Should it still contain the full argument list (but then you incur the cost of setting up and restoring @_ for each call), or be empty (you still have a setup/restore cost), or be untouched and still have the value it had before the current function was called? Should accessing / modifying @_ trigger a warning, or even be fatal? What happens when a function is called via the argless &foo; mechanism - for each of the combinations of caller/callee being an ordinary/signatured sub? If @_ isn't populated, how can the sub tell whether a particular arg got passed a real undef value or no value? Should the behaviour of @_ be controllable? If so, should that be via a pragma or some new syntax within the signature? (Those are all rhetorical questions - I don't want to get into a debate about signature semantics here.)

Until all that has been decided and implemented, we don't know how @_ will change, so can't mark it as non-experimental.

Deciding and implementing all that is currently in my balliwick, and I only have so much time.

Dave.