Standardowa biblioteka C++ firmy Microsoft typu open source dołączona do programu Visual Studio

Na odbywającej się obecnie konferencji CppCon 2019 Microsoft ogłosił o otwarciu kodu swojej implementacji Biblioteki Standardowej C++ (STL, C++ Standard Library), która jest częścią zestawu narzędzi MSVC i środowiska programistycznego Visual Studio. Biblioteka implementuje możliwości opisane w obecnych standardach C++14 i C++17, a także ewoluuje w kierunku obsługi przyszłego standardu C++20, po zmianach w bieżącej wersji roboczej. Kod otwarty na licencji Apache 2.0 z wyjątkami dla plików binarnych, które rozwiązują problem dołączania bibliotek wykonawczych do generowanych plików wykonywalnych.

Rozwój tej biblioteki w przyszłości planowany jest jako projekt otwarty rozwijany na GitHubie, akceptujący pull requesty od zewnętrznych programistów z poprawkami i wdrażaniem nowych funkcjonalności (udział w rozwoju wymaga podpisania umowy CLA w sprawie przeniesienia praw majątkowych do przekazanego kodu). Należy zauważyć, że przeniesienie rozwoju STL do GitHub pomoże klientom Microsoft śledzić postęp rozwoju, eksperymentować z najnowszymi zmianami i pomoże przeglądać przychodzące prośby o dodanie innowacji.

Open source umożliwi także społeczności wykorzystanie gotowych implementacji funkcjonalności z nowych standardów w innych projektach. Na przykład licencja na kod jest wybierana w celu zapewnienia możliwości udostępniania kodu bibliotece bibliotekac++ z projektu LLVM. STL i libc++ różnią się wewnętrzną reprezentacją struktur danych, ale w razie potrzeby programiści libc++ mogą przenieść interesujące funkcjonalności z STL (na przykład charconv) lub oba projekty mogą wspólnie opracować pewne innowacje. Wyjątki dodane do licencji Apache usuwają wymóg powoływania się na użycie oryginalnego produktu podczas dostarczania użytkownikom końcowym plików binarnych skompilowanych przy użyciu STL.

Kluczowymi celami projektu są pełna zgodność z wymaganiami specyfikacji, zapewnienie wysokiej wydajności, prostoty obsługi (narzędzia do debugowania, diagnostyka, wykrywanie błędów) oraz kompatybilność na poziomie kodu źródłowego i ABI z poprzednimi wydaniami Visual Studio 2015/2017. Wśród obszarów, którymi Microsoft nie jest zainteresowany rozwojem, znajdują się portowanie na inne platformy i dodawanie niestandardowych rozszerzeń.

Źródło: opennet.ru

Dodaj komentarz