Новая версия интерпретатора 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

Добавить комментарий