Changements dans Fedora 40 pour les développeurs

PyTorch

Fedora 40 est la première version de Fedora fournissant PyTorch, un framework d’apprentissage automatique basé sur la bibliothèque Torch, utilisé pour des applications telles que la vision par ordinateur et le traitement automatique des langues. Torch a été développé à l’origine par Meta AI, et est désormais sous l’égide de la Linux Foundation. Il s’agit de logiciels libres et open-source, publiés sous la licence BSD modifiée.

Le fait que PyTorch soit fourni sous la forme d’un paquet Fedora signifie que vous pouvez désormais utiliser DNF pour l’installer, au lieu de pip. La version initiale fournie dans Fedora 40 est la version 2.1.2. Pour l’installer, exécutez dnf install python-torch.

Pour bien débuter avec PyTorch, consultez la documentation officielle. Les personnes particulièrement intéressées par PyTorch dans Fedora – pour le développement, l’empaquetage, l’utilisation et autre – peuvent rejoindre le PyTorch Fedora Special Interest Group.

PHP 8.3

La pile de l’interprète PHP a été mise à jour vers la version 8.3, qui contient de nombreuses corrections de bugs et améliorations. Les changements à noter comprennent :

  • le typage explicite des constantes de classe ;

  • la récupération dynamique des constantes de classe ;

  • le nouvel attribut #[\Override] ;

  • le deep-cloning des propriétés readonly ;

  • la nouvelle fonction json_validate() ;

  • la nouvelle méthode Randomizer::getBytesFromString() ;

  • le linter en ligne de commande qui prend en charge plusieurs fichiers à la fois.

Pour en savoir plus sur les nouveautés de la mise à jour, consultez les notes de version upstream.

Golang 1.22

Fedora 40 fournit Golang version 1.22. Consultez les notes de version upstream pour la liste complète des changements.

Retrait de Python 3.7

À partir de cette version de Fedora, Python 3.7 est considéré comme abandonné, sans solution de remplacement, puisqu’il est considéré comme étant en fin de vie depuis juin 2023.

LLVM 18

Tous les sous-projets LLVM ont été mis à jour vers la version 18, qui inclut un changement de version soname pour les bibliothèques llvm. Les paquets de compatibilité clang17, llvm17 et lld17 ont été ajoutés afin de s’assurer que les paquets qui dépendent actuellement des bibliothèques clang et llvm en version 17 continuent de fonctionner.

Les autres changements à noter comprennent :

  • clang émettra du DWARF-5 par défaut, au lieu de DWARF-4. Cela correspond au comportement upstream. Fedora a été contraint d’utiliser DWARF-4 par défaut pendant plusieurs versions en raison de https://bugzilla.redhat.com/show_bug.cgi?id=2064052.

  • Les paquets de compatibilité incluront désormais le même contenu que le paquet principal. Dans les versions précédentes de Fedora, les paquets de compatibilité contenaient uniquement les bibliothèques et les en-têtes, les binaires et autres fichiers étaient retirés. Ces paquets seront pris en charge en tant que dépendances d’autres paquets RPM, mais pas pour l’utilisation par l’utilisateur final. Nous recommandons aux utilisateurs de Fedora d’utiliser Clang/LLVM 18.

  • Les paquets de compatibilité ajoutés pour Fedora 40 seront retirés avant la création de la branche Fedora 41.

  • Nous allons activer Fat LTO dans redhat-rpm-config, si cette fonctionnalité est terminée à temps pour la sortie upstream de LLVM 18. Fat LTO est une fonctionnalité qui permet au compilateur de produire des bibliothèques qui contiennent du bitcode LTO en plus du code binaire ELF traditionnel, afin que les bibliothèques puissent être liées à la fois en mode LTO et non LTO. Cette fonctionnalité est également prise en charge dans GCC et activée dans Fedora. Avant Fedora 40, lorsque le mode LTO était activé, clang produisait des binaires contenant uniquement du bitcode LTO. Nous devions donc exécuter un script post-traitement (brp-llvm-compile-to-elf) sur les bibliothèques afin de les convertir en code ELF pour qu’elles puissent être utilisées par d’autres paquets. Activer Fat LTO permet donc au Fedora Project de supprimer ce script et de simplifier le processus de compilation.

Consultez les notes de version upstream pour connaître les détails.

Mises à jour de la chaîne d’outils GNU

La GNU Compiler Collection, les GNU Binary Utilities, la GNU C Library et le GNU Debugger sont au centre de la suite d’outils GNU. Il est utile pour nos utilisateurs que nous mettions à jour tous ces composants à la fois lorsque nous créons une nouvelle version de Fedora.

Les composants de la suite d’outils GNU (gcc, glibc, binutils, gdb) ont été mis à jour dans Fedora 40 vers les versions suivantes :

Boost 1.83

Fedora 40 inclut Boost 1.83. Pour plus d’informations, consultez les notes de version upstream.

Ruby 3.3

Ruby a été mis à jour vers la version 3.3 avec Fedora 40. La version de Fedora précédente fournissait la version 3.2. Cette nouvelle version comprend Prism (un nouveau parser) et RJIT (un nouveau compilateur JIT écrit intégralement en Ruby), utilise Lrama en tant que générateur de parser et fournit de nombreuses améliorations des performances, particulièrement grâce à YJIT.

Pour tout savoir sur cette nouvelle version de Ruby, consultez le fichier NEWS upstream et l’annonce.

java-21-openjdk en tant que JDK du système

Le JDK du système a été mis à jour de la version 17 vers la version 21 dans Fedora 40.

Pour plus d’informations à propos de Java 21, consultez les notes de version du JDK 21 et le guide de migration.

Consultez également la page Changes pour une courte FAQ à propos de ce changement.

Retrait de pipenv

À partir de cette version de Fedora, pipenv ne fait plus partie des paquets disponibles et il est désormais considéré comme obsolète. Il pourrait donc être supprimé pendant le processus de mise à jour.

Les développeurs ayant toujours besoin de pipenv peuvent l’installer à l’aide de pip avec pip install --user pipenv.