Nuova versione dell'interprete GNU Awk 5.2

È stata introdotta una nuova versione dell'implementazione del progetto GNU del linguaggio di programmazione AWK, Gawk 5.2.0. AWK è stato sviluppato negli anni '70 del secolo scorso e non ha subito cambiamenti significativi dalla metà degli anni '80, in cui è stata definita la spina dorsale di base del linguaggio, che gli ha permesso di mantenere la stabilità e la semplicità incontaminate del linguaggio nel passato decenni. Nonostante la sua età avanzata, AWK è ancora utilizzato attivamente dagli amministratori per eseguire lavori di routine relativi all'analisi di vari tipi di file di testo e alla generazione di semplici statistiche risultanti.

Modifiche principali:

  • Aggiunto supporto sperimentale per il gestore di memoria pma (persistent malloc), che consente di salvare i valori di variabili, array e funzioni definite dall'utente tra diverse esecuzioni di awk.
  • Il supporto per l'aritmetica ad alta precisione implementato utilizzando la libreria MPFR è stato tolto dalla responsabilità del manutentore di GNU Awk e trasferito a un appassionato esterno. Si noti che l'implementazione della modalità MPFR in GNU Awk è considerata un bug. Nel caso di un cambiamento di stato mantenuto, il piano è di rimuovere completamente questa funzionalità da GNU Awk.
  • I componenti dell'infrastruttura di assembly Libtool 2.4.7 e Bison 3.8.2 sono stati aggiornati.
  • È stata modificata la logica per il confronto dei numeri, allineandola alla logica utilizzata nel linguaggio C. Per gli utenti, la modifica riguarda soprattutto il confronto dei valori Infinity e NaN con i numeri normali.
  • È possibile utilizzare la funzione hash FNV1-A negli array associativi, che è abilitata quando la variabile di ambiente AWK_HASH è impostata su "fnv1a".
  • Il supporto per la creazione tramite CMake è stato rimosso (il codice di supporto di Cmake non era richiesto e non è stato aggiornato da cinque anni).
  • Aggiunta la funzione mkbool() per creare valori booleani, che sono numeri ma vengono trattati come booleani.
  • In modalità BWK, specificando il flag "--traditional" per impostazione predefinita si abilita il supporto per le espressioni per la definizione di intervalli precedentemente abilitati dall'opzione "-r" ("--re-interval").
  • L'estensione rwarray offre nuove funzioni writeall() e readall() per scrivere e leggere tutte le variabili e gli array contemporaneamente.
  • Aggiunto script gawkbug per segnalare bug.
  • Viene fornito lo spegnimento istantaneo se vengono rilevati errori di sintassi, il che risolve i problemi con l'utilizzo degli strumenti di test fuzzing.
  • Il supporto per i sistemi operativi OS/2 e VAX/VMS è stato interrotto.

Fonte: opennet.ru

Aggiungi un commento