Microsoft je objavio kod iz implementacije STL-a, standardne C ++ biblioteke

STL otvoreni izvor

Konferencija CppCon 2019 bila je mjesto za to realizacija velika najava od Microsofta, dobro u njoj je predstavio izdanje izvornog koda biblioteke STL C ++ standard uključen u Visual C ++ koji je od najave dostupan pod besplatnom licencom, konkretno Apache 2.0 (što je prilično dopušteno).

libcxx, LLVM / Clang C ++ standardna biblioteka, već koristi ovu licencu, što bi trebalo olakšati razmjenu kodova između projekata. Sav izvorni kod za ovu biblioteku dostupan je i kompajlira se s Visual C ++-om, ali testiranje još nije uključeno.

Očekuje se da će se otvoreni projekat razviti na GitHub-u i primati zahtjeve za povlačenjem treća strana s novim značajkama i zakrpama. Da biste postali član, morate potpisati ugovor o prenosu CLA koda.

MSVC tim vjeruje da će migracija sa STL-a na GitHub pomoći Microsoftovim kupcima da ostanu u toku s razvojnim procesom, eksperimentiraju s inovacijama i pomognu u razvoju projekta.

Umjesto toga, programeri će moći primijeniti nove implementacije novih standarda u drugim projektima.

Na primjer, možete razmijeniti kod s bibliotekom libc ++ koja radi u okviru LLVM projekta. Microsoft naglašava da se STL i libc ++ ne spajaju, i dalje su različite biblioteke, sa različitim strukturama i platformama. Međutim, sada možete raditi na novim značajkama za obje biblioteke bez brige o licenciranju

Ova implementacija standardne biblioteke nije namijenjena nadmetanju s implementacijama koje pružaju GCC ili Clang, na primjer: Microsoft projekt ne planira podržavati druge platforme osim Microsofta.

Međutim, programeri teže visokokvalitetnoj implementaciji: usklađenoj sa standardima i vrlo brzoj.

Binarna kompatibilnost zagarantovana je sa Visual C ++ verzijama 2015. i 2017. godine (Ova je biblioteka ona koja se isporučuje s verzijom iz 2019.), osim karakteristika koje su implementirane prije finalizacije standarda (radni dokumenti i tehničke specifikacije C ++ odbor za standarde).

Podružnica WCBF02 (još uvijek interna za Microsoft) sadrži nekompatibilne promjene na binarnom nivou, ali ne i na izvornom nivou (za standardno ažuriranje biblioteke morat ćete rekompajlirati svoje projekte, a ne samo mijenjati DLL). Ova grana sadrži niz poboljšanja i ispravki i uskoro će biti javno dostupna.

Za razliku od nekih projekata koji su opisani kao besplatni, Microsoft preporučuje prijavljivanje nedostataka i doprinos projektnom kodu (U ovom slučaju bit će potrebno potpisati CLA kako bi se Microsoftu dalo potrebna prava za preraspodjelu doprinosa, posebno u slučaju da se promijeni licenca za projekat, poteškoća s kojom se LLVM suočava već nekoliko godina).

U bliskoj budućnosti, Microsoft bi projektu trebao dodati svoj interni testni paket. Interno eskalirana lista grešaka migrira se na GitHub. Trenutno se kompilacija vrši sa MSBuild, ali migracija na CMake je u toku. Implementirana je funkcionalnost C ++ 20.

Ostale Visual C ++ komponente ne bi trebale biti dostupne za besplatne licence. Microsoft opravdava ovaj izbor izjavom da je standardna biblioteka C ++ prilično neovisna o kompajleru (za razliku od standardne biblioteke C, na primjer) i da se vrlo brzo razvija u usporedbi s ostalim komponentama kompajlera.

Lociran je izvorni kod STL sada dostupan na Github-u gde ga zainteresovane osobe mogu preuzeti ili moći pregledati njegov kod.

GitHub spremište ima sav izvorni kod proizvoda, novi CMake i README sistem gradnje s više informacija. Biblioteka je licencirana pod licencom Apache 2.0 (sa izuzetkom nekih binarnih datoteka).

Očigledno ovo ne utječe na programere koji samo žele koristiti STL, jer je dostupan za upotrebu u Visual Studio IDE-u. Međutim, programeri koji žele sudjelovati u razvoju STL-a to mogu učiniti pomoću spremišta GitHub.

Prelazak na GitHub je još uvijek u toku, ali sada možete klonirati i izgraditi svoj kôd.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.