Lançado bc 6.1.1

bc command

Lançado bc 6.1.1

 No dia 02 de Novembro, Gavin Howard lançou a versão 6.1.1 da linguagem bc, uma das dependências para compilar o kernel Linux. As novidades ocorreram mesmo na verdade na versão 6.1.0 porém, como já sabem, eu aguardei o Gavin concluir seu trabalho pois é muito comum em seguida lance uma nova versão com algumas pequenas correções. Como a versão 6.1.1 herda as novidades da versão anterior, então vamos notar as novidades a partir da 6.0.1.

 A versão 6.0.1 trás três novos recursos. O primeiro em adição da função built-in is_number() (u na linguagem dc incorporada ao bc do Gavin) que retorna o valor 1 caso o argumento runtime for um número e 0 caso seja ao contrário. O segundo recurso adicionado a função built-in is_string() (t no dc) que retorna 1 se o argumento runtime for um string e 0 caso seja o contrário. Estes dois recursos foram adicionados por que Gavin chegou a conclusão de que type-checking era necessário agora que strings podem ser atribuídos a variáveis ​​em bc e pois sempre foram atribuídos à variáveis ​​em dc.

 O terceiro recurso trata-se da habilidade da função built-in asciify() no bc de converter todos uma array de números em string. Isso significa que impressão caractere por caractere não será necessário e mais strings do que apenas simples caractere serão capazes de ser criados. 

 Também houveram correções de bugs como na discrepância do comportamento padrão do bc (de sair do programa quando encontrava um quit mesmo se estivesse analisando todo um arquivo. Agora o bc finaliza somente quando encontra quit depois que executou todas as declarações a partir daquele ponto.
 Esse comportamento é diferente do bc do GNU (mesmo bc utilizado pelo NetBSD) mas os usuários notarão somente se colocarem quit na mesma linha como outras declarações.

 O primeiro bug de memória poderia ser reproduzido ao declarar um string a uma variável não local em uma funçao, depois redefinir a função com uso da mesma variável não local, que ainda se referiria a um string na verão anterior da função. O segundo bug de memória foi causado por passar um argumento array à função built-in asciify(). Em certos casos, que foi permitido erroneamente e o interpretador  simplesmente assumiu, tudo estava correto e acessou a memória. Agora que arrays são permitidas como argumentos, isso já não se torna mais um problema.

 Já a versão 6.1.1 traz somente correções relacionadas a builds predefinidas e testes gerados.


Comente com o Facebook:

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.

Marcadores

A pior história sobre Linux que já ouvi (5) A.I (1) ambiente gráfico (19) AMD (14) analise (10) Andriod (16) android (7) Apple (1) arm (4) artigo (5) aws (1) bc (23) benchmark (6) BetrFS (1) blackhat (1) BSDs (29) btrfs (32) bugs (2) Caixa de Ferramentas do UNIX (19) canto do Diego Lins (2) certificações Linux (7) Código Fonte (54) comandos (30) comp (1) compressores (5) container (7) CPU (19) cracker (1) criptografia (5) crowdfunding (9) cursos (24) daemons (13) Debian (31) desempenho (1) desenvolvimento (90) desktop (19) DevOps (3) DevSecOps (4) dic (1) Dica de leitura (90) dica DLins (2) dicas do Flávio (27) Dicas TechWarn (1) diet libc (3) diocast (1) dioliunx (3) distribuições Linux (14) Docker (12) DragonflyBSD (22) driver (1) 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 (10) filesystem (82) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (20) Funtoo Linux (13) games (93) gerenciadores de pacotes (4) glaucus (2) GOG (3) google (8) gpu (3) hacker (2) hardware (104) hash (1) helenos (3) I.A (1) init system (10) Intel (15) inteligencia artificial (1) IoT (1) ispconfig (1) jogos (37) kde (1) kernel (138) lançamento (64) leis (1) LFCS (1) libs (2) licenças (8) Linus (16) linus torvalds (2) Linux (194) linux foundation (3) linux para leigos (1) live (5) 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 (159) musl (2) não viva de boatos (9) navegadores (5) NetBSD (7) newlib (1) nim (1) nintendo (1) novatec (17) novidades (1) nuvem (1) o meu ambiente de trabalho (3) off-topic (12) open source (84) OpenBSD (6) OpenShift (1) os vários sabores de Linux (42) padrim (2) palestras e eventos (5) partições (6) pentest (8) performance (1) pipewire (1) plan9 (1) playstation (1) processadores (30) professor Augusto Manzano (11) Programação (64) promoção (1) propagandas com Linux (8) ps4 (1) real-time. (1) Red Hat (22) redes (4) resenha nerd (4) Resumo da Semana do Dlins (2) resumo do Tux (19) retrospectiva Linux (1) risc-V (14) RISCV (13) rtos (1) runlevel (2) rust (12) segurança digital (24) servidores (1) shell (7) shell script (6) sistema operacional (25) smartphones (3) Software livre e de código aberto (151) sorteio (3) Steam (10) Steam no Linux (8) supercomputadores (4) suse (5) systemd (7) terminal (87) terminal de comandos (16) toca do tux (1) toybox (26) tutorial (6) Tux (3) unboxing (7) UNIX (17) UNIX Toolbox (14) vartroy (1) vga (1) virtualização (2) vulnerabilidade (6) wayland (5) whatsapp (1) whitehat (1) Windows Subsystem for Linux (2) wine (14) WoT (1) ZFS (15) zsh (3)