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



Источник: http://www.opennet.ru/opennews/art.shtml? num=57732

© OpenNet