This adds an explicit "Provisional" status for PEPs, making
it easier to track which PEPs are truly Final, and which
are pending further further public feedback based on
their initially published reference implementations.
It is common to reference to different parts of the specification when
discussing the changes brought about by this PEP. This change makes it
easier to do so by introducing subsections to the main specification.
The characters before the # in a coding declaration line can be spaces, tabs, or form feeds; the escape sequence for a form feed is a `\f`, not a `\v` as is shown here.
- Remove changes to comprehension scope
- Make := in comprehensions assign to containing non-comprehension scope
- Clarify binding precedence (tighter than comma, not at same level as =)
- Remove mention of more complex targets in the future
- Explicitly disallow toplevel :=
- Rewrite section on differences with =, enumerating all of them
- Remove "here's how this could be written without :=" from examples
- Tweak first paragraph of "Syntax and semantics"
- Add "Exception cases" (various explicit prohibitions)
- Clarify that lambda is a containing scope
- Clarify that := and = just don't mix
- Added "Open questions" section
- Added two new rejected alternatives: "Allowing commas to the right"
and "Always requiring parentheses"
- Minor edits
* Start a section on real code
* Correct/clarify "commas to the right" section
* Add Tim and Guido as authors
* Update abstract to mention :=
* Rule out targets conflicting with comprehension loop control
* Add timcode.txt as Appendix A
* Add os.fork() example
* Add TODOs about evaluation order
Competing proposal for PEP 572 that focuses on allowing
augmented assignments as expressions, and treats
"NAME := EXPR" primarily as an explanatory tool for
the updated augmented assignment semantics.