[Python-Dev] PEP 550 v4

Ivan Levkivskyi levkivskyi at gmail.com
Wed Sep 6 08:58:18 EDT 2017

On 6 September 2017 at 11:13, Nathaniel Smith <njs at pobox.com> wrote:

> On Wed, Sep 6, 2017 at 1:49 AM, Ivan Levkivskyi <levkivskyi at gmail.com>
> wrote:
> > Normal generators fall out from this "scheme", and it looks like their
> > behavior is determined by the fact that coroutines are implemented as
> > generators. What I think miht help is to add few more motivational
> examples
> > to the design section of the PEP.
> Literally the first motivating example at the beginning of the PEP
> ('def fractions ...') involves only generators, not coroutines.

And this is probably what confuses people. As I understand, the
tasks/coroutines are among the primary motivations for the PEP,
but they appear somewhere later. There are four potential ways to see the

1) Generators are broken*, and therefore coroutines are broken, we want to
fix the latter therefore we fix the former.
2) Coroutines are broken, we want to fix them and let's also fix generators
while we are at it.
3) Generators are broken, we want to fix them and let's also fix coroutines
while we are at it.
4) Generators and coroutines are broken in similar ways, let us fix them as
consistently as we can.

As I understand the PEP is based on option (4), please correct me if I am
Therefore maybe this should be said more straight,
and maybe then we should show _in addition_ a task example in rationale,
show how it is broken,
and explain that they are broken in slightly different ways (since expected
semantics is a bit different).


* here and below by broken I mean "broken" (sometimes behave in
non-intuitive way, and lack some functionality we would like them to have)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20170906/2b13ac6e/attachment.html>

More information about the Python-Dev mailing list