Është publikuar publikimi i bibliotekës standarde C PicoLibc 1.8.9, i zhvilluar nga Keith Packard (udhëheqës i projektit X.Org) për përdorim në pajisjet e integruara me ruajtje të kufizuar dhe RAM. Gjatë zhvillimit, një pjesë e kodit u huazua nga biblioteka newlib nga projekti Cygwin dhe AVR Libc, i zhvilluar për mikrokontrolluesit AVR Atmel. Kodi PicoLibc shpërndahet nën licencën BSD. Asambleja e bibliotekës mbështetet për arkitekturat ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k, PowerPC, LatticMico32, LoongArch dhe OpenRisc.
Fillimisht, projekti u zhvillua me emrin "newlib-nano" dhe kishte për qëllim ripërpunimin e disa prej funksioneve intensive të burimeve të Newlib, të cilat ishin problematike për t'u përdorur në pajisjet e integruara me pak RAM. Për shembull, në PicoLibc funksionet stdio zëvendësohen me një version kompakt nga biblioteka avrlibc. Kodi pastrohet gjithashtu nga komponentët që nuk përdoren në montimin e pajisjes së integruar që nuk janë dhënë nën licencën BSD. Është shtuar një version i thjeshtuar i kodit të inicializimit (crt0) dhe zbatimi i thirrjeve është transferuar nga 'struct _reent' në mekanizmin TLS (thread-local storage). Paketa e veglave Meson përdoret për montim.
Në publikimin e ri:
- Mbështetje e shtuar për arkitekturat LoongArch, OpenRISC dhe LatticMico32.
- Propozohet një zbatim i skedarit të kokës uchar.h i prezantuar në standardin C11.
- U shtua cilësimi nano-malloc-clear-freed për të pastruar kujtesën e çliruar pas free() ose realloc().
- Zbatoi aftësinë për të përdorur clang multilib në sistemet ARM64.
- Ka përfunduar kalimi në paketën e re të veglave picolibc-ci-tools për montimin automatik në sistemet e integrimit të vazhdueshëm.
- Arkitektura MIPS mbështet teknologjinë "semihosting", e cila lejon që kodi të ekzekutohet në një mjedis korrigjues ose emulator për të përdorur mekanizmat I/O të sistemit pritës.
- Mbështetje e shtuar për picocrt dhe gjysmëhost për procesorët Xtensa.
- Cilësimet e shtuara për përdorim me CoreBoot.
- U shtua funksioni memset_explicit(), i prezantuar në standardin C23.
- Tabelat e konvertimit të rasteve janë përditësuar në specifikimin Unicode 15.1.0.
- Funksionet asnprintf() dhe vasnprintf() janë zhvendosur nga biblioteka newlib.
- Mbështetje e shtuar për emulatorin FVP (Fixed Virtual Platforms) të zhvilluar nga ARM.
- Mbështetje e shtuar për versionet më të vjetra të përpiluesit të GCC (më të vjetër se 4.4).
- Implementimet iconv dhe locale janë zëvendësuar me versione më kompakte që përdorin kod të përbashkët për të punuar me kodime.
Burimi: opennet.ru
