Páginas

Lançado bc 5.0

Lançado bc 5.0
Lançado bc 5.0

    Em Novembro de 2018 foi anunciado que o terminal de comandos toybox receberia suporte ao comando bc (confira aqui). Na verdade bc é uma linguagem Para realizar cálculos arbitrários ou simplesmente uma calculadora em linha de comando com suporte a linguagem de Turing completo.

Na versão 0.8.3 de maio de 2020, a linguagem entrou para a versão pendente. Como a versão 0.8.5 (o anuncio do lançamento pode ser conferido clicando aqui) foi lançada em Maio deste ano, eu resolvi verificar o progresso do comando.
    Esta nova versão traz muitas novidades (o total de 32) como suporte a recursos do openBSD e suporte a history para a versão do Windows; compatibilidade com o UTF8 (tando ao bc quando ao dc). Foram adicionado comandos do dc ("asciify" para a impressão de fluxo, "y" para para obter o comprimento das pilhas de registro, "Y" para o comprimento de uma matriz e "," para a profundidade da pilha de execução) além de exponenciação modular dc e divmod ao bc.

    A lib2.bc também recebeu novos recursos e melhorias como suporte a divisor comum e mínimo múltiplo comumbitwise and, or, xor, left shift, right shift, reverse, left rotate, right rotate e mod functionsfunções s2u(x) e s2un(x,n) e por ultimo uma correção de bugs em multi-digit.

    Foram adicionador quatros novos recursos que permitem os usuários customizarem suas próprias verões de binários sendo uma delas que foi um presente para mim. Difrente do GNU bc, a versões versões anteriores da linguagem bc do Gavin traziam uma mensagem de direitos autorais, contribuidores e bug report; porém a versão 4.0 já não trazia mais.

Diferença entre o bc 1.1.0 e o 4.0.2
Diferença entre o bc 1.1.0 e o 4.0.2

    O Gavin me contou que ele também gostava desta mensagem mas o que ocorreu foi que sua principal fonte de usuários (FreeBSD) não queria que essa mensagem fosse exibida por padrão e por isso foi removida. Mas uma forma que Gavin encontrou para agradar a todos foi exatamente dar a habilidade de cada usuário personalizar seu próprio binário. Quer que a mensagem não seja exibida? Basta configurar da forma padrão. Quer que a mensagem seja exibida? Utilize a sintaxe ./configure.sh -O3 -sbc.banner (muito obrigado, Gavin :).

Minha versão da linguagem bc 5.0.0 compilada com a opção ./configure.sh -O3 -sbc.banner
Minha versão da linguagem bc 5.0.0 compilada com a opção ./configure.sh -O3 -sbc.banner

    Outras personalizações que os usuários podem fazer é o uso de SIGINT (kill -2) para encerra bc, possibilidade de desabilitar o prompt e o modo TTY por variáveis de ambiente e os usuários redefinirem palavras-chave.

    Houveram muitas outras melhorias como otimização alocação de de string; permitir integers com escala non-zero serem utilizadas com operadores power, places e shift; SIGQUIT handling ao history e muitas correções de bugs.

 A linguagem bc do Gavin está disponível para Linux, FreeBSD, OpenBSD, NetBSD, Mac OSX, Solaris (desde que seja versão do Solaris com suporte a POSIX 2008), AIX e HP-UX. Espero ver mais gente envolvida com a linguagem bc no futuro :)

Nenhum comentário:

Postar um comentário

Viu algum erro e quer compartilhar seu conhecimento? então comente aí.

Observação: somente um membro deste blog pode postar um comentário.