Byla představena nová verze implementace programovacího jazyka AWK projektu GNU, Gawk 5.2.0. AWK byl vyvinut v 70. letech minulého století a od poloviny 80. let neprošel výraznými změnami, ve kterých byla definována základní páteř jazyka, což mu umožnilo zachovat původní stabilitu a jednoduchost jazyka v minulosti. dekády. I přes svůj pokročilý věk je AWK stále aktivně využíván administrátory k provádění rutinních prací souvisejících s analýzou různých typů textových souborů a generováním jednoduchých výsledných statistik.
Klíčové změny:
- Přidána experimentální podpora pro správce paměti pma (persistent malloc), který umožňuje ukládat hodnoty proměnných, polí a uživatelsky definovaných funkcí mezi různými běhy awk.
- Vysoce přesná aritmetická podpora poskytovaná knihovnou MPFR byla vyňata ze zodpovědnosti správce GNU Awk a svěřena externímu nadšenci. Je třeba poznamenat, že implementace režimu MPFR v GNU Awk je považována za chybu. V případě udržované změny stavu je plánem tuto funkci z GNU Awk úplně odstranit.
- Komponenty montážní infrastruktury Libtool 2.4.7 a Bison 3.8.2 byly aktualizovány.
- Byla změněna logika porovnávání čísel, která je uvedena do souladu s logikou používanou v jazyce C. Pro uživatele se změna dotkne především srovnání hodnot Infinity a NaN s běžnými čísly.
- V asociativních polích je možné použít hashovací funkci FNV1-A, která je povolena, když je proměnná prostředí AWK_HASH nastavena na „fnv1a“.
- Podpora pro vytváření pomocí CMake byla odstraněna (kód podpory Cmake nebyl požadován a nebyl aktualizován po dobu pěti let).
- Přidána funkce mkbool() pro vytvoření booleovských hodnot, což jsou čísla, ale jsou považovány za booleovské.
- V režimu BWK, zadání příznaku "--tradiční" ve výchozím nastavení umožňuje podporu výrazů pro definování rozsahů dříve povolených volbou "-r" ("--re-interval").
- Rozšíření rwarray nabízí nové funkce writeall() a readall() pro zápis a čtení všech proměnných a polí najednou.
- Přidán skript gawkbug pro hlášení chyb.
- Okamžité vypnutí je zajištěno, pokud jsou zjištěny syntaktické chyby, což řeší problémy s používáním fuzzing testovacích nástrojů.
- Podpora operačních systémů OS/2 a VAX/VMS byla ukončena.
Zdroj: opennet.ru