对于开发者的Fedora 40 中的变化
PyTorch
Fedora 40 是第一个提供 PyTorch 的 Fedora 版本,PyTorch 是一个基于 Torch 库的机器学习框架,用于计算机视觉和自然语言处理等应用,最初由 Meta AI 开发,现在是 Linux 基金会旗下的一部分。它是在修改后的 BSD 许可证下发布的免费开源软件。
将 PyTorch 作为 Fedora 软件包提供,意味着用户现在可以使用 DNF 代替 pip 进行安装。Fedora 40 提供的初始版本是 2.1.2。要安装,请运行 dnf install python-torch
。
要开始使用 PyTorch,请参阅官方文档。那些对 Fedora 中的 PyTorch 特别感兴趣的人,如开发者、打包者、末端用户等,可以加入PyTorch Fedora 特殊兴趣组。
PHP 8.3
PHP 编程语言解释器堆栈已升级到 8.3 版,该版本提供了多个错误修复和增强功能。值得注意的变化包括:
-
指定类常量的显式类型
-
动态类常量获取
-
新的
#[\Override]
属性 -
只读属性的深度拷贝
-
新的 `json_validate()`函数
-
新的 `Randomizer::getBytesFromString()`方法
-
命令行linter支持多文件
有关更新的全部内容,请参阅 上游发行说明。
Golang 1.22
Fedora 40 提供 Golang 1.22 版本。请参阅上游发布说明以获取完整的变更列表。
LLVM 18
所有 LLVM 子项目都已更新至第 18 版,其中包括 llvm 库的 soname 版本变更。新增了兼容包 clang17、llvm17 和 lld17,以确保目前依赖于 clang 和 llvm 第 17 版库的软件包能够继续工作。
其他显著变化包括:
-
clang 将默认发射 DWARF-5,而不是 DWARF-4。这与上游的默认值一致。由于 https://bugzilla.redhat.com/show_bug.cgi?id=2064052 的原因,Fedora 在过去几个版本中一直使用 DWARF-4 作为默认值。
-
现在,兼容性软件包将包含与主软件包相同的内容。在以前的版本中,兼容性软件包只包含库和头文件,二进制文件和其他内容都被删除了。这些软件包将被支持作为其他 RPM 软件包的依赖包使用,但最终用户不能在通常情况下使用。Fedora 用户应使用 Clang/LLVM 18。
-
为 Fedora 40 添加的兼容性软件包将在 Fedora 41 分支之前退役。
-
如果该功能能在上游 LLVM 18 版本发布时完成,我们将在 redhat-rpm-config 中启用 Fat LTO。Fat LTO 是一项允许编译器生成包含 LTO 位码和传统 ELF 二进制码的库的功能,这样这些库就可以在 LTO 模式和非 LTO 模式下链接。在 Fedora 39 及更早版本中,启用 LTO 后,clang 生成的二进制文件只有 LTO 位码,因此我们需要在库上运行一个后处理脚本(brp-llvm-compile-to-elf),将其转换为 ELF 代码,以便其他软件包使用。启用 Fat LTO 可以让 Fedora 项目移除该脚本并简化编译过程。
参阅 上游发行说明以获取更多细节。
Boost 1.83
Fedora 40 包含 Boost 1.83。更多信息,请参阅上游发布说明。
Ruby 3.3
The Ruby language has been updated to version 3.3 in Fedora 40, up from version 3.2 provided in the previous Fedora release. The new version adds a new parser called Prism, uses Lrama as a parser generator, adds a new pure-Ruby JIT compiler called RJIT, and provides many performance improvements, especially YJIT.
Pipenv 退役
从这个版本开始,pipenv 不再打包在 Fedora 中,因此在升级过程中可能会被移除。
需要继续使用 pipenv 的开发人员可以使用 pip install --user pipenv
直接从 pip 安装。
Want to help? Learn how to contribute to Fedora Docs ›