Została zaprezentowana wersja standardowej biblioteki C Musl 1.2.3, oferująca implementację libc, która nadaje się do użytku zarówno na stacjonarnych komputerach i serwerach, jak i w systemach mobilnych. Łączy pełne wsparcie dla standardów (jak w Glibc) z niewielkim rozmiarem, niskim zużyciem zasobów i wysoką wydajnością (jak w uClibc, dietlibc i Android Bionic). Wspiera wszystkie obowiązkowe interfejsy C99 i POSIX 2008, a także częściowo C11 oraz zestaw rozszerzeń do programowania wielowątkowego (wątki POSIX), zarządzania pamięcią i pracy z lokalizacjami. Kod Musl jest dostępny na podstawie wolnej licencji MIT.
W nowej wersji dodano funkcję qsort_r, planowaną do włączenia w przyszłym standardzie POSIX, stosowaną do sortowania tablic z wykorzystaniem dowolnych funkcji porównujących elementy. Dla niektórych modeli procesorów PowerPC dodano wsparcie dla alternatywnych FPU SPE (Signal Processing Engine). Wprowadzone zmiany mają na celu poprawę kompatybilności, np. związane z zachowaniem wartości errno, przyjmowaniem wskaźników null w gettext oraz obsługą zmiennej środowiskowej TZ. Naprawiono regresywne zmiany w funkcjach wcwidth i duplocale, a także kilka błędów w funkcjach matematycznych, które w określonych okolicznościach prowadziły do obliczeń błędnych wyników (np. na systemach bez FPU, w fmaf niepoprawnie zaokrąglano wynik).
Dodatkowo warto zwrócić uwagę na wydanie kilka dni temu standardowej biblioteki C PicoLibc 1.7.6, rozwijanej przez Keitha Packarda (lidera projektu X.Org) do zastosowań w urządzeniach wbudowanych z ograniczoną wielkością pamięci trwałej i RAM. Podczas pracy nad projektem część kodu została zaadaptowana z biblioteki newlib z projektu Cygwin oraz AVR Libc, rozwijanej dla mikrokontrolerów Atmel AVR. Kod PicoLibc jest rozprowadzany na podstawie licencji BSD. Wspierana jest budowa biblioteki dla architektur ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k i PowerPC. W nowej wersji wprowadzono zastosowanie matematycznych funkcji inline dla architektury aarch64 oraz możliwość używania matematycznych funkcji inline w aplikacjach na architekturach arm i risc-v.
Źródło: opennet.ru
