Die neue Version der Programmiersprache AWK vom GNU-Projekt wurde veröffentlicht — Gawk 5.2.0. AWK wurde in den 70er Jahren des letzten Jahrhunderts entwickelt und hat seit Mitte der 80er Jahre, als das Grundgerüst der Sprache festgelegt wurde, keine wesentlichen Veränderungen durchgemacht. Dies hat es ermöglicht, die ursprüngliche Stabilität und Einfachheit der Sprache über die letzten Jahrzehnte hinweg zu bewahren. Trotz seines Alters wird AWK weiterhin aktiv von Administratoren verwendet, um Routinearbeiten im Zusammenhang mit der Verarbeitung verschiedener Textdateien und der Erstellung einfacher statistischer Auswertungen durchzuführen.
Wichtige Änderungen:
- Es wurde experimentelle Unterstützung für den pma (persistent malloc) Speichermanager hinzugefügt, der es ermöglicht, Werte von Variablen, Arrays und Benutzerfunktionen zwischen verschiedenen Ausführungen von awk zu speichern.
- Die Unterstützung für hochpräzise Arithmetik, die mithilfe der MPFR-Bibliothek implementiert ist, wurde aus der Verantwortung des Betreuers von GNU Awk herausgenommen und an einen externen Enthusiasten übergeben. Es wird darauf hingewiesen, dass die Implementierung des MPFR-Modus in GNU Awk als fehlerhaft angesehen wird. Bei einer Änderung des Zustands mit Betreuung ist geplant, diese Möglichkeit vollständig aus GNU Awk zu entfernen.
- Die Komponenten der Build-Infrastruktur Libtool 2.4.7 und Bison 3.8.2 wurden aktualisiert.
- Die Logik zum Vergleichen von Zahlen wurde an die im C verwendet Logik angepasst. Für die Benutzer betrifft die Änderung hauptsächlich den Vergleich von Werten wie Infinity und NaN mit normalen Zahlen.
- Die Verwendung der Hashfunktion FNV1-A in assoziativen Arrays ist jetzt möglich, aktivierbar durch Setzen der Umgebungsvariable AWK_HASH auf "fnv1a".
- Die Unterstützung für Builds mit CMake wurde entfernt (der CMake-Unterstützungscode war ungenutzt und wurde seit fünf Jahren nicht aktualisiert).
- Die Funktion mkbool() wurde hinzugefügt, um boolesche Werte zu erstellen, die Zahlen sind, aber als Boolean-Typ behandelt werden.
- Im BWK-Modus wird beim Setzen des Flags "—traditional" standardmäßig die Unterstützung für Ausdrücke zur Festlegung von Bereichen aktiviert, die zuvor durch die Option "-r" ("—re-interval") aktiviert wurden.
- Im rwarray-Extension wurden die neuen Funktionen writeall() und readall() hinzugefügt, um alle Variablen und Arrays auf einmal zu schreiben und zu lesen.
- Ein Skript gawkbug wurde hinzugefügt, um Informationen über Fehler zu übermitteln.
- Es gewährleistet ein sofortiges Herunterfahren im Falle von Syntaxfehlern, wodurch Probleme mit den Fuzzing-Tests behoben werden.
- Die Unterstützung für die Betriebssysteme OS/2 und VAX/VMS wurde eingestellt.
Quelle: opennet.ru
