Прадстаўлены новы выпуск рэалізацыі мовы праграмавання AWK ад праекта GNU – Gawk 5.2.0. AWK быў распрацаваны ў 70-х гадах мінулага стагоддзя і не зведаў значных змен з сярэдзіны 80-х гадоў, у якіх быў вызначаны асноўны касцяк мовы, што дазволіла на працягу апошніх дзесяцігоддзяў захаваць першародную стабільнасць і прастату мовы. Нягледзячы на старэчы ўзрост, AWK да гэтага часу актыўна выкарыстоўваецца адміністратарамі для выканання руцінных работ, звязаных з разборам рознага роду тэкставых файлаў і генерацыяй нескладанай выніковай статыстыкі.
Ключавыя змены:
- Дададзена эксперыментальная падтрымка мэнэджара памяці pma (persistent malloc), які дазваляе захоўваць значэнні зменных, масіваў і карыстацкіх функцый паміж рознымі запускамі awk.
- Падтрымка арыфметыкі высокай дакладнасці, якая рэалізуецца пры дапамозе бібліятэкі MPFR, выведзена з вобласці адказнасці суправаджаючага GNU Awk і перададзена іншаму энтузіясту. Адзначаецца, што рэалізацыя рэжыму MPFR у GNU Awk разглядаецца як памылка. У выпадку змены стану з суправаджэннем плануецца поўнасцю выдаліць дадзеную магчымасць з GNU Awk.
- Абноўлены кампаненты зборачнай інфраструктуры Libtool 2.4.7 і Bison 3.8.2.
- Зменена логіка параўнання лікаў, якая прыведзена ў адпаведнасць з логікай, якая прымяняецца ў мове Сі. Для карыстачоў змена ў асноўным закранае параўнанне значэнняў Infinity і NaN са звычайнымі лікамі.
- Прадастаўлена магчымасць выкарыстання хэш-функцыі FNV1-A у асацыятыўных масівах, якая ўключаецца пры выстаўленні зменнай асяроддзя AWK_HASH у значэнне "fnv1a".
- Выдалена падтрымка зборкі з выкарыстаннем CMake (код падтрымкі Cmake аказаўся не запатрабаваны і пяць гадоў не абнаўляўся).
- Дададзена функцыя mkbool() для стварэння булева значэнняў, якія з'яўляюцца лікамі, але апрацоўваюцца як тып Boolean.
- У рэжыме BWK пры ўказанні сцяга «-traditional» па змаўчанні ўключаная падтрымка выразаў для вызначэння дыяпазонаў, раней якія ўключаюцца опцыяй «-r» («-re-interval»).
- У пашырэнні rwarray прапанаваны новыя функцыі writeall() і readall() для запісу і чытанні зараз усіх зменных і масіваў.
- Дададзены скрыпт gawkbug для перадачы інфармацыі пра памылкі.
- Забяспечана імгненнае завяршэнне працы ў выпадку вызначэння сінтаксічных памылак, што вырашае праблемы з выкарыстаннем інструментаў для fuzzing-тэставанні.
- Спынена падтрымка аперацыйных сістэм OS/2 і VAX/VMS.
Крыніца: opennet.ru