Изменения в 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:
-
gcc версии 14.0 (примечания к релизу)
-
binutils версии 2.41 ([примечания к выпуску)
-
glibc 2.39 (примечания к релизу)
-
gdb 14.1 (примечания к релизу)
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.
Want to help? Learn how to contribute to Fedora Docs ›