Novità in Fedora 40 per gli sviluppatori
PyTorch
Fedora 40 è la prima versione di Fedora a fornire PyTorch, un framework di machine learning basato sulla libreria Torch, utilizzato per applicazioni come la computer vision e l’elaborazione del linguaggio naturale. Originariamente sviluppato da Meta AI, oggi fa parte della Linux Foundation. Si tratta di un software libero e open-source rilasciato sotto la licenza BSD modificata.
Fornire PyTorch come pacchetto Fedora significa che gli utenti possono ora utilizzare DNF per l’installazione invece di pip. La versione iniziale fornita in Fedora 40 è la 2.1.2. Per installarlo, eseguire il comando dnf install python-torch.
Per iniziare a utilizzare PyTorch, consulta la documentazione ufficiale. Chiunque sia specificamente interessato a PyTorch su Fedora — sviluppatori, pacchettizzatori, utenti finali e così via — può unirsi al PyTorch Fedora Special Interest Group.
PHP 8.3
Lo stack per l’interprete del linguaggio di programmazione PHP è stato aggiornato alla versione 8.3, che include numerose correzioni di bug e miglioramenti. Tra i cambiamenti più rilevanti figurano:
-
Tipizzazione esplicita delle costanti di classe
-
Recupero dinamico delle costanti di classe
-
Nuovo attributo [`[\Override]`]
-
Clonazione profonda delle proprietà in sola lettura (readonly)
-
Nuova funzione`json_validate()`()
-
Nuovo metodo`Randomizer::getBytesFromString()`
-
Il linter da riga di comando supporta più file
Per l’elenco completo degli aggiornamenti, consultare le note di rilascio ufficiali.
Golang 1.22
Fedora 40 fornisce Golang versione 1.22. Consulta le note di rilascio ufficiali per l’elenco completo delle modifiche.
Ritiro di Python 3.7
A partire da questo rilascio, la versione 3.7 di Python è considerata ritirata senza sostituzione, essendo stata dichiarata End of Life a partire da giugno 2023.
LLVM 18
Tutti i sottoprogetti LLVM sono stati aggiornati alla versione 18, il che comporta una modifica della versione soname per le librerie llvm. Sono stati aggiunti i pacchetti di compatibilità clang17, llvm17 e lld17 per garantire che i pacchetti che attualmente dipendono dalle versioni 17 delle librerie clang e llvm continuino a funzionare.
Altre modifiche degne di nota includono:
-
clang emetterà DWARF-5 per impostazione predefinita invece di DWARF-4. Questo riflette il comportamento predefinito dell’upstream. Fedora ha utilizzato DWARF-4 come standard nelle ultime versioni a causa del bug riportato in https://bugzilla.redhat.com/show_bug.cgi?id=2064052.
-
I pacchetti di compatibilità ora includeranno lo stesso contenuto del pacchetto principale. Nelle versioni precedenti, i pacchetti di compatibilità contenevano solo librerie e header, mentre i binari e gli altri contenuti venivano rimossi. Questi pacchetti saranno supportati per l’uso come dipendenze per altri pacchetti RPM, ma non per l’utilizzo generico da parte degli utenti finali. Gli utenti Fedora dovrebbero utilizzare Clang/LLVM 18.
-
I pacchetti di compatibilità aggiunti per Fedora 40 verranno ritirati prima della creazione del ramo (branch) di Fedora 41.
-
Abiliteremo Fat LTO in redhat-rpm-config se questa funzionalità sarà completata in tempo per il rilascio di LLVM 18 upstream. Fat LTO è una funzionalità che consente al compilatore di produrre librerie contenenti sia il bitcode LTO sia il tradizionale codice binario ELF, in modo che le librerie possano essere collegate sia in modalità LTO che non-LTO. Anche gcc supporta questa funzionalità ed è già abilitata in Fedora. In Fedora 39 e versioni precedenti, con LTO abilitato, clang produce binari contenenti solo bitcode LTO; di conseguenza, è necessario eseguire uno script di post-elaborazione (brp-llvm-compile-to-elf) sulle librerie per convertirle in codice ELF affinché possano essere utilizzate da altri pacchetti. L’abilitazione di Fat LTO consente al Progetto Fedora di rimuovere questo script e semplificare il processo di compilazione.
Vedere le note di rilascio a monte per i dettagli.
Aggiornamenti della toolchain GNU
La GNU Compiler Collection, le GNU Binary Utilities, la GNU C Library e il GNU Debugger costituiscono la parte centrale della GNU Toolchain; è utile per i nostri utenti che la transizione di questi componenti avvenga come un’implementazione completa in occasione del rilascio di una nuova versione di Fedora.
I componenti della GNU Toolchain (gcc, glibc, binutils, gdb) sono stati aggiornati alle seguenti versioni in Fedora 40:
-
Versione di GCC 14.0 (note di rilascio)
-
binutils version 2.41 (release notes)
-
glibc 2.39 (note di rilascio)
-
gdb 14.1 (release notes)
Boost 1.83
Fedora 40 include Boost 1.83. Per ulteriori informazioni, consulta le https://www.boost.org/users/history/version_1_83_0.html[note di rilascio ufficiali].
Ruby 3.3
Il linguaggio Ruby è stato aggiornato alla versione 3.3 in Fedora 40, rispetto alla versione 3.2 fornita nella precedente release di Fedora. La nuova versione introduce un nuovo parser chiamato Prism, utilizza Lrama come generatore di parser, aggiunge un nuovo compilatore JIT scritto interamente in Ruby chiamato RJIT e offre numerosi miglioramenti delle prestazioni, in particolare per YJIT.
Per tutti i dettagli, consulta i upstream NEWS e annuncio del rilascio.
java-21-openjdk come JDK di sistema
Il JDK di sistema è stato aggiornato dalla versione 17 alla versione 21 in Fedora 40.
Per ulteriori informazioni su Java 21, consulta le note di rilascio di JDK 21 e la guida alla migrazione.
Vedere anche la pagina della modifica per una breve FAQ su questo cambiamento.
Ritiro di Pipenv
A partire da questo rilascio, pipenv non è più pacchettizzato in Fedora ed è considerato obsoleto; pertanto, potrebbe essere rimosso durante il processo di avanzamento di versione.
I sviluppatori che hanno ancora necessità di utilizzare pipenv possono installarlo direttamente tramite pip con il comando pip install --user pipenv.
Want to help? Learn how to contribute to Fedora Docs ›