A finales del mes pasado compartimos aquí en el blog la noticia de que Brian Kernighan, uno de los creadores de AWK había confirmado que continúa detrás del código de AWK, dando soporte y mejorando este lenguaje de procesamiento (puedes consultar la noticia en el siguiente enlace.)
La razón de mencionar esto, es que hace poco se presentó una nueva versión de la implementación GNU- Gawk 5.2.0, del lenguaje de programación AWK.
AWK se desarrolló en los años 70 y no ha sufrido cambios significativos desde mediados de los 80, en los que se definió la columna vertebral principal del lenguaje, que ha permitido mantener la estabilidad y sencillez original del lenguaje a lo largo del tiempo y de las décadas pasadas.
AWK fue una de las primeras utilidades de consola de gran popularidad a la hora de gestionar (manejar/extraer) datos mediante la maximización de la funcionalidad de las tuberías de UNIX. El lenguaje proveído por esta utilidad actualmente es un estándar en casi todos los sistemas operativo tipo UNIX modernos, tanto que es parte de las especificaciones básicas de UNIX, por lo que se suele encontrar ya instalado en la mayoría de los mismos por defecto.
A pesar de su avanzada edad, los administradores aún utilizan activamente AWK para realizar trabajos de rutina relacionados con el análisis de varios tipos de archivos de texto y la generación de estadísticas resultantes simples.
Este comando proporciona un lenguaje de scripting para el procesamiento de texto con el cual podemos: Definir variables, utilizar cadenas y operadores aritméticos, utilizar control de flujo y ciclos y generar reportes con formato. En realidad, Awk es más que un simple comando de procesamiento de patrones, es todo un lenguaje de análisis semántico.
Principales novedades de GNU Awk 5.2
En esta nueva versión que se presenta, se destaca que se agregó el soporte experimental para el administrador de memoria pma (malloc persistente), que le permite guardar los valores de variables, matrices y funciones definidas por el usuario entre diferentes ejecuciones de awk.
Otro de los cambios que se destaca de esta nueva versión, es que se ha cambiado la lógica de comparación de números, que se alinea con la lógica utilizada en el lenguaje C. Para los usuarios, el cambio afecta principalmente a la comparación de los valores de Infinity y NaN con números regulares.
Ademas de ello, tambien se destaca que la capacidad de usar la función hash FNV1-A en matrices asociativas se habilita configurando la variable de entorno AWK_HASH en «fnv1a».
En el modo BWK, especificar el indicador «–tradicional» de forma predeterminada habilita la compatibilidad con expresiones de rango incluidas anteriormente con la opción «-r» («–re-interval»).
La extensión rwarray proporciona nuevas funciones writeall() y readall() para escribir y leer todas las variables y matrices a la vez.
Además de ello, la compatibilidad con la aritmética de alta precisión, se ha implementado mediante la biblioteca MPFR, ademas de que se eliminó de la responsabilidad del mantenedor de GNU Awk y se transfirió a un tercero entusiasta. Se observa que la implementación del modo MPFR de GNU Awk se considera un error. En el caso de un cambio de estado mantenido, se planea eliminar por completo esta función de GNU Awk.
De los demás cambios que se destacan de esta nueva versión:
- Componentes de infraestructura de compilación actualizados Libtool 2.4.7 y Bison 3.8.2.
- Se eliminó el soporte para compilar con CMake (el código de soporte de Cmake no tenía demanda y no se actualizó durante cinco años).
- Se agregó la función mkbool() para crear valores booleanos que son números, pero se tratan como un tipo booleano.
- Se agregó el script gawkbug para informar errores.
- Se proporciona un apagado instantáneo en caso de errores de sintaxis, lo que resuelve problemas utilizando herramientas para pruebas de fuzzing.
- Ha habido numerosas limpiezas de código menores y correcciones de errores.
- Se eliminó la compatibilidad con los sistemas operativos OS/2 y VAX/VMS.
Finalmente, si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
from Desde Linux https://ift.tt/3B7UaYM
via IFTTT
No hay comentarios.:
Publicar un comentario