Foi lançado o release da biblioteca padrão C Musl 1.2.3, que fornece uma implementação do libc adequada para uso tanto em PCs e servidores fixos quanto em sistemas móveis, combinando total compatibilidade com padrões (como no Glibc) com um tamanho pequeno, baixo consumo de recursos e alta performance (como no uClibc, dietlibc e Android Bionic). Há suporte para todas as interfaces obrigatórias C99 e POSIX 2008, bem como suporte parcial para C11 e um conjunto de extensões para programação multithread (POSIX threads), gerenciamento de memória e manipulação de localidades. O código Musl é distribuído sob a licença MIT.
A nova versão inclui a função qsort_r, programada para ser incluída no futuro padrão POSIX e utilizada para ordenar arrays usando funções de comparação personalizada. Para alguns modelos de CPU PowerPC, foi adicionada suporte para FPU alternativas SPE (Signal Processing Engine). Foram realizadas modificações visando melhorar a compatibilidade, como aquelas relacionadas à preservação do valor errno, aceitação de ponteiros nulos em gettext e manipulação da variável de ambiente TZ. Foram corrigidas regressões nas funções wcwidth e duplocale, bem como vários erros em funções matemáticas que, em determinadas circunstâncias, levavam a resultados incorretos (por exemplo, em sistemas sem FPU, o resultado em fmaf era arredondado incorretamente).
Adicionalmente, pode-se notar o lançamento, há alguns dias, da biblioteca padrão C PicoLibc 1.7.6, desenvolvida por Keith Packard (líder do projeto X.Org) para uso em dispositivos embarcados com espaço de armazenamento fixo e memória RAM limitados. Durante o desenvolvimento, parte do código foi emprestada da biblioteca newlib do projeto Cygwin e AVR Libc, desenvolvida para microcontroladores Atmel AVR. O código PicoLibc é distribuído sob a licença BSD. Há suporte para a construção da biblioteca para as arquiteturas ARM (32 bits), Aarch64, i386, RISC-V, x86_64, m68k e PowerPC. Na nova versão, foi implementado o uso de funções inline matemáticas para a arquitetura aarch64 e a possibilidade de usar funções inline matemáticas em aplicações nas arquiteturas arm e risc-v.
Fonte: opennet.ru
