Nowa wersja interpretera GNU Awk 5.2

Wprowadzono nową wersję implementacji języka programowania AWK w ramach Projektu GNU, Gawk 5.2.0. AWK powstał w latach 70-tych ubiegłego wieku i nie uległ znaczącym zmianom od połowy lat 80-tych, w których zdefiniowano podstawowy szkielet języka, co pozwoliło mu zachować nieskazitelną stabilność i prostotę języka na przestrzeni lat dziesięciolecia. Pomimo zaawansowanego wieku AWK jest nadal aktywnie wykorzystywany przez administratorów do wykonywania rutynowych prac związanych z analizowaniem różnych typów plików tekstowych i generowaniem prostych wynikowych statystyk.

Kluczowe zmiany:

  • Dodano eksperymentalne wsparcie dla menedżera pamięci pma (persistent malloc), który umożliwia zapisywanie wartości zmiennych, tablic i funkcji zdefiniowanych przez użytkownika pomiędzy różnymi uruchomieniami awk.
  • Obsługa arytmetyki o wysokiej precyzji, zapewniana przez bibliotekę MPFR, została zdjęta z zakresu odpowiedzialności opiekuna GNU Awk i zlecona zewnętrznemu entuzjaście. Należy zauważyć, że implementacja trybu MPFR w GNU Awk jest uważana za błąd. W przypadku utrzymania zmiany stanu planuje się całkowite usunięcie tej funkcji z GNU Awk.
  • Zaktualizowano komponenty infrastruktury montażowej Libtool 2.4.7 i Bison 3.8.2.
  • Zmieniono logikę porównywania liczb, dostosowując ją do logiki stosowanej w języku C. Dla użytkowników zmiana dotyczy głównie porównania wartości Infinity i NaN ze zwykłymi liczbami.
  • Możliwe jest użycie funkcji skrótu FNV1-A w tablicach asocjacyjnych, która jest włączana, gdy zmienna środowiskowa AWK_HASH jest ustawiona na „fnv1a”.
  • Usunięto wsparcie dla budowania przy użyciu CMake (kod wsparcia Cmake nie był poszukiwany i nie był aktualizowany przez pięć lat).
  • Dodano funkcję mkbool() do tworzenia wartości logicznych, które są liczbami, ale są traktowane jako logiczne.
  • W trybie BWK określenie flagi „--traditional” domyślnie włącza obsługę wyrażeń definiujących zakresy, które wcześniej umożliwiała opcja „-r” („--re-interval”).
  • Rozszerzenie rwarray oferuje nowe funkcje writeall() i readall() umożliwiające jednoczesne zapisywanie i odczytywanie wszystkich zmiennych i tablic.
  • Dodano skrypt gawkbug do zgłaszania błędów.
  • W przypadku wykrycia błędów składniowych zapewniane jest natychmiastowe wyłączenie, co rozwiązuje problemy związane z używaniem narzędzi do testowania rozmytego.
  • Zakończono obsługę systemów operacyjnych OS/2 i VAX/VMS.

Źródło: opennet.ru

Dodaj komentarz