Documentation for a newer release is available. View Latest

Изменения в Fedora 40 для разработчиков

PyTorch

Fedora 40 — это первый релиз Fedora, в котором предоставляется PyTorch, фреймворк для машинного обучения на основе библиотеки Torch, используемый для таких приложений, как компьютерное зрение и обработка естественного языка. Он был изначально разработан Meta AI, а теперь является частью Linux Foundation. Это свободное программное обеспечение с открытым исходным кодом, распространяемое под модифицированной лицензией BSD.

Предоставление PyTorch в качестве пакета Fedora означает, что пользователи теперь могут устанавливать его с помощью DNF вместо pip. Начальная версия, предоставляемая в Fedora 40, — 2.1.2. Для установки выполните dnf install python-torch.

Чтобы начать работу с PyTorch, см. официальную документацию. Те, кто особенно заинтересован в PyTorch в Fedora — разработчики, упаковщики, конечные пользователи и т.д. — могут присоединиться к группе по особым интересам PyTorch в Fedora.

PHP 8.3

Стек интерпретатора языка программирования PHP обновлён до версии 8.3, которая содержит множество исправлений ошибок и улучшений. Заметные изменения включают:

  • Явная типизация констант классов

  • Динамическое получение констант классов

  • Новый атрибут #[\Override]

  • Глубокое клонирование readonly-свойств

  • Новая функция json_validate()

  • Новый метод Randomizer::getBytesFromString()

  • Линтер командной строки поддерживает несколько файлов

Полный объём обновлений см. в примечаниях к релизу вышестоящего источника.

Golang 1.22

Fedora 40 предоставляет Golang версии 1.22. Полный список изменений см. в примечаниях к релизу вышестоящего источника.

Вывод из эксплуатации Python 3.7

Начиная с этого релиза, версия Python 3.7 считается выведенной из эксплуатации без замены, поскольку она считается устаревшей (End of Life) с июня 2023 года.

LLVM 18

Все подпроекты LLVM обновлены до версии 18, которая включает изменение версии soname для библиотек llvm. Добавлены пакеты совместимости clang17, llvm17 и lld17, чтобы гарантировать, что пакеты, которые в настоящее время зависят от библиотек clang и llvm версии 17, продолжат работать.

Другие примечательные изменения включают:

  • clang по умолчанию будет генерировать DWARF-5 вместо DWARF-4. Это соответствует настройкам по умолчанию вышестоящего источника. Fedora использовала DWARF-4 по умолчанию в последних нескольких релизах из-за https://bugzilla.redhat.com/show_bug.cgi?id=2064052.

  • Пакеты совместимости теперь будут включать то же содержимое, что и основной пакет. В предыдущих релизах пакеты совместимости содержали только библиотеки и заголовочные файлы, а двоичные файлы и другое содержимое были удалены. Эти пакеты будут поддерживаться для использования в качестве зависимостей для других RPM-пакетов, но не для общего использования конечными пользователями. Пользователям Fedora следует использовать Clang/LLVM 18.

  • Пакеты совместимости, добавленные для Fedora 40, будут выведены из эксплуатации перед веткой Fedora 41.

  • Мы включим Fat LTO в redhat-rpm-config, если эта функция будет готова к моменту релиза LLVM 18. Fat LTO — это функция, которая позволяет компилятору создавать библиотеки, содержащие LTO-байткод наряду с традиционным двоичным кодом ELF, чтобы библиотеки можно было компоновать как в режиме LTO, так и в режиме без LTO. gcc также поддерживает эту функцию, и она включена в Fedora. В Fedora 39 и старше, при включённом LTO, clang создаёт двоичные файлы только с LTO-байткодом, поэтому нам нужно запускать скрипт постобработки (brp-llvm-compile-to-elf) для библиотек, чтобы преобразовать их в код ELF, чтобы они могли использоваться другими пакетами. Включение Fat LTO позволяет проекту Fedora удалить этот скрипт и упростить процесс сборки.

Обновления инструментария GNU

Коллекция компиляторов GNU, двоичные утилиты GNU, библиотека GNU C и отладчик GNU составляют основную часть инструментария GNU, и для наших пользователей полезно переходить на эти компоненты как на целостную реализацию при выпуске нового релиза Fedora.

Компоненты инструментария GNU (gcc, glibc, binutils, gdb) обновлены до следующих версий в Fedora 40:

Boost 1.83

Fedora 40 включает Boost 1.83. Для получения дополнительной информации см. примечания к релизу вышестоящего источника.

Ruby 3.3

Язык Ruby обновлён до версии 3.3 в Fedora 40, по сравнению с версией 3.2, предоставлявшейся в предыдущем релизе Fedora. Новая версия добавляет новый парсер под названием Prism, использует Lrama в качестве генератора парсеров, добавляет новый JIT-компилятор на чистом Ruby под названием RJIT и предоставляет множество улучшений производительности, особенно YJIT.

java-21-openjdk в качестве системного JDK

Системный JDK обновлён с версии 17 до версии 21 в Fedora 40.

Дополнительную информацию о Java 21 см. в примечаниях к релизу JDK 21 и руководстве по миграции.

Также см. страницу изменения для краткого FAQ об этом изменении.

Вывод из эксплуатации Pipenv

Начиная с этого релиза, pipenv больше не упаковывается в Fedora и помечен как устаревший, поэтому он может быть удалён в процессе обновления.

Разработчики, которым всё ещё требуется использовать pipenv, могут установить его напрямую из pip с помощью pip install --user pipenv.