Objavljena je bila izdaja standardne knjižnice C PicoLibc 1.8.9, ki jo je razvil Keith Packard (vodja projekta X.Org) za uporabo na vgrajenih napravah z omejenim pomnilnikom in RAM-om. Med razvojem je bil del kode izposojen iz knjižnice newlib iz projekta Cygwin in AVR Libc, razvite za mikrokontrolerje Atmel AVR. Koda PicoLibc se distribuira pod licenco BSD. Sestavljanje knjižnice je podprto za arhitekture ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k, PowerPC, LatticMico32, LoongArch in OpenRisc.
Sprva je bil projekt razvit pod imenom "newlib-nano" in je bil namenjen predelavi nekaterih funkcij Newliba, ki zahtevajo veliko virov in jih je bilo problematično uporabljati na vgrajenih napravah z malo RAM-a. Na primer, v PicoLibc so funkcije stdio nadomeščene s kompaktno različico iz knjižnice avrlibc. Koda je tudi očiščena komponent, ki niso uporabljene v sestavu vdelane naprave in niso dobavljene pod licenco BSD. Dodana je bila poenostavljena različica inicializacijske kode (crt0), implementacija klicev pa je bila prenesena iz 'struct _reent' v mehanizem TLS (thread-local storage). Za montažo se uporablja orodje Meson.
V novi izdaji:
- Dodana podpora za arhitekture LoongArch, OpenRISC in LatticMico32.
- Predlagana je izvedba datoteke glave uchar.h, uvedene v standardu C11.
- Dodana nastavitev nano-malloc-clear-freed za brisanje pomnilnika, sproščenega po free() ali realloc().
- Implementirana možnost uporabe clang multilib v sistemih ARM64.
- Zaključen je prehod na nov komplet orodij picolibc-ci-tools za samodejno sestavljanje v sistemih z neprekinjeno integracijo.
- Arhitektura MIPS podpira tehnologijo "semihosting", ki omogoča, da koda, ki se izvaja v okolju razhroščevalnika ali emulatorja, uporablja V/I mehanizme gostiteljskega sistema.
- Dodana podpora za picocrt in semihost za procesorje Xtensa.
- Dodane nastavitve za uporabo s CoreBoot.
- Dodana funkcija memset_explicit(), uvedena v standardu C23.
- Tabele za pretvorbo velikih in malih črk so bile posodobljene na specifikacijo Unicode 15.1.0.
- Funkciji asnprintf() in vasnprintf() sta bili premaknjeni iz knjižnice newlib.
- Dodana podpora za emulator FVP (Fixed Virtual Platforms), ki ga je razvil ARM.
- Dodana podpora za starejše različice prevajalnika GCC (starejše od 4.4).
- Implementacije iconv in locale so bile nadomeščene z bolj kompaktnimi različicami, ki uporabljajo skupno kodo za delo s kodiranjem.
Vir: opennet.ru
