Foi lançado um novo release da implementação da linguagem de programação AWK do projeto GNU — Gawk 5.2.0. AWK foi desenvolvido na década de 70 e não passou por mudanças significativas desde meados dos anos 80, quando a espinha dorsal da linguagem foi definida, permitindo que mantivesse sua estabilidade e simplicidade originais ao longo das últimas décadas. Apesar da sua idade, AWK ainda é amplamente utilizado por administradores para realizar tarefas rotineiras relacionadas à análise de diversos tipos de arquivos de texto e à geração de estatísticas simples.
Mudanças principais:
- Adicionada o suporte experimental para o gerenciador de memória pma (persistent malloc), que permite que os valores de variáveis, arrays e funções personalizadas sejam mantidos entre diferentes execuções do awk.
- O suporte para aritmética de alta precisão, implementado com a biblioteca MPFR, foi retirado da responsabilidade do mantenedor do GNU Awk e transferido para um entusiasta externo. Foi observado que a implementação do modo MPFR no GNU Awk é considerada um erro. Caso haja uma mudança de estado com o suporte, esta funcionalidade será removida completamente do GNU Awk.
- Atualizados os componentes da infraestrutura de construção: Libtool 2.4.7 e Bison 3.8.2.
- Alterada a lógica de comparação de números, que foi alinhada com a lógica aplicada na linguagem C. Para os usuários, esta mudança afeta principalmente a comparação de valores Infinity e NaN com números comuns.
- Disponibilizada a possibilidade de usar a função hash FNV1-A em arrays associativos, ativada ao definir a variável de ambiente AWK_HASH como "fnv1a".
- Removido o suporte para compilação com CMake (o código de suporte ao CMake não foi utilizado e não foi atualizado nos últimos cinco anos).
- Adicionada a função mkbool() para criar valores booleanos, que são números, mas tratados como tipo Boolean.
- No modo BWK, ao especificar a flag "—traditional", há suporte por padrão para expressões que definem intervalos, anteriormente ativadas pela opção "-r" ("—re-interval").
- Na extensão rwarray, foram propostas novas funções writeall() e readall() para gravar e ler todas as variáveis e arrays de uma só vez.
- Adicionado o script gawkbug para relatar informações sobre erros.
- O encerramento imediato é garantido em caso de identificação de erros de sintaxe, o que resolve problemas ao utilizar ferramentas de fuzzing.
- O suporte para sistemas operacionais OS/2 e VAX/VMS foi encerrado.
Fonte: opennet.ru
