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

Додати коментар або відгук