A fost introdusă o nouă versiune a implementării de către Proiectul GNU a limbajului de programare AWK, Gawk 5.2.0. AWK a fost dezvoltat în anii 70 ai secolului trecut și nu a suferit modificări semnificative de la mijlocul anilor 80, în care a fost definită coloana vertebrală de bază a limbajului, ceea ce i-a permis să mențină stabilitatea și simplitatea impecabile a limbajului în trecut. decenii. În ciuda vârstei sale avansate, AWK este încă utilizat în mod activ de către administratori pentru a efectua lucrări de rutină legate de analizarea diferitelor tipuri de fișiere text și generarea de statistici simple rezultate.
Schimbări cheie:
- S-a adăugat suport experimental pentru managerul de memorie pma (malloc persistent), care vă permite să salvați valorile variabilelor, ale matricelor și ale funcțiilor definite de utilizator între diferitele rulări ale awk.
- Suportul aritmetic de înaltă precizie oferit de biblioteca MPFR a fost scos din responsabilitatea întreținătorului GNU Awk și externalizat unui entuziast din afară. Este de notat că implementarea modului MPFR în GNU Awk este considerată o eroare. În cazul unei schimbări de stare menținută, planul este de a elimina complet această caracteristică din GNU Awk.
- Componentele infrastructurii de asamblare Libtool 2.4.7 și Bison 3.8.2 au fost actualizate.
- Logica de comparare a numerelor a fost schimbată, ceea ce este adus în conformitate cu logica folosită în limbajul C. Pentru utilizatori, modificarea afectează în principal compararea valorilor Infinity și NaN cu numerele obișnuite.
- Este posibil să utilizați funcția hash FNV1-A în matrice asociative, care este activată atunci când variabila de mediu AWK_HASH este setată la „fnv1a”.
- Suportul pentru construirea folosind CMake a fost eliminat (codul de asistență Cmake nu a fost solicitat și nu a fost actualizat timp de cinci ani).
- S-a adăugat funcția mkbool() pentru a crea valori booleene, care sunt numere, dar sunt tratate ca boolean.
- În modul BWK, specificarea steagului „--traditional” în mod implicit permite suportul pentru expresii pentru definirea intervalelor activate anterior de opțiunea „-r” („--re-interval”).
- Extensia rwarray oferă noi funcții writeall() și readall() pentru scrierea și citirea tuturor variabilelor și matricelor simultan.
- S-a adăugat scriptul gawkbug pentru a raporta erori.
- Oprirea instantanee este furnizată dacă sunt detectate erori de sintaxă, ceea ce rezolvă problemele legate de utilizarea instrumentelor de testare fuzzing.
- Suportul pentru sistemele de operare OS/2 și VAX/VMS a fost întrerupt.
Sursa: opennet.ru