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 otwartym kodzie źródłowym implementacji biblioteki standardowej C++ (STL), 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, zgodnie ze zmianami w bieżącym roboczym projekcie. 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 jest planowany w przyszłości jako otwarty projekt rozwijany na GitHub, akceptujący pull requesty od zewnętrznych deweloperów z poprawkami i implementacją nowych funkcji (udział w rozwoju wymaga podpisania umowy CLA o przeniesieniu praw własności do przenoszonego kodu). Należy zauważyć, że przeniesienie rozwoju STL do GitHub pomoże klientom Microsoft śledzić postęp rozwoju, eksperymentować z najnowszymi zmianami i pomóc w przeglądaniu przychodzących żądań dodawania 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 jeśli jest to pożądane, programiści libc++ mogą przenieść interesującą ich funkcjonalność ze STL (na przykład charconv) lub oba projekty mogą wspólnie opracować pewne innowacje. Wyjątki dodane do licencji Apache usuwają wymóg wspominania o użyciu oryginalnego produktu podczas dostarczania plików binarnych skompilowanych za pomocą STL użytkownikom końcowym.

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