Nais ng mga developer ng Google na bumuo ng kanilang sariling libc para sa LLVM

LLVM_Logo

Ang isa sa mga developer ng Google na ipinakita sa listahan ng maile sa LLVM ang paksa ng pagbuo isang pamantayang cross-platform C library (Libc) sa loob ng balangkas ng proyekto ng LLVM.

Para sa ilang mga kadahilanan, Ang Google ay hindi nasiyahan sa kasalukuyang libc (glibc, musl) at ang kumpanya ay nasa track upang makabuo ng isang bagong pagpapatupad, na balak niyang paunlarin bilang bahagi ng LLVM. Kamakailan-lamang na ginamit ang mga pagpapaunlad ng LLVM bilang batayan sa pagbuo ng mga tool ng Google.

Ang pag-unlad ay pinlano na maging unti-unti, unti-unting pagtaas ng pag-andar. Iminungkahi na ang mga unang pagpipilian ay kukuha ng isang intermediate layer sa pagitan ng application at ng libc system, kung saan hihiram ang mga hindi napagtanto na tampok.

Matapos maabot ang isang tiyak na antas ng pag-andar, ang bagong Libc ay maaaring magamit bilang isang kumpletong kapalit para sa Libc system.

Plano itong magsimula sa suporta para sa x86-64 na arkitektura, Linux, at static binding (dinamikong paglo-load, packaging, at karagdagang mga arkitektura ay ipapatupad pangalawa).

Ang proyekto ay nasa paunang yugto ng pag-unlad, ngunit ang mga pangunahing layunin ay natukoy na:

  • Modularity at pag-unlad alinsunod sa pilosopiya ng pagbibigay ng isang butil na silid-aklatan, sa halip na isang monolithic ensemble.
  • Static na suporta sa link sa mga mode na PIE (posisyon-independiyenteng naisakatuparan) at walang PIE. Magbigay ng CRT (C Runtime) at PIE loader para sa statically naka-link na maipapatupad na mga file.
  • Sinusuportahan ang karamihan sa mga pagpapaandar ng C library pamantayan sa mga plug-in na POSIX at ilang mga extension na tukoy sa system na hiniling sa mga umiiral na application.
  • Maingat na pag-uugali sa mga tukoy na extension mula sa provider at pagdaragdag lamang sa kanila kung kinakailangan. Para sa suporta ng extension ng third-party, iminungkahi na gamitin ang diskarte sa proyekto ng Clang at libc ++.
  • Paggamit ng Mga Pinakamahusay na Kasanayan sa Pag-unlad Paggamit ng LLVM Tools, tulad ng aplikasyon ng mga disimpektante at pag-aalis ng mga pagsubok mula sa simula.

Isa sa mga aktibong tagabuo ng LLVM ay ipinahiwatig na paghahatid ng libc bilang bahagi ng LLVM toolkit hindi ito walang kahulugan, ngunit sa pangkalahatan ay may tulad na pangangailangan na ginagamit nila ang musl library, Maayos itong nakasulat, sumusuporta sa maraming mga arkitektura, at nagbibigay ng kinakailangang pag-andar, kabilang ang pabagu-bagong pag-link.

Ang pagsasama ng Musl sa LLVM at ang pag-unlad nito bilang isang naka-synchize na tinidor sa pangunahing proyekto ay maaaring mabigyang katwiran.

Ang kanyang opinyon ay tininigan din ng may-akda ng proyekto ng Musl, na sumubok na magtaltalan kung bakit ang panukala ng Google at ang pagsasama ng Libc sa paghahatid ng LLVM ay napakasamang ideya:

Ang pagbuo at pagpapanatili ng tama, katugma at de-kalidad na libc ay isang napakahirap na gawain. Ang problema ay wala sa dami ng code, ngunit sa pagbibigay ng wastong pag-uugali.

At ang mga paghihirap sa pagpapatupad ng interface, isinasaalang-alang ang malaking lalagyan ng mga application na nakasulat sa C / C ++, pati na rin ang mga application sa iba pang mga wika na ang runtime ay ginagamit ng Libc.

Ang diskarte sa noo nang hindi isinasaalang-alang ang mga nuances ay hahantong lamang sa ang katunayan na maraming mga umiiral na mga programa ay hindi maaaring gumana sa Libc, ngunit ang nasabing proyekto ay hindi magiging interes ng mga mamimili.

Maaaring sirain ng pag-unlad ng korporasyon ang Libc, ngunit humimok ng laganap na paggamit, na magreresulta sa pangangailangan na magdagdag ng mga pag-hack upang matiyak ang pagiging tugma sa mga application.

Ang kaunlaran sa ilalim ng pangangasiwa ng isang bukas na proyekto ng korporasyon ay magdadala sa saklaw patungo sa mga pangangailangan at desisyon ng kumpanya, na makakasama sa interes ng pamayanan.

Halimbawa

Gumagamit ang Apple ng BSD libc fork para sa mga hangaring ito at ginagamit ng Google ang fork na Fuchsia. Ang karanasan ng developer ng Musl ay nagpapahiwatig na ang mga abugado ay pangunahing nakikipag-ugnay sa kanya upang linawin ang mga isyu sa paglilisensya.

Fuente: http://lists.llvm.org


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.