MyPyc:编译类型注释的python到c

2021-02-24 21:56:45

MyPyC是一个编译器,它将MyPy-Annotated,静态键入的键项模块编译为CPython C扩展。目前,我们的主要侧重于通过编译更快地制作痣 - 默认用MyPyc编制的默认Mypy Wheelsare。编译的mypy大约4x速度速度速度较快。

MyPyc编译基本上是使用&#34的Python语言变体;严格"语义。这意味着(其他一些事情):

类在没有__dict __的扩展类中编译为扩展类(很多,但不太喜欢,如果他们使用__slots__)

编译模块可以导入任意Python模块,并从其他Python模块使用编译的模型。通常,MyPyc用于仅用于包含性能瓶颈的模块。

您可以运行编译的模块也正常,解释为PythonModules,因为MyPyC目标有效的Python代码。这意味着可以使用Python Python开发人员工具和调试器。

查看问题Trackerfor For orthing。请在做任何重要工作之前添加评论,表达您对疾病的兴趣,真诚是有重复工作的风险。

请注意,问题跟踪器托管在MyPyC Github项目上,Notwith Mypy本身。

[完成]支持一个smallish但有用的python子集。 专注于编译模块,而该程序的其余部分被解释,并且不确保类型选中。 [Done]支持将多个模块作为单个编译单元(编译模块的ordynamic链接)。 如果没有此模型,则使用较慢的Python级对象,包装器函数和键入键盘名称空间。 [部分完成]为使用不受支持的PythonFeatures而不是崩溃或生成不良代码,为代码生成有用的错误。 更多功能/兼容性工作。 (100%与Python兼容性是明确的反目标,但更多的是我们现在的一个好主意。) [完成]支持编译黑色,这是一个可能有益的工具,可以使用维护者买入。(让我们知道您是否维护另一个Python工具或图书馆,并在与我们合作的情况下是有趣的!) 更多优化! 代码大小尤其削减可能是有价值的,并加快MyPyc编译。