版本 0.61.2 (2025年4月7日)

这是一个维护版本,增加了对 NumPy 2.2 的支持,并修复了针对 0.61.0 报告的一些回归问题。

亮点

支持 NumPy 2.2

Numba 现在支持 NumPy 2.2,并包含以下显著更改:

  • np.empty(0) 不再能被视为布尔值。对于依赖此行为的代码,这是一个破坏性变更。以下代码将引发 ValueError 错误。

    import numpy as np
    if np.empty(0):
        print("This will not be printed")
    
  • 由于时间单位未定义,通用时间差(generic timedeltas)不再能被哈希。

  • 从 NumPy 2.2 开始,在 Numba 编译的代码中计算的 numpy.timedelta64numpy.datetime64 实例的哈希值与 NumPy 自身的哈希值不匹配。在 NumPy 2.2 之前,numpy.timedelta64numpy.datetime64 实例的 NumPy 哈希值与其整数值表示等效。从 NumPy 2.2 开始,它们的哈希值与内置 datetime 模块中等效类型的哈希值相同,Numba 不会复制此行为。

  • np.trimzeros 现在也会修剪 \0 值。

(PR-#9919)

错误修复

修复 numba.core.types 的静态类型检查器支持

Numba 0.61 引入拆分类型系统后,导致动态类型行为与静态类型检查器不兼容。为解决此问题,我们为 numba.core.types 添加了一个类型存根文件(.pyi),提供显式类型注解。

(PR-#9945)

修复数组切片赋值的代码生成问题。

数组切片赋值的代码生成无意中被写成特定于 CPU 目标。现在已纠正并重构,以提供一个可在任何地方安全使用的“通用”目标版本,并提供一个 @overload-able 存根,允许目标根据需要实现自定义版本。

(PR-#9972)

拉取请求

  • PR #9919:支持 NumPy 2.2 (kc611)

  • PR #9920:为 Numba conda 包添加 win-64 构建器 (swap357 esc)

  • PR #9940:添加用于构建 win-64 Numba wheels 的 GHA 工作流 (swap357)

  • PR #9945:为 numba.core.types 添加类型存根以帮助静态类型检查器。 (sklam)

  • PR #9964:移除 NumPy 的上限限制 (esc)

  • PR #9965:更新 win-64 conda 构建器测试矩阵 (swap357)

  • PR #9972:修复切片赋值中的错误处理问题。 (stuartarchibald)

  • PR #9999:添加 0.61.1rc1 的发布说明和版本表条目 (kc611)

  • PR #10002:release0.61.1 的 GHA 工作流及其他精选更新 (sklam swap357 kc611)

作者