Është publikuar versioni i standardit të bibliotekës C PicoLibc 1.8.6, e zhvilluar nga Keith Packard, lideri i projektit X.Org, për përdorim në pajisje të integruara me hapësirë të kufizuar për ruajtje të përhershme dhe memorie të përkohshme. Gjatë zhvillimit, një pjesë e kodit është huazuar nga biblioteka newlib e projektit Cygwin dhe AVR Libc, e cila është zhvilluar për mikrocontrolerët Atmel AVR. Kodi i PicoLibc shpërndahet nën licencën BSD. Mbështetet ndërtimi i bibliotekës për arkitekturën ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k dhe PowerPC.
Fillimisht, projekti është zhvilluar nën emrin 'newlib-nano' dhe ka qenë i fokusuar në riparimin e disa funksioneve të ndjeshme ndaj burimeve të Newlib, të cilat ishte e vështirë t'i përdorni në pajisje të integruara me RAM të vogël. Për shembull, në PicoLibc funksionet stdio janë zëvendësuar me një variant të kompakt nga biblioteka avrlibc. Kodi gjithashtu është pastruar nga komponentët e papërdorur në ndërtimet për pajisje të integruara që nuk ofrohen nën licencën BSD. Është shtuar një variant i thjeshtuar i kodit të inicializimit (crt0), dhe realizimi i thirrjeve është kaluar nga 'struct _reent' në mekanizmin TLS (storage të përkohshëm për thread). Për ndërtim është përdorur mjetin ndihmës Meson.
Në lëshimin e ri:
- Janë trasferuar ndryshime nga Newlib 4.4.0, të tilla si mbështetje për llojin 'long double' në arkitekturën i386, RISC-V, Aarch64 dhe x86_64, mbështetje për zgjerimet RISC-V Zfinx/Zdinx, mundësia e përdorimit të maskave gjatë insertimit të katalogëve, implementimi i portit për procesorët Xtensa, ndarja e trajtimve printf në skedarë të veçantë për të reduktuar madhësinë gjatë lidhjes.
- Në picolibc.ld janë shtuar simbolet '__eh_*' për LLVM libunwind.
- Është përfshirë mbështetje testuese për sistemet 32-bit SPARC.
- Është siguruar mbështetje për platformat e synuara me lloje të pazakonta të lëvizshme, të cilat tani reflektohen në llojet 32-, 64-, 80- dhe 128-bit në kodin picolibc.
- Është shtuar mbështetje për arkitekturën RISC SuperH.
- Është përmirësuar gjurmimi i stack-ut gjatë debugimit të kodit të përjashtimit në sistemet RISC-V.
- Është shtuar opsioni '-Dfast-bufio=true' për të përmirësuar efikasitetin e leximit dhe shkrimit gjatë përdorimit të bufio.
- Është bërë pastrimi i funksioneve publike inline për ndarje të semantikës gnu_inline.
- Shumica e funksioneve fenv për rritjen e performancës janë kaluar në përdorimin e funksioneve inline (gnu_inline) në vend të atyre normale.
- Është krijuar një zgjidhje alternative për ctype, ku nuk përdoret një array ctype dhe bëhet krahasim direkt i vlerave.
Burimi: opennet.ru
