Une nouvelle version de l'implémentation du langage de programmation AWK du projet GNU a été publiée — Gawk 5.2.0. AWK a été développé dans les années 70 et n'a pas subi de changements significatifs depuis le milieu des années 80, période durant laquelle la structure de base du langage a été définie, permettant à AWK de conserver sa stabilité et sa simplicité originelles au fil des décennies. Malgré son âge avancé, AWK est encore largement utilisé par les administrateurs pour effectuer des tâches routinières liées à l'analyse de divers fichiers texte et à la génération de statistiques simples.
Principaux changements :
- Un support expérimental pour le gestionnaire de mémoire pma (persistent malloc) a été ajouté, permettant de conserver les valeurs des variables, des tableaux et des fonctions utilisateur entre différentes exécutions d'awk.
- Le support pour l'arithmétique de haute précision, réalisé grâce à la bibliothèque MPFR, a été retiré de la responsabilité de la maintenance de GNU Awk et confié à un passionné tiers. Il est noté que l'implémentation du mode MPFR dans GNU Awk est considérée comme une erreur. En cas de changement d'état de maintenance, cette possibilité sera complètement supprimée de GNU Awk.
- Les composants de l'infrastructure de construction Libtool 2.4.7 et Bison 3.8.2 ont été mis à jour.
- La logique de comparaison des nombres a été modifiée pour correspondre à la logique appliquée dans le langage C. Pour les utilisateurs, ce changement concerne principalement la comparaison des valeurs Infinity et NaN avec des nombres ordinaires.
- Il est désormais possible d'utiliser la fonction de hachage FNV1-A dans les tableaux associatifs, activée en définissant la variable d'environnement AWK_HASH à «fnv1a».
- Le support pour la construction avec CMake a été supprimé (le code de support CMake n'était pas demandé et n'a pas été mis à jour pendant cinq ans).
- La fonction mkbool() a été ajoutée pour créer des valeurs booléennes, qui sont des nombres mais traitées comme des types Boolean.
- Dans le mode BWK, lorsque le flag «—traditional» est spécifié, le support par défaut pour les expressions de détermination de plages, auparavant incluses par l'option «-r» («—re-interval»), est maintenant activé.
- Dans l'extension rwarray, de nouvelles fonctions writeall() et readall() ont été proposées pour écrire et lire toutes les variables et tableaux en une seule fois.
- Un script gawkbug a été ajouté pour transmettre des informations sur les erreurs.
- L'arrêt immédiat est assuré en cas de détection d'erreurs de syntaxe, ce qui résout les problèmes liés à l'utilisation des outils de test de fuzzing.
- La prise en charge des systèmes d'exploitation OS/2 et VAX/VMS a été interrompue.
Source : opennet.ru
