[Python-Dev] PEP 492 vs. PEP 3152, new round
Alexander Walters
tritium-list at sdamon.com
Fri May 1 06:01:53 CEST 2015
Out of curiosity, how much of a breaking change would making unary
operators stack arbitrarily be?
On 4/30/2015 23:57, Nathaniel Smith wrote:
>
> On Apr 30, 2015 8:40 PM, "Guido van Rossum" <guido at python.org
> <mailto:guido at python.org>> wrote:
> >
> > On Thu, Apr 30, 2015 at 8:30 PM, Nathaniel Smith <njs at pobox.com
> <mailto:njs at pobox.com>> wrote:
> >>
> >> The actual effect of making "await" a different precedence is to
> resolve the ambiguity in
> >>
> >> await x ** 2
> >>
> >> If await acted like -, then this would be
> >> await (x ** 2)
> >> But with the proposed grammar, it's instead
> >> (await x) ** 2
> >> Which is probably correct, and produces the IMHO rather nice
> invariant that "await" binds more tightly than arithmetic in general
> (instead of having to say that it binds more tightly than arithmetic
> *except* in this one corner case...)
> >
> > Correct.
> >>
> >> AFAICT these and the ** case are the only expressions where there's
> any difference between Yury's proposed grammar and your proposal of
> treating await like unary minus. But then given the limitations of
> Python's parser plus the desire to disambiguate the expression above
> in the given way, it becomes an arguably regrettable, yet inevitable,
> consequence that
> >>
> >> await -fut
> >> await +fut
> >> await ~fut
> >> become parse errors.
> >
> > Why is that regrettable? Do you have a plan for overloading one of
> those on Futures? I personally consider it a feature that you can't do
> that. :-)
>
> I didn't say it was regrettable, I said it was arguably regrettable.
> For proof, see the last week of python-dev ;-).
>
> (I guess all else being equal it would be nice if unary operators
> could stack arbitrarily, since that really is the more natural parse
> rule IMO and also if things had worked that way then I would have
> spent this thread less confused. But this is a pure argument from
> elegance. In practice there's obviously no good reason to write "await
> -fut" or "-not x", so meh, whatever.)
>
> -n
>
>
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: https://mail.python.org/mailman/options/python-dev/tritium-list%40sdamon.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20150501/a24d73d0/attachment.html>
More information about the Python-Dev
mailing list