Mostrando postagens com marcador matemática. Mostrar todas as postagens
Mostrando postagens com marcador matemática. Mostrar todas as postagens

Lançado bc 6.0.4

Comando bc

Lançado bc 6.0.4


 No dia 26 de Setembro, Gavin Howard publicou a versão 6.0.4 do comando bc. A versão anterior, 6.0.3 recebeu três commits que corrigem bugs em compilação cruzada (cross-compilation) e a versão 6.0.4 corrige bug no bcl, mas somente na versão compilada para OpenBSD. Essas não são versão que talvez seja preocupante para todos, deu para notar que são bem mais para públicos específicos.

Signint -S
Opção -S que pudemos ver no ultimo lançamento (precione CTRL+s)

Mas caso você queira baixar a versão 6.0.4, basta clicar aqui.

Lançado Gavin Howard bc 6.0.2

Lançado Gavin Howard bc 6.0.2

Lançado Gavin Howard bc 6.0.2


 No dia 29 de Agosto foi lançada a versão 6.0.2 do comando bc. Este é o centezimo lançamento da implesmentação do comando bc de autoria de Gavin Howard, implementação utilizada no Android e no FreeBSD. Esta versão traz duas correções de bugs; uma na opçao -l que substituiu a opção -S e outra em double-free que trava ao enviar um SIGINT durante a execução de expressões fornecidas na linha de comando.



Brian Kernighan, um dos criadores da linguagem AWK, adiciona suporte a Unicode na linguagem

Brian Kernighan speaking at a tribute to his Bell Labs coworker and The C Programming Language co-author Dennis Ritchie in 2012. Ritchie's visage in dominoes is behind Kernighan.

Brian Kernighan no tributo a seus colegas de trabalho na Bell Labs.


 AWK é uma linguagem de analize de arquivos de text e números. Foi criada por Alfred Aho, Peter Weinberger, and Brian Kernighan de onde origina o nome da linguagem, das iniciais de seus sobrenomes (Aho, Weinberger e Kernighan). Eu já mencionei sobre a linguagem AWK aqui no blog algumas vezes quando por exemplo, eu precisava encontrar alguma solução para a falta de suporte à unidade de ponto flutuante no Bash (algo que é nativo no ZSH e que você pode conferir no meu próprio curso de migração para Linux).

 Com a popularização de linguagens como Python, AWK acabou perdendo bastante visualização porém, para que um sistema operacional seja considerado Compatível POSIX, é necessário AWK seja parte integrante do sistema. AWK ainda é uma linguagem bem ativa e considero ótima para complementar scripts; é possível até mesmo utiliza-la como substituto de comandos como cut e grep. Alias, a implementação do comando cut do toybox passou a possuir suporte a opção -DF a partir da versão 0.7.6 para exibir informações da mesma forma que AWK (leia a informação clicando aqui). Há empresas que até mesmo tem como exigencia o conhecimento de awk.

Vaga de trabalho que tem como pré-requsito, o conhecimento em AWK.
Vaga de trabalho que tem como pré-requsito, o conhecimento em AWK.

 Rob Landley descreveu que AWK é um dos recursos necessário para o toybox 1.0


 Ter suporte a unicode não é algo tão inovador hoje em dia, mas porque é noticia é interessante?  Simples, porque esse recurso foi adicionado por nada mais e nada mesmo que Brian Kernighan, um dos autores da linguagem AWK. Essa noticia chegou um pouco atrasada pois esse commit foi publicado no dia 31 de Maio no git do One-true-Awk.

 Existem mais implementações do comandos AWK como o gawk do GNU que é utilizado na maioria das distribuições porém, o One-True-AWK é o AWK original do Unix e que foi portado para outros Unix Like além de ser o AWK padrão do Android desde a versão 9.

Android's shell and utilities
O awk adicionado no Android P é o“one true” awk de Brian Kernighan.

 É isso aí, vida longa a linguagem AWK.


Lançado bc 6.0.1

Lançado bc 6.0.1

Lançado bc 6.0.1

 No dia 06 de Agosto foi lançada a versão 6.0.0 da calculador com linguagem de programação própria bc. E no dia 07 foi lançada versão 6.0.1.

 Estas versões tom como novidade correções em seu analisador que as vezes causavam mensagem de erro; adição de um novo recurso de compatibilidade com o bc e o dc do BSD (a opçã de desativar a fixação de dígitos quando se analisa números adicionada na biblioteca bcl) que pode ser definida durante o processo de build com as variáveis de ambiente BC_DIGIT_CLAMP e DC_DIGIT_CLAMP, e poderão ser utilizadas com as opções -c e -C. Signal handling foi removido da bibliteca bcl em favor multi-threading (signals e threads não funcionam bem juntos); a opção -p foi adicionada ao arquivo configure.sh para ajudar durante o processo de build.

 Já a versão 6.0.1 foi lançado um ou dois dias depois para a correção de um bug de memória causado por não utilizar memset(). O bug foi descoberto ao executar um script do Valgrind.


Lançado bc 5.3.0 e 5.3.1


 Gavin Howard é bem dedicado no cuidado de desenvolver o comando bc. Hoje (dia 10/06/2022) Gavin lançou duas versões; a versão 5.3.0 as 12:00 (09:00 da manhã aqui) e três horas depois (14:48:29 MDT. 11:48:28 GMT aqui) a versão 5.3.1.

 Na versão 5.3.0 foi adicionado novos recursos e novas correções de bugs passando a ter suporte a editline e readline history; suporte a opções de linha de comando de definir scale, ibase, obase, e seed (algo que Gavin afirma que discordava da ideia mas que foi solicitado há um bom tempo). A versão do Windows recebeu correção no history foi e reabilitado; manuais recebram correções de informações e formatos diferentes para serem mais confiáveis. 

The -e (editline) option inside configure file
Opção -e (editline) no arquivo configure

The -r (readline) option inside configure file
Opção -r (readline) no arquivo configure

 Já a versão 5.3.1 recebeu a correção de um problema na implementação para FreeBSD (sua maior base de usuários) e também um problema no en_US locale.

 Pode ser que a versão 5.3.0 já está boa o suficiente para você caso não utilize FreeBSD (ou pode ser que que não. Quem garante que não vá precisar utilizar FreeBSD e precise da versão 5.3.1. Sempre peque pelo excesso e não pela falta).

 Para habilitar o recurso editline, basta utilizar a opção -e no arquivo configure.sh-r para readline.

Option editline enabled during the configuration process.
Na primeira linha selecionada de branco, é possível ver que eu escolhi a opção -e e na segunda, a opção BC_ENABLE_HISTORY=1 que significa que o editline foi habilitado (0 significa não habilitado)

 Eu gostaria de dedicar este artigo à Lorinda Cherry, uma das autoras do bc e do dc que faleceu em Fevereiro de 2022 aos 77 anos. Lorinda aparece no famoso vídeo UNIX: Making Computers More Productive - AT&T Archives film from 1982, Bell Laboratories entre os autores do unix Kan Tompson e Dennis Ritchie (Lorinda também merece este mérito). Sua pesquisa sobre dc e bc pode ser conferida clicando aqui.


Lançado bc 5.2.3

Lançado bc 5.2.3

Lançado bc 5.2.3

 Na terça Feira, Gavin Howard lançou a versão 5.2.3 da linguagem bc. Caso você ainda não conheça, a linguagem bc é uma dependência muito importante para a compilação do kernel Linux. Mas sempre faço a ressalva de que não se trata da linguagem bc do projeto GNU, e sim da versão de Gavin Howard.


 Essa versão é versão de correção de um bug na opção -f que pode ser apresentado quando se passa um arquivo com múltiplos comentários ou strings ao comando bc (bc -f <<< arquivo).

bc 5.2.3
bc -f ou bc --file=arquivo
 O procedimento de compilação e instalação pode ser conferido na própria página de download. Vale lembrar que o terminal de comandos toybox também possui a linguagem bc do Gavin, porém, o projeto toybox mantem a versão 1.0 (onde encontrei o bug de loop). É aconselhável a não utilizar nem a versão que se encontra no toybox e nem a do GNU (por conter bugs que já foi explicado na entrevista do Gavin).

Bug encontrado na linguagem bc do toybox

Lançado bc 5.2.2 por Gavin Howard

Lançado bc 5.2.2 por Gavin Howard

Lançado bc 5.2.2 por Gavin Howard

 Há 3 dias foi lançada a versão 5.2.2 da linguagem bc de autoria de Gavin Howard (caso não conheça, Gavin Howard já nos concedeu uma entrevista muito interessante).

 Esta é uma versão de produção que corrige um bug, uma falha de segmentação se argv[0] for igual a NULL.

 Este não é um bug crítico; não haverá necessariamente vulnerabilidade. Não há necessidade de atualizar caso não queira. Eu, como acompanho o projeto e estou sempre testando (inclusive reportando bugs caso encontre) então baixei e compilei minha versão.

 Lembrando, o toybox também possui a linguagem bc do Gavin, porém, o projeto toybox mantem a versão 1.0 (onde encontrei o bug de loop). É aconselhável a não utilizar nem a versão que se encontra no toybox e nem a do GNU (por conter bugs que já foi explicado na entrevista do Gavin).

Lançado bc 5.2.1

bc 5.2.1
Imagem referente ao lançamento da versão anterior

 No dia 24 de Novembro eu anunciei que a linguagem bc do Gavin Howared versão 5.2 havia sido lançada (na verdade foi lançada há três semanas). E como eu já havia descrito em artigos anteriores, eu sempre espero algum tempo antes de anunciar seu lançamento pois, como a sua versão de bc avança muito rápido, é bom eu sempre esperar um pouco para acumular as novidades.
 Dito e feito, há uma semana foi lançada a versão 5.2.1 que traz correções de dois bugs quando se está no modo padrão POSIX. Um deles é devido a peculiaridade da gramática POSIX e o outro devido a linguagem bc ser muito estrito.

Marcadores

A pior história sobre Linux que já ouvi (6) A.I (2) ambiente gráfico (19) AMD (14) analise (10) Andriod (17) android (8) Apple (1) arm (5) artigo (5) aws (1) bc (23) benchmark (6) BetrFS (1) blackhat (1) BSDs (35) btrfs (32) bugs (2) Caixa de Ferramentas do UNIX (18) canonical (1) canto do Diego Lins (2) certificações Linux (7) Código Fonte (53) comandos (34) comp (1) compressores (9) consoles (1) container (8) CPU (20) cracker (1) criptografia (5) crowdfunding (9) cursos (24) daemons (14) Debian (31) desempenho (2) desenvolvimento (104) desktop (19) DevOps (3) DevSecOps (4) dic (1) Dica de leitura (91) dica DLins (2) dicas do Flávio (27) Dicas TechWarn (1) diet libc (4) diocast (1) dioliunx (3) distribuições Linux (14) Docker (13) DragonflyBSD (24) driver (2) dropbear (3) ead Diolinux (2) edição de vídeo (5) embarcados (1) EMMI Linux (4) emuladores (9) endless (5) English interview (3) Enless OS (2) entrevista (17) espaço aberto (82) evento (6) facebook (1) Fedora (11) filesystem (82) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (22) Funtoo Linux (13) games (96) garbage collector (1) gerenciadores de pacotes (4) glaucus (8) GOG (3) google (9) gpu (4) hacker (2) hardware (104) hash (1) helenos (3) I.A (1) init system (13) Intel (16) inteligencia artificial (2) IoT (1) ispconfig (1) jogos (40) kde (1) kernel (143) lançamento (64) leis (1) LFCS (1) libs (2) licenças (10) Linus (16) linus torvalds (2) Linux (194) linux foundation (3) linux para leigos (1) live (4) lkgr (1) LPI (8) LTS (1) Mac (1) machine learning (1) matemática (9) mesa redonda (27) microcontroladores (1) microsoft (6) microst (1) muito além do GNU (182) musl (3) não viva de boatos (9) navegadores (5) NetBSD (7) newlib (1) nim (12) nimlang (4) nintendo (2) novatec (17) novidades (1) nuvem (1) o meu ambiente de trabalho (3) off-topic (12) ONLYOFFICE (5) open source (85) OpenBSD (8) OpenShift (1) oracle (1) os vários sabores de Linux (46) padrim (2) palestras e eventos (5) partições (6) pentest (8) performance (1) pipewire (1) plan9 (3) playstation (1) processadores (30) professor Augusto Manzano (11) Programação (72) promoção (1) propagandas com Linux (8) ps4 (1) real-time. (1) Red Hat (23) redes (4) resenha nerd (5) Resumo da Semana do Dlins (2) resumo do Tux (19) retrospectiva Linux (1) risc-V (14) RISCV (13) rtos (2) runlevel (2) rust (16) Sega (1) Sega Saturn (1) segurança digital (28) servidor web (2) servidores (3) shell (12) shell script (9) sistema operacional (25) skarnet (2) smartphones (3) Software livre e de código aberto (150) sorteio (3) Steam (11) Steam no Linux (9) supercomputadores (4) suse (7) systemd (9) terminal (90) terminal de comandos (21) toca do tux (1) toybox (31) tutorial (6) Tux (3) ubuntu (1) unboxing (7) UNIX (17) UNIX Toolbox (13) vartroy (1) vga (1) virtualização (3) vulnerabilidade (7) wayland (5) web (1) whatsapp (1) whitehat (1) Windows Subsystem for Linux (2) wine (14) WoT (1) yash (1) ZFS (16) zsh (3)