Uma nova versão da implementação da linguagem de programação AWK do Projeto GNU, Gawk 5.2.0, foi introduzida. O AWK foi desenvolvido na década de 70 do século passado e não sofreu alterações significativas desde meados dos anos 80, quando foi definida a espinha dorsal da linguagem, o que lhe permitiu manter a estabilidade imaculada e a simplicidade da linguagem ao longo do passado. décadas. Apesar de sua idade avançada, o AWK ainda é usado ativamente por administradores para realizar trabalhos de rotina relacionados à análise de vários tipos de arquivos de texto e à geração de estatísticas simples resultantes.
Principais mudanças:
- Adicionado suporte experimental para o gerenciador de memória pma (persistent malloc), que permite salvar os valores de variáveis, arrays e funções definidas pelo usuário entre diferentes execuções do awk.
- O suporte aritmético de alta precisão fornecido pela biblioteca MPFR foi retirado da responsabilidade do mantenedor do GNU Awk e terceirizado para um entusiasta externo. Observa-se que a implementação do modo MPFR no GNU Awk é considerada um bug. No caso de uma mudança de estado mantida, o plano é remover completamente esse recurso do GNU Awk.
- Os componentes de infraestrutura de montagem Libtool 2.4.7 e Bison 3.8.2 foram atualizados.
- A lógica de comparação de números foi alterada, alinhando-se com a lógica usada na linguagem C. Para os usuários, a mudança afeta principalmente a comparação dos valores Infinity e NaN com números regulares.
- É possível utilizar a função hash FNV1-A em arrays associativos, que é habilitada quando a variável de ambiente AWK_HASH é definida como “fnv1a”.
- O suporte para construção usando CMake foi removido (o código de suporte Cmake não estava em demanda e não foi atualizado por cinco anos).
- Adicionada função mkbool() para criar valores booleanos, que são números, mas são tratados como booleanos.
- No modo BWK, especificar o sinalizador "--traditional" por padrão habilita o suporte a expressões para definir intervalos previamente habilitados pela opção "-r" ("--re-interval").
- A extensão rwarray oferece novas funções writeall() e readall() para escrever e ler todas as variáveis e arrays de uma só vez.
- Adicionado script gawkbug para relatar bugs.
- O desligamento instantâneo é fornecido se forem detectados erros de sintaxe, o que resolve problemas com o uso de ferramentas de teste de difusão.
- O suporte para sistemas operacionais OS/2 e VAX/VMS foi descontinuado.
Fonte: opennet.ru