develooper Front page | perl.perl5.porters | Postings from April 2016

Re: signature subs and @_ semantics redux

Thread Previous | Thread Next
Ricardo Signes
April 23, 2016 10:57
Re: signature subs and @_ semantics redux
Message ID:
* Zefram <> [2016-04-19T14:31:12]
> >    2 Assuming orthogonality, there's also the issue of whether
> >      'use feature "signatures"' on its own should do @_-suppression;
> >      i.e. the current default should change.
> It should not change.  The pragma already has a well-defined meaning.
> [...]
> Provided that @_ suppression has its own pragma, I am totally
> relaxed about there *also* being pragmata that bundle it with other
> lexically-controllable state.

Zefram has convinced me that there is negative value in making "use feature
'signatures'" turn off @_ setup in a conversation we had on IRC, the points of
which are largely reflected in the email I'm quoting.

He also noted that while I had said, "I am not worried about backcompat,
because subs ignatures are experimental," that merely turning on signatures did
not issue a warning.  One would have to set up a signature.  So this program:

  use feature 'signatures';
  sub xyz { my ($x) = @_ }

Would cause no warning, but might change behavior if signatured altered the
behavior of @_.

I think we are better keeping this feature as it is, and then providing an
encouraged way to get both behaviors.  Probably "use v5.28" and probably "use
feature ':puce-subroutines'".

> No.  We left the documentation free of such reservation on the grounds
> that we'd already ruled out doing the stupid thing, and it's not looking
> any less stupid today.

Maybe I should say nothing, but I wish "stupid" had been replaced by "ill
advised," or something else more clearly reflective of a passing, rather than
essential, problem with the person making the suggestion.  I may simply be over
sensitive at the moment, though, due to jet lag and lack of sleep.

Nonetheless, I agree that changing the behavior of the signatures feature in a
way contrary to the spirit of "but we warned you!" would be ill advised.
Thanks for taking the time to patiently convince me.


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