Neue Version des GNU Awk 5.2-Interpreters

Eine neue Version der GNU-Projektimplementierung der AWK-Programmiersprache, Gawk 5.2.0, wurde vorgestellt. AWK wurde in den 70er Jahren des letzten Jahrhunderts entwickelt und hat seit Mitte der 80er Jahre, in der das Grundgerüst der Sprache definiert wurde, keine wesentlichen Änderungen erfahren, was es ihr ermöglicht hat, die ursprüngliche Stabilität und Einfachheit der Sprache in der Vergangenheit beizubehalten Jahrzehnte. Trotz seines fortgeschrittenen Alters wird AWK von Administratoren immer noch aktiv zur Durchführung routinemäßiger Arbeiten im Zusammenhang mit dem Parsen verschiedener Arten von Textdateien und der Erstellung einfacher Ergebnisstatistiken eingesetzt.

Wichtige Änderungen:

  • Experimentelle Unterstützung für den PMA-Speichermanager (Persistent Malloc) hinzugefügt, der es Ihnen ermöglicht, die Werte von Variablen, Arrays und benutzerdefinierten Funktionen zwischen verschiedenen awk-Läufen zu speichern.
  • Die von der MPFR-Bibliothek bereitgestellte hochpräzise arithmetische Unterstützung wurde aus der Verantwortung des GNU Awk-Betreuers genommen und an einen externen Enthusiasten ausgelagert. Es wird darauf hingewiesen, dass die Implementierung des MPFR-Modus in GNU Awk als Fehler gilt. Im Falle einer beibehaltenen Statusänderung ist geplant, diese Funktion vollständig aus GNU Awk zu entfernen.
  • Die Assembly-Infrastrukturkomponenten Libtool 2.4.7 und Bison 3.8.2 wurden aktualisiert.
  • Die Logik zum Vergleichen von Zahlen wurde geändert und an die in der Sprache C verwendete Logik angepasst. Für Nutzer betrifft die Änderung vor allem den Vergleich von Infinity- und NaN-Werten mit regulären Zahlen.
  • Es ist möglich, die FNV1-A-Hash-Funktion in assoziativen Arrays zu verwenden, die aktiviert wird, wenn die Umgebungsvariable AWK_HASH auf „fnv1a“ gesetzt ist.
  • Die Unterstützung für die Erstellung mit CMake wurde entfernt (der Cmake-Supportcode war nicht gefragt und wurde seit fünf Jahren nicht aktualisiert).
  • Funktion mkbool() hinzugefügt, um boolesche Werte zu erstellen, die Zahlen sind, aber als boolesche Werte behandelt werden.
  • Im BWK-Modus aktiviert die standardmäßige Angabe des Flags „--traditional“ die Unterstützung für Ausdrücke zum Definieren von Bereichen, die zuvor durch die Option „-r“ („--re-interval“) aktiviert wurden.
  • Die rwarray-Erweiterung bietet die neuen Funktionen writeall() und readall() zum gleichzeitigen Schreiben und Lesen aller Variablen und Arrays.
  • Gawkbug-Skript hinzugefügt, um Fehler zu melden.
  • Wenn Syntaxfehler erkannt werden, erfolgt eine sofortige Abschaltung, wodurch Probleme bei der Verwendung von Fuzzing-Testtools gelöst werden.
  • Die Unterstützung für die Betriebssysteme OS/2 und VAX/VMS wurde eingestellt.

Source: opennet.ru

Kommentar hinzufügen