Den nye version af programmeringssproget AWK fra GNU-projektet er blevet frigivet - Gawk 5.2.0. AWK blev udviklet i 70'erne og har ikke gennemgået betydelige ændringer siden midten af 80'erne, hvor den grundlæggende struktur af sproget blev fastlagt, hvilket har sikret dets oprindelige stabilitet og enkelhed i årtier. På trods af sin høje alder anvendes AWK stadig aktivt af administratorer til at udføre rutinemæssigt arbejde relateret til parsing af forskellige tekstfiler og generering af enkel resultatstatistik.
Nøgleændringer:
- Eksperimentel støtte til pma (persistent malloc) hukommelsesmanager er blevet tilføjet, hvilket muliggør lagring af værdier fra variabler, arrays og brugerdefinerede funktioner mellem forskellige kørsel af awk.
- Støtte til højpræcisionsaritmetik, som implementeres via MPFR-biblioteket, er blevet fjernet fra ansvarsområdet for vedligeholdelsen af GNU Awk og overdraget til en ekstern iværksætter. Det bemærkes, at implementeringen af MPFR-tilstand i GNU Awk betragtes som en fejl. Hvis der sker ændringer i vedligeholdelsen, planlægges denne funktion at blive fjernet helt fra GNU Awk.
- Bygningsinfrastrukturkomponenterne Libtool 2.4.7 og Bison 3.8.2 er blevet opdateret.
- Logikken for sammenligning af tal er blevet ændret for at matche logikken, der anvendes i C-sproget. Ændringen berører hovedsageligt sammenligning af værdier som Infinity og NaN med almindelige tal.
- Muligheden for at bruge hash-funktionen FNV1-A i associative arrays er blevet tilføjet, aktiveret ved at sætte miljøvariablen AWK_HASH til 'fnv1a'.
- Støtten for bygning ved hjælp af CMake er blevet fjernet (CMake-supportkoden var ikke efterspurgt og er ikke blevet opdateret i fem år).
- Funktionen mkbool() er blevet tilføjet for at oprette boolske værdier, der er tal, men behandles som type Boolean.
- I BWK-tilstand er understøttelse af udtryk til at bestemme intervaller, som tidligere blev inkluderet med indstillingen '-r' ('—re-interval'), nu som standard aktiveret ved angivelse af flaget '—traditional'.
- Der er foreslået nye funktioner writeall() og readall() til at skrive og læse alle variabler og arrays på én gang i rwarray-udvidelsen.
- Et script gawkbug er blevet tilføjet til at rapportere fejl.
- Syntaktiske fejl afsluttes øjeblikkeligt, hvilket løser problemer med brugen af fuzzing-testværktøjer.
- Understøttelsen af operativsystemerne OS/2 og VAX/VMS er ophørt.
Kilde: opennet.ru
