Firma Microsoft udostępniła kod ze swojej implementacji STL, standardowej biblioteki C ++

Opensource STL

Odbyła się konferencja CppCon 2019 realizacja wielkie ogłoszenie od Microsoftu, dobrze w nim wydał wydanie kodu źródłowego biblioteki STL Standard C++ dołączony do Visual C++, który jest dostępny od chwili ogłoszenia na wolnej licencji, konkretnie Apache 2.0 (co jest dość liberalne).

libcxx, standardowa biblioteka LLVM/Clang C++, już korzysta z tej licencji, co powinno ułatwić współdzielenie kodu między projektami. Cały kod źródłowy tej biblioteki jest dostępny i skompilowany w Visual C++, ale testy nie są jeszcze dołączone.

Otwarty projekt ma się rozwijać w GitHub i otrzymywać żądania ściągnięcia od osób trzecich z nowymi funkcjami i poprawkami. Aby zostać członkiem, musisz podpisać umowę przeniesienia kodu CLA.

Zespół MSVC wierzy, że migracja z STL do GitHub pomoże klientom Microsoft nadążyć za procesem rozwoju, eksperymentować z innowacjami i pomóc w rozwoju projektu.

Zamiast tego, programiści będą mogli wykorzystać gotowe implementacje nowych standardów w innych projektach.

Na przykład możesz wymieniać kod z biblioteką libc++, która działa w ramach projektu LLVM. Microsoft podkreśla, że ​​STL i libc++ nie są scalone, to wciąż różne biblioteki, z różnymi strukturami i platformami. Jednak teraz możesz pracować nad nowymi funkcjami dla obu bibliotek, nie martwiąc się o licencje

Ta standardowa implementacja biblioteki nie ma na celu konkurowania z implementacjami dostarczonymi przez GCC lub Clang, na przykład: projekt Microsoft nie planuje obsługi platform innych niż Microsoft.

Jednak programiści dążą do wdrożenia wysokiej jakości: zgodnego ze standardami i bardzo szybkiego.

Zgodność binarna jest gwarantowana z wersjami Visual C++ 2015 i 2017 (ta biblioteka jest dostarczona z wersją 2019), z wyjątkiem funkcji, które zostały zaimplementowane przed sfinalizowaniem standardu (Specyfikacje techniczne i dokumenty robocze Komitetu ds. Standardów C++).

Gałąź WCBF02 (nadal wewnętrzna dla firmy Microsoft) zawiera niekompatybilne zmiany na poziomie binarnym, ale nie na poziomie źródłowym (w przypadku standardowej aktualizacji biblioteki konieczna będzie ponowna kompilacja projektów, a nie tylko zmiana biblioteki DLL). Ta gałąź zawiera szereg ulepszeń i poprawek i wkrótce będzie publicznie dostępna.

W przeciwieństwie do niektórych projektów określanych jako darmowe, Firma Microsoft zaleca zgłaszanie defektów i współtworzenie kodu projektu (W takim przypadku konieczne będzie podpisanie umowy CLA, która da Microsoftowi niezbędne prawa do redystrybucji wkładów, zwłaszcza w przypadku zmiany licencji projektu, z którą LLVM boryka się od kilku lat).

W niedalekiej przyszłości, Microsoft powinien dodać do projektu swój wewnętrzny zestaw testów. Lista wewnętrznie eskalowanych błędów jest migrowana do GitHub. W tej chwili kompilacja jest wykonywana za pomocą MSBuild, ale trwa migracja do CMake. Wdrażana jest funkcjonalność C++20.

Inne komponenty Visual C++ nie powinny być dostępne w ramach bezpłatnych licencji. Microsoft uzasadnia ten wybór stwierdzeniem, że standardowa biblioteka C++ jest całkowicie niezależna od kompilatora (w przeciwieństwie na przykład do standardowej biblioteki C) i bardzo szybko ewoluuje w porównaniu z innymi komponentami kompilatora.

Kod źródłowy STL można znaleźć jest już dostępny na Githubie gdzie zainteresowane osoby mogą go pobrać lub zbadać jego kod.

Repozytorium GitHub zawiera cały kod źródłowy produktu, nowy system kompilacji CMake i README z dodatkowymi informacjami. Biblioteka jest licencjonowana na licencji Apache 2.0 (z wyjątkiem niektórych plików binarnych).

Oczywiście, nie dotyczy to programistów, którzy chcą korzystać tylko z STL, ponieważ jest dostępny do użycia w środowisku IDE programu Visual Studio. Jednak programiści, którzy chcą uczestniczyć w rozwoju STL, mogą to zrobić za pomocą repozytorium GitHub.

Przeprowadzka na GitHub wciąż trwa, ale już teraz możesz sklonować i zbudować kod.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.