Новая версія інтэрпрэтатара GNU Awk 5.2

Прадстаўлены новы выпуск рэалізацыі мовы праграмавання 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

Дадаць каментар