[Python-Dev] PEP 492 vs. PEP 3152, new round (original) (raw)

Nathaniel Smith njs at pobox.com
Thu Apr 30 01:35:47 CEST 2015


On Wed, Apr 29, 2015 at 3:46 PM, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:

Yury Selivanov wrote:

I'm not sure why Greg is pushing his Grammar idea so aggressively. Because I believe that any extra complexity in the grammar needs a very strong justification. It's complexity in the core language, like a new keyword, so it puts a burden on everyone's brain. Saying "I don't think anyone would ever need to write this, therefore we should disallow it" is not enough, given that there is a substantial cost to disallowing it. If you don't think there's a cost, consider that we both seem to be having trouble predicting the consequences of your proposed syntax, and you're the one who invented it. That's not a good sign!

FWIW, now that I've seen the precedence table in the updated PEP, it seems really natural to me: https://www.python.org/dev/peps/pep-0492/#updated-operator-precedence-table According to that, "await" is just a prefix operator that binds more tightly than any arithmetic operation, but less tightly than indexing/funcall/attribute lookup, which seems about right.

However, if what I just wrote were true, then that would mean that "await -foo" and "await await foo" would be syntactically legal (though useless). The fact that they apparently are not legal means that in fact there is still some weird thing going on in the syntax that I don't understand. And the PEP gives no further details, it just suggests I go read the parser generator source.

My preference would be that the PEP be updated so that my one-sentence summary above became correct. But like Guido, I don't necessarily care about the exact details all that much. What I do feel strongly about is that whatever syntax we end up with, there should be some accurate human-readable description of what it is. AFAICT the PEP currently doesn't have that.

-n

-- Nathaniel J. Smith -- http://vorpus.org



More information about the Python-Dev mailing list