[pypy-dev] Generators in RPython

Armin Rigo arigo at tunes.org
Fri Dec 23 14:46:37 CET 2011


Hi all,

RPython now has support for generators.  The support is minimal for now:

* only pre-Python-2.5 generators: no .send(), no "yield" inside a
"try:finally:" block, etc.

* you cannot use a "for" loop to iterate over a generator-iterator.
You have to use explicitly .next() and catch the StopIteration, for
now.

* two different generators produce generator-iterator objects that the
annotator cannot unify, even if they happen to yield objects of the
same type.  You have to work around that limitation e.g. as shown in
rpython/test/test_generator, test_cannot_merge.

I still hope that this is enough to be useful to the Prolog and
Converge interpreters :-)


A bientôt,

Armin.


More information about the pypy-dev mailing list