Microsoft maakt C++ STL open source

Microsoft

Microsoft heeft zijn implementatie van de Standard Library van C++ open source gemaakt op GitHub. De implementatie wordt beschikbaar onder een Apache 2.0-licentie, met uitzonderingen voor LLVM.

Stephan Lavavej van Microsoft gaf een aantal redenen voor de move in een blogpost van het bedrijf. Een van de redenen is dat gebruikers de ontwikkeling van de C++ STL dan kunnen volgen terwijl die bezig is. “Naarmate de standaardisatie van C++ versnelt en er ieder jaar meer grote functies in worden gestemd, zijn wij van mening dat het belangrijk is om belangrijke features te accepteren als open source-bijdragen.”

Wat betreft de Apache 2.0-licentie liet Lavavej weten dat die keuze de lijn van het Clang/LLVVM/libc+++ project volgt. “We hebben gekozen voor deze tolerante open source licentie omdat het gebruiken van dezelfde licentie als libc+++ het makkelijker zal maken om code te delen tussen onze libraries.”

Lavavej meldt verder dat het voor gebruikers van de STL van MSVC niet bang hoeven te zijn voor nieuwe verplichtingen. “Microsoft is er duidelijk over dat de Apache 2.0-licentie met LLVM-uitzonderingen duidelijk stelt dat je niet verplicht bent om bij het verzenden van gecompileerde producten naar eindgebruikers rechten toe te kennen. Dit is nog een reden waarom we voor deze licentie hebben gekozen: om te voorkomen dat we de activiteiten van onze klanten verstoren.”

Taken voor de toekomst

Hoewel de code al op GitHub staat, moet het team nog een aantal taken volbrengen. Een CMake build systeem staat nog in de steigers. Op het moment staat die taak echter vermeld onder “Problemen”. Tests en Continuous Integration staan vermeld onder “Coming Soon”. Verder worden er eventueel later nog support-libraries toegevoegd voor de C++ STL van Microsoft. De GitHub-pagina geeft ook een overzicht van de doelstellingen van het project. De eerste doelstellingen omvatten conformiteit, prestaties, bruikbaarheid en compatibiliteit.

nieuwsbrief

Abonneer je gratis op ITdaily !

  • This field is for validation purposes and should be left unchanged.