генераторы поддерживаются в RPython? - PullRequest
9 голосов
/ 08 июня 2011

Поддерживаются ли генераторы в RPython, потому что я только что прочитал в документации PyPy что-то, что они не

PyPy Doc - Руководство по кодированию

Кажется, что их легко перевести на статически типизированный язык, такой как C, потому что каждый шаг генерации генерируется при вызове функции.

Может кто-нибудь объяснить, почему? Или пролить немного света на эту тему. В настоящее время я пытаюсь изучить основы написания безопасного кода RPython.

1 Ответ

21 голосов
/ 08 июня 2011

Генераторы не поддерживаются просто потому, что они не были нужны в то время. Проблема на самом деле не в том, чтобы иметь примерно эквивалентную функциональность в C, а в том, чтобы поддерживать генератор в живом состоянии. Поскольку RPython-кадры транслируются в C-кадры, для поддержки полных генераторов Python вам потребуется некоторая поддержка для получения C-кадра и его копирования в другое место или какой-то эквивалент.

Это было просто трудно / не нужно и не было реализовано.

...