Byla představena nová verze implementace programovacího jazyka AWK od projektu GNU — Gawk 5.2.0. AWK byl vyvinut v 70. letech minulého století a od poloviny 80. let nedoznal významných změn, které definovaly základ jazyka, což umožnilo uchovat původní stabilitu a jednoduchost po posledních desetiletích. I přes svůj pokročilý věk je AWK stále aktivně využíván správci pro provádění rutinních úkolů spojených s analýzou různých textových souborů a generováním jednoduchých statistických výsledků.
Klíčové změny:
- Byla přidána experimentální podpora pro správce paměti pma (persistent malloc), která umožňuje uchovávat hodnoty proměnných, polí a uživatelských funkcí mezi různými běhy awk.
- Podpora aritmetiky s vysokou přesností, implementovaná pomocí knihovny MPFR, byla vyřazena z odpovědnosti údržby GNU Awk a předána externímu nadšenci. Je poznamenáno, že implementace režimu MPFR v GNU Awk je považována za chybu. V případě změny stavu s údržbou je plánováno tuto funkčnost úplně odstranit z GNU Awk.
- Byly aktualizovány komponenty buildovací infrastruktury Libtool 2.4.7 a Bison 3.8.2.
- Byla změněna logika porovnávání čísel, která byla sladěna s logikou používanou v jazyce C. Pro uživatele změna hlavně zasahuje do porovnání hodnot Infinity a NaN s běžnými čísly.
- Byla poskytnuta možnost použití hashovací funkce FNV1-A v asociativních polích, kterou lze aktivovat nastavením proměnné prostředí AWK_HASH na hodnotu „fnv1a“.
- Byla odstraněna podpora pro buildování pomocí CMake (podpora CMake nebyla využívána a pět let nebyla aktualizována).
- Byla přidána funkce mkbool() pro vytváření logických hodnot, které jsou čísly, ale zpracovávají se jako typ Boolean.
- V režimu BWK byla při zadaném příznaku „—traditional“ ve výchozím nastavení povolena podpora výrazů pro určení rozsahů, dříve zahrnutých volbou „-r“ („—re-interval“).
- V rozšíření rwarray byly navrženy nové funkce writeall() a readall() pro zápis a čtení všech proměnných a polí najednou.
- Byl přidán skript gawkbug pro zasílání informací o chybách.
- Zajištěno okamžité ukončení práce při zjištění syntaktických chyb, což řeší problémy s využíváním nástrojů pro fuzzing-testování.
- Podpora operačních systémů OS/2 a VAX/VMS byla ukončena.
Zdroj: opennet.ru
