È stata rilasciata una nuova versione del linguaggio di programmazione AWK dal progetto GNU — Gawk 5.2.0. AWK è stato sviluppato negli anni '70 e non ha subito significativi cambiamenti dalla metà degli anni '80, periodo in cui è stata definita la struttura principale del linguaggio, cosa che ha consentito di mantenere la stabilità e la semplicità del linguaggio negli ultimi decenni. Nonostante l'età avanzata, AWK è ancora ampiamente utilizzato dagli amministratori per svolgere task di routine legati all'analisi di diversi tipi di file di testo e alla generazione di statistiche semplici.
Principali modifiche:
- Aggiunto il supporto sperimentale per il gestore di memoria pma (persistent malloc), che consente di conservare i valori delle variabili, degli array e delle funzioni utente tra diverse esecuzioni di awk.
- Il supporto per l'aritmetica ad alta precisione, realizzato grazie alla libreria MPFR, è stato rimosso sotto la responsabilità del mantenitore di GNU Awk e trasferito a un appassionato esterno. Si osserva che l'implementazione della modalità MPFR in GNU Awk è considerata un errore. Qualora cambiasse la situazione di manutenzione, si prevede di rimuovere completamente questa funzionalità da GNU Awk.
- Aggiornati i componenti dell'infrastruttura di build Libtool 2.4.7 e Bison 3.8.2.
- Modificata la logica di confronto dei numeri, che è stata allineata alla logica utilizzata nel linguaggio C. Per gli utenti, la modifica riguarda principalmente il confronto dei valori Infinity e NaN con numeri normali.
- Introdotta la possibilità di utilizzare la funzione hash FNV1-A negli array associativi, attivabile impostando la variabile ambiente AWK_HASH su "fnv1a".
- Rimosso il supporto per la build utilizzando CMake (il codice di supporto CMake non è stato utilizzato e non è stato aggiornato per cinque anni).
- Aggiunta la funzione mkbool() per creare valori booleani, che sono numeri, ma vengono elaborati come tipo Boolean.
- In modalità BWK, attivando il flag "—traditional", il supporto per le espressioni per determinare gli intervalli, precedentemente abilitate con l'opzione "-r" ("—re-interval"), è abilitato per default.
- Nell'estensione rwarray sono state proposte nuove funzioni writeall() e readall() per scrivere e leggere simultaneamente tutte le variabili e gli array.
- Aggiunto lo script gawkbug per la segnalazione di informazioni sugli errori.
- È garantita la terminazione immediata in caso di errori di sintassi, risolvendo i problemi con l'uso degli strumenti per il fuzzing.
- È stata interrotta la supporto per i sistemi operativi OS/2 e VAX/VMS.
Fonte: opennet.ru
