Mhol forbróirí ó Google a leabharlann féin a fhorbairt do LLVM

Ceann de na forbróirí ó Google ardaithe ar liosta seoltaí LLVM faoi fhorbairt leabharlann il-ardán caighdeánach C (Libc) mar chuid den tionscadal LLVM. Ar roinnt cúiseanna, níl Google sásta leis an libc reatha (glibc, musl) agus tá an chuideachta ar an mbealach chun cur i bhfeidhm nua a fhorbairt, atá beartaithe a fhorbairt mar chuid de LLVM.

Baineadh úsáid as forbairtí LLVM le déanaí mar bhunús le huirlisí cóimeála Google a thógáil. Is é an príomh-smaoineamh, má tá Google tosaithe ar a libc a fhorbairt cheana féin, cén fáth nach bhforbróidh tú a chóras láithreach mar chuid de LLVM, a thairgeann a leabharlann chaighdeánach féin do C++ (Libc++), ach nach bhfuil leabharlann chaighdeánach den chineál céanna aige do C. (libc).

Tá sé beartaithe forbairt a dhéanamh i gcéimeanna, ag méadú de réir a chéile ar fheidhmiúlacht. Tá sé beartaithe na chéad roghanna a dhearadh mar chiseal idir an t-iarratas agus an córas Libc, óna ndéanfar gnéithe nach bhfuil curtha i bhfeidhm go fóill a fháil ar iasacht. Tar éis leibhéal áirithe feidhmiúlachta a bhaint amach, is féidir an Libc nua a úsáid mar athsholáthar iomlán ar an gcóras Libc. Tá sé beartaithe againn tosú le tacaíocht d'ailtireacht x86-64, Linux, agus nascadh statach (cuirfear luchtú dinimiciúil, nascadh, agus ailtireachtaí breise i bhfeidhm sa dara háit).

Tá an tionscadal fós ag an gcéim tosaigh forbartha, ach tá spriocanna bunúsacha sainithe cheana féin:

  • Modúlacht agus forbairt de réir na fealsúnachta a bhaineann le leabharlann gráinneach a sheachadadh seachas sraith monolithic;
  • Tacaíocht do nascadh statach i modhanna PIE (Inrite neamhspleách ó thaobh poist) agus gan PIE. CRT (am rite C) agus lódóir PIE a sholáthar le haghaidh earraí inrite atá nasctha go statach;
  • Tacaíocht d’fhormhór na bhfeidhmeanna caighdeánacha leabharlainne C, le breisithe POSIX agus roinnt síntí córas-shonracha a theastaíonn ó fheidhmchláir atá ann cheana;
  • Bí cúramach le síntí a bhaineann go sonrach le díoltóir agus ná cuir leis iad ach amháin nuair is gá. Maidir le tacaíocht do shíntí tríú páirtí, tá sé beartaithe cur chuige na dtionscadal Clang agus libc++ a úsáid;
  • Dea-chleachtais i bhforbairt a úsáid ag baint úsáide as an bhfoireann uirlisí LLVM, mar úsáid a bhaint as sanitizer agus tástáil fuzz ón tús.

Ceann de na forbróirí LLVM gníomhach chuir sé in iúlIs léir go bhfuil ciall leis libc a sheoladh mar chuid d’fhoireann uirlisí LLVM, ach de ghnáth, nuair a thagann gá den sórt sin chun cinn, úsáideann siad an leabharlann musl, atá scríofa go maith, a thacaíonn le hailtireachtaí éagsúla, agus a sholáthraíonn an fheidhmiúlacht riachtanach, lena n-áirítear tacaíocht do dhinimiciúil. nascadh. D’fhéadfadh go mbeadh údar maith le musla a neadú i LLVM agus é a fhorbairt mar fhorc atá sioncronaithe leis an bpríomhthionscadal.

Do thuairim freisin sainráite Údar an tionscadail Musl, a rinne iarracht a mhaíomh cén fáth gur drochsmaointe iad togra Google agus cuimsiú Libc i ndáileadh LLVM:

  • Is tasc an-deacair é Libc atá ceart, comhoiriúnach agus ardchaighdeáin a fhorbairt agus a chothabháil. Níl an fhadhb i méid an chóid, ach maidir le hiompar ceart agus deacrachtaí a chinntiú maidir le comhéadain a chur i bhfeidhm, ag cur san áireamh an tsraith ollmhór feidhmchlár a scríobhadh riamh in C/C++, chomh maith le feidhmchláir i dteangacha eile, a n-úsáidtear a am rite. ag Libc. Ní bheidh mar thoradh ar chur chuige ceannasach gan na nuances a chur san áireamh ach nach mbeidh go leor clár atá ann cheana féin in ann oibriú le Libc, ach ansin ní bheidh tionscadal den sórt sin ina ábhar spéise do thomhaltóirí.
  • Is féidir le forbairt chorparáideach Libc a mhilleadh, ach é a bhrú in úsáid fhorleathan, rud a fhágann go bhfuil gá le haiceanna a chur leis chun comhoiriúnacht na n-iarratas a chinntiú. Beidh forbairt faoi choimirce tionscadail foinse oscailte chorparáideach ag tarraingt ar riachtanais agus réitigh na cuideachta, chun aimhleasa an phobail. Mar shampla, má shainaithníonn tú fadhb is cúis le fabht i gclár eile, i bhforbairt rialaithe tá sé níos éasca a chinntiú go bhfuil Libc comhoiriúnach leis an bhfabht seo ná an fabht féin a dheisiú. Úsáideann Apple forc libc BSD chun na gcríoch sin, agus úsáideann Google an forc muisil i Fuchsia. Is é an taithí atá ag an bhforbróir matán ná go ndeachaigh dlíodóirí go príomha i dteagmháil leis chun saincheisteanna ceadúnaithe a shoiléiriú, ach ní dhearnadh teagmháil riamh leis chun sonraí teicniúla a shoiléiriú sula ndearna sé athruithe gan úsáid agus a chuirfeadh isteach ar a chuid brainsí.
  • Easpa monashaothrú i bhforbairt libc agus fócas ar chaighdeáin atá bunaithe ar chomhdhearcadh seachas ar rialú aonair, rud a spreagann forbróirí feidhmchlár chun caighdeáin a úsáid seachas a bheith ceangailte le feidhmiúcháin ar leith. Sin é an fáth go bhfuil an t-údar musl i gcoinne cuimsiú a leabharlann in LLVM, chomh maith le i gcoinne fhorbairt libc laistigh de LLVM, ós rud é sa chás seo go bhfuil nádúr neamhspleách libc caillte agus a chur i bhfeidhm áirithe a bheith ina réiteach den chéad scoth do LLVM, agus gach ceann eile a bheith ina réiteach den dara grád.

Foinse: oscailtenet.ru

Add a comment