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