Всегда ли встроенные в Python расширения C (даже в PyPy)? - PullRequest
7 голосов
/ 30 марта 2012

Я работаю над API документации для Python. Я звоню Документы Python , и я заметил, что почти все встроенные функции не доступны для моего пакета статического анализа, потому что онипочти исключительно модули C.Насколько я помню, я не могу придумать никаких исключений из этого правила.

Первая часть моего вопроса проста: предполагает ли встроенный модуль C-расширение в CPython?

Предполагая, что это может иметь место, я скомпилировал свежую среду выполнения Pypy и попытался использовать свой проект против встроенных программ из Pypy.Я был удивлен, обнаружив, что это тоже не сработало.

Почему модули PyPy не доступны для объектов AST, если они являются чистым Python?Это побочный эффект PyPy, размещенного на JIT?

1 Ответ

4 голосов
/ 30 марта 2012

PyPy состоит из двух частей - интерпретатора Python и цепочки инструментов перевода.

Цепочка инструментов перевода переводит / «компилирует» интерпретатор из RPython в машинный код.

Итак, хотя PyPy написанна языке, который является подмножеством Python, это не Python, когда вы его используете.

Вы должны прочитать раздел компилятора документации PyPy Parser и этого сообщения в блоге это говорит о том, что функции AST в PyPy отражают функции в CPython.

...