S-a lansat o nouă versiune a limbajului de programare AWK din cadrul proiectului GNU — Gawk 5.2.0. AWK a fost dezvoltat în anii '70 și nu a suferit modificări semnificative din anii '80, când a fost definit cadrul de bază al limbajului, permițându-i să păstreze stabilitatea și simplitatea originală de-a lungul decadelor. În ciuda vârstei sale înaintate, AWK este încă folosit activ de administratorii de sistem pentru a efectua sarcini de rutină legate de analiza diferitelor tipuri de fișiere text și generarea de statistici simple.
Modificări cheie:
- A fost adăugată suport experimental pentru managerul de memorie pma (persistent malloc), care permite salvarea valorilor variabilelor, a array-urilor și a funcțiilor personalizate între diferite runde de execuție awk.
- Suportul pentru aritmetica de înaltă precizie, implementat cu ajutorul bibliotecii MPFR, a fost scos din responsabilitatea dezvoltatorilor GNU Awk și transferat unui entuziast extern. Se menționează că implementarea modului MPFR în GNU Awk este considerată o greșeală. În cazul unei schimbări de stare cu supraveghere, se preconizează eliminarea completă a acestei facilități din GNU Awk.
- Au fost actualizate componentele infrastructurii de compilare Libtool 2.4.7 și Bison 3.8.2.
- Logica de comparare a numerelor a fost modificată astfel încât să fie conformă cu logica utilizată în limbajul C. Pentru utilizatori, schimbarea afectează în principal compararea valorilor Infinity și NaN cu numere normale.
- A fost introdusă posibilitatea de a utiliza funcția hash FNV1-A în array-uri asociative, activată prin setarea variabilei de mediu AWK_HASH la valoarea „fnv1a”.
- Suportul pentru compilare folosind CMake a fost eliminat (codul de suport CMake a fost neutilizat și nu a fost actualizat timp de cinci ani).
- A fost adăugată funcția mkbool() pentru a crea valori boolean, care sunt numere, dar sunt tratate ca tip Boolean.
- În modul BWK, activarea opțiunii „—traditional” include implicit suportul pentru expresii ce definesc intervale, anterior incluse prin opțiunea „-r” („—re-interval”).
- Extensia rwarray oferă noi funcții writeall() și readall() pentru a scrie și citi toate variabilele și array-urile în bloc.
- A fost adăugat scriptul gawkbug pentru a transmite informații despre erori.
- Se asigură încheierea imediată a execuției în cazul identificării erorilor 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 oprit.
Sursa: opennet.ro
