Microsoft je objavio kod iz implementacije STL-a, standardne knjižnice C ++

Otvoreni izvor STL-a

Konferencija CppCon 2019 bila je mjesto za ostvarenje velika najava 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, točnije Apache 2.0 (što je prilično dopuštajuće).

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

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

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

Umjesto toga, programeri će moći upotrijebiti izvanmrežne 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 knjižnice, s različitim strukturama i platformama. Međutim, sada možete raditi na novim značajkama obje knjižnice bez brige o licenciranju

Ova implementacija standardne knjižnice 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 zajamčena je s Visual C ++ verzijama 2015. i 2017. godine (Ova je knjižnica ona koja se isporučuje s verzijom iz 2019.), osim značajki koje su implementirane prije finalizacije standarda (radni dokumenti i tehničke specifikacije Odbor za standarde C ++).

Podružnica WCBF02 (još uvijek interna u Microsoftu) sadrži nekompatibilne promjene na binarnoj razini, ali ne i na izvornoj razini (za standardno ažuriranje knjižnice morat ćete rekompajlirati svoje projekte, a ne samo mijenjati DLL). Ova grana sadrži brojna poboljšanja i popravke 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 će slučaju biti potrebno potpisati CLA kako bi Microsoftu dali potrebna prava za preraspodjelu doprinosa, posebno u slučaju da se promijeni licenca za projekt, 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 eskalirani popis bugova migrira se na GitHub. Trenutno se kompilacija vrši s MSBuildom, ali migracija na CMake je u tijeku. Implementirana je funkcionalnost C ++ 20.

Ostale komponente Visual C ++ ne bi trebale biti dostupne za besplatne licence. Microsoft opravdava ovaj izbor izjavom da je standardna knjižnica 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 Githubu gdje će ga zainteresirane osobe moći preuzeti ili moći pregledati njegov kôd.

GitHub spremište ima sav izvorni kod proizvoda, novi CMake i README sustav gradnje s više informacija. Knjižnica je licencirana pod licencom Apache 2.0 (osim nekih binarnih datoteka).

očito, to 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 mogu to učiniti pomoću spremišta GitHub.

Prelazak na GitHub još uvijek je u tijeku, ali kod se sada može klonirati i izgraditi.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.