Ստանդարտ C գրադարանի թողարկում PicoLibc 1.4.7

Keith Packard, Debian-ի ակտիվ ծրագրավորող, X.Org նախագծի ղեկավար և շատ X ընդլայնումների ստեղծող, ներառյալ XRender, XComposite և XRandR, հրատարակվել ստանդարտ C գրադարանի թողարկում PicoLibc 1.4.7, մշակված սահմանափակ մշտական ​​պահեստով և RAM-ով ներկառուցված սարքերում օգտագործելու համար: Մշակման ընթացքում ծածկագրի մի մասը փոխառվել է գրադարանից newlib Cygwin նախագծից և AVR Libc, մշակված Atmel AVR միկրոկոնտրոլերների համար։ PicoLibc կոդը տարածվում է BSD լիցենզիայի ներքո: Գրադարանի հավաքումը աջակցվում է ARM (32-bit), i386, RISC-V, x86_64 և PowerPC ճարտարապետությունների համար:

Սկզբում նախագիծը մշակվել էր «newlib-nano» անվան տակ և նպատակ ուներ վերամշակել Newlib-ի ռեսուրսներ պահանջող որոշ գործառույթներ, որոնք խնդրահարույց էին փոքր RAM ունեցող ներկառուցված սարքերում օգտագործելու համար: Օրինակ, stdio ֆունկցիաները փոխարինվել են avrlibc գրադարանից կոմպակտ տարբերակով։ Կոդը մաքրվել է նաև ոչ BSD լիցենզավորված բաղադրիչներից, որոնք չեն օգտագործվում ներկառուցված կառուցվածքում: Ավելացվել է սկզբնավորման կոդի (crt0) պարզեցված տարբերակը, և տեղական թելերի իրականացումը «struct _reent»-ից տեղափոխվել է TLS մեխանիզմ (thread-local storage) Meson գործիքակազմը օգտագործվում է հավաքման համար:

Նոր թողարկումում.

  • Ավելացվել է օգտագործելով կառուցելու հնարավորությունը մաթեմատիկորեն ստուգված կոմպիլյատոր CompCert.
  • Ավելացված է աջակցություն Clang կոմպիլյատորին:
  • «Գամմա» ֆունկցիայի վարքագիծը համապատասխանեցվել է Glibc-ի վարքագծին:
  • Nano-malloc-ի ներդրումն ապահովում է վերադարձված հիշողության մաքրումը:
  • Նանո-realloc-ի բարելավված կատարումը, հատկապես ազատ բլոկների միաձուլման և կույտի չափի ընդլայնման ժամանակ:
  • Ավելացրել է մի շարք թեստեր՝ ստուգելու malloc-ի ճիշտ աշխատանքը:
  • Բարելավվել է Windows պլատֆորմի աջակցությունը և ավելացրել է mingw գործիքակազմի միջոցով կառուցելու հնարավորությունը:
  • ARM համակարգերում, եթե առկա է, TLS (Thread-Local Storage) ապարատային ռեգիստրը միացված է:

Source: opennet.ru