总是C扩展(即使在PyPy上)?

我正在为Python编写一个文档API我打电话给Python Docs,我注意到几乎所有的内置函数都不能被我的静态分析套件访问,因为它们几乎都是C模块。 据我记忆,我不能想到这个规则的任何例外。

我的问题的第一部分很简单,是一个内置的模块是否预先假定为CPython中的C扩展?

假设这可能是这样的话,我编译了一个新的pypy运行时,并尝试使用我的项目与来自pypy的内置插件。 我很惊讶地发现这也不起作用。

如果PyPy模块是纯Python,为什么不提供AST对象? 这是PyPy托管在JIT上的副作用吗?


PyPy是两部分 - Python解释器和翻译工具链。

翻译工具链将解释器从RPython转换/“编译”为机器代码。

因此,虽然PyPy是用Python的一个子集编写的,但在使用它时不是Python。

您应该阅读PyPy Parser文档的编译器部分,并且这篇博客文章描述了PyPy中的AST功能将镜像CPython中的那些功能。

链接地址: http://www.djcxy.com/p/58545.html

上一篇: ins always C extensions (even on PyPy)?

下一篇: Type Juggling and Booleans