Microsoft a lansat codul din implementarea sa a STL, biblioteca standard C ++

Open Source STL

Conferința CppCon 2019 a fost locul de desfășurare realizarea un mare anunț de la Microsoft, bine în ea a dezvăluit lansarea codului sursă al bibliotecii STL Standard C ++ inclus în Visual C ++ care este disponibil de la anunț sub o licență gratuită, în special Apache 2.0 (ceea ce este destul de permisiv).

libcxx, biblioteca standard LLVM / Clang C ++, folosește deja această licență, care ar trebui să faciliteze schimbul de coduri între proiecte. Tot codul sursă pentru această bibliotecă este disponibil și compilabil cu Visual C ++, dar testarea nu este încă inclusă.

Se așteaptă ca proiectul deschis să se dezvolte pe GitHub și să primească cereri de extragere terță parte cu funcții și patch-uri noi. Pentru a deveni membru, trebuie să semnați un contract de transfer de cod CLA.

Echipa MSVC consideră că migrarea de la STL la GitHub va ajuta clienții Microsoft să rămână la curent cu procesul de dezvoltare, să experimenteze inovațiile și să ajute la dezvoltarea proiectului.

În schimb, dezvoltatorii vor putea folosi implementări de la zero a noilor standarde în alte proiecte.

De exemplu, puteți schimba codul cu o bibliotecă libc ++ care funcționează în cadrul proiectului LLVM. Microsoft subliniază faptul că STL și libc ++ nu se îmbină, acestea fiind încă biblioteci diferite, cu diferite structuri și platforme. Cu toate acestea, acum puteți lucra la noi funcții pentru ambele biblioteci fără să vă faceți griji cu privire la licențiere

Această implementare a bibliotecii standard nu este destinată să concureze cu implementările furnizate de GCC sau Clang, de exemplu: proiectul Microsoft nu intenționează să sprijine alte platforme decât Microsoft.

Cu toate acestea, dezvoltatorii urmăresc o implementare de înaltă calitate: conforme cu standardele și foarte rapid.

Compatibilitatea binară este garantată cu versiunile Visual C ++ 2015 și 2017 (Această bibliotecă este cea furnizată împreună cu versiunea 2019), cu excepția caracteristicilor care au fost implementate înainte de finalizarea standardului (documente de lucru și specificații tehnice Comitetul pentru standarde C ++).

Ramura WCBF02 (încă internă pentru Microsoft) conține modificări incompatibile la nivel binar, dar nu la nivel sursă (pentru o actualizare standard a bibliotecii, va trebui să vă recompilați proiectele, nu doar să schimbați DLL-ul). Această ramură conține o serie de îmbunătățiri și remedieri și va fi disponibilă public în curând.

Spre deosebire de unele proiecte descrise ca fiind gratuite, Microsoft recomandă raportarea defectelor și contribuția la codul proiectului (În acest caz, va fi necesar să semnați un CLA pentru a acorda Microsoft drepturile necesare pentru redistribuirea contribuțiilor, mai ales în cazul în care licența de proiect se schimbă, dificultate cu care LLVM s-a confruntat de câțiva ani).

In viitorul apropiat, Microsoft ar trebui să adauge suita de testare internă la proiect. Lista de erori escaladată intern este migrată la GitHub. În acest moment, compilarea se face cu MSBuild, dar o migrare către CMake este în curs. Funcționalitatea C ++ 20 este implementată.

Alte componente Visual C ++ nu ar trebui să fie disponibile pentru licențe gratuite. Microsoft justifică această alegere afirmând că biblioteca standard C ++ este destul de independentă de compilator (spre deosebire de biblioteca standard C, de exemplu) și că evoluează foarte rapid în comparație cu alte componente ale compilatorului.

Codul sursă STL este localizat acum disponibil pe Github în cazul în care persoanele interesate îl vor putea descărca sau vor putea examina codul acestuia.

Depozitul GitHub conține tot codul sursă pentru produs, un nou sistem de construire CMake și README cu mai multe informații. Biblioteca este licențiată sub licența Apache 2.0 (cu excepția unor binare).

în mod evident, acest lucru nu afectează dezvoltatorii care doresc doar să utilizeze STL, deoarece este disponibil pentru utilizare în IDE Visual Studio. Cu toate acestea, dezvoltatorii care doresc să participe la dezvoltarea STL pot face acest lucru folosind depozitul GitHub.

Trecerea la GitHub este încă în curs, dar acum puteți clona și construi codul.


Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.