历时五年,Cython 3.0 正式发布


经过近五年的漫长岁月,Cython 3.0 宣布正式发布。

公告称,“Cython 3.0 在各个方面都优于之前的任何其他 Cython 版本。它更加 Python 化,与 C 和 C++ 集成得更好,支持更多 Python 实现和配置,提供了许多很棒的新语言特性。更快、更安全、更易用。It's simply better。”

新的语言特性包括:

  • Python 3 默认语法和语义
  • 纯 Python 代码中的 Cython 类型注释
  • 自动 NumPy ufunc 生成
  • 快速 @dataclass 和 @total_ordering 扩展类型
  • 默认情况下 C 函数中的安全异常传播
  • Cython 代码中的 Unicode 标识符

Cython 3 在许多方面对 Cython 进行了清理和现代化。它放弃了对早已过时的 Python 2 的支持,增加了对较新的 Python 功能(最高可达 Python 3.12)的支持,并扩展了纯 Python 模式(pure python)的使用。“简而言之,这允许将更广泛的 Python 代码编译为优化的 C 代码。”

根据介绍,纯 Python 模式允许 Python 开发人员在 Cython 上使用现有的 Python linting 和代码分析工具。一直以来,Cython 都在使用自己独特的语法,即 Python 语法和 C 类型声明语法的混合体,这使得 Cython 很难使用 Python 工具进行故障排除。随着时间的推移,Cython 开始提供一种与传统 Python 语法完全兼容的替代语法,称为纯 Python 模式。绝大多数 Cython 函数现在都以纯 Python 模式显示,包括调用外部 C 库的函数。

另一个主要改进是 NumPy 支持。Cython 3 增加了直接在 Cython 中编写 NumPy ufuncs 的功能,以便可以快速轻松地将用 Cython 编写的简单数值函数应用于 NumPy 数据结构的全部内容。

Cython 的内部结构也进行了重新设计,以更好地配合 Python 内部结构的不断变化。例如,Python 的新"limited API"公开了 Python API 的一个有保证的稳定子集,专门用于 Cython 经常 hook Python 解释器的工作类型。Cython 3 已初步支持 limited API,且这种支持还在不断增加。InfoWorld 指出,从长远来看,这意味着为某一版本 Python 构建的 Cython 扩展模块可以在未来版本的 Python 中运行,而无需重新编译。

更多详情可查看官方公告。


相關推薦

2022-12-02

U-Boot 是一个开源引导加载程序,主要用于嵌入式系统。它支持多种不同的结构,包括 PPC、ARM、AVR32、MIPS、x86、68k、Nios 与 MicroBlaze。 此前,U-Boot 引导加载程序只支持 UDP 协议,仅限通过 tftp(简单文件传输协议) 或 NFS(网络文

2023-01-08

团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技术体系构建。 [PDMan-v2] --> [CHINER-v3] --> [PDManer-v4],连

2023-03-27

团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技术体系构建。 [PDMan-v2] --> [CHINER-v3] --> [PDManer-v4],连

2023-06-08

团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技术体系构建。 [PDMan-v2] --> [CHINER-v3] --> [PDManer-v4],连

2023-11-27

团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技术体系构建。 [PDMan-v2] --> [CHINER-v3] --> [PDManer-v4],连

2023-02-26

团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技术体系构建。 [PDMan-v2] --> [CHINER-v3] --> [PDManer-v4],连

2023-07-23

多人团队协作支持,点击这里了解 [PDManer元数建模-v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用React+Electron+Java技术体系构建。 [PDMan-v2] --> [CHINER-v3] --> [PDManer-v4],连

2023-03-20

团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技术体系构建。 [PDMan-v2] --> [CHINER-v3] --> [PDManer-v4],连

2023-09-05

发框架。从零开始构建,有自己的标准规范与开放生态(历时五年,具备全球第二级别的生态规模)。与其他框架相比,解决了两个重要的痛点:启动慢,费内存。 关键记事: 2021年1月,正式对外开源 2022年7月,建立官网

2023-10-08

发框架。从零开始构建,有自己的标准规范与开放生态(历时五年,具备全球第二级别的生态规模)。更多内容详见:《中国这么多 Java 开发者,应该诞生出生态级应用开发框架》 有什么特点? 启动快 5 ~ 10 倍。 (更

2023-09-01

发框架。从零开始构建,有自己的标准规范与开放生态(历时五年,已有全球第二级别的生态规模)。与其他框架相比,解决了两个重要的痛点:启动慢,费内存。 关键记事: 2021年1月,正式对外开源 2022年7月,建立官网

2023-08-24

发框架。从零开始构建,有自己的标准规范与开放生态(历时五年,已有全球第二级别的生态规模)。与其他框架相比,它解决了两个重要的痛点:启动慢,费内存。2023年6月,Maven 单月下载量突破200万。 解决痛点? 由于Solon&

2022-05-26

现的错误。此外,此版本的 wheels 是使用最近发布的 Cython 0.29.30 构建的,它应该可以修复报告的调试问题。 此版本支持的 Python 版本为 3.8-3.10。Mac wheels 现在基于 OS X 10.15,而不是以前 NumPy 发布周期中使用的 10.6。 此版

2023-09-08

响大多数用户,因为它是内部细节变更,但可能会导致 Cython 生成的代码出现问题) …… 详情。