Microsoft släppte standard C ++ - bibliotekskoden som finns i Visual Studio

Microsoft-logotyp

Microsofts logotyp

Vid CppCon 2019-konferensen som har firats idag, exponenterna av Microsoft tog tillfället i akt att tillkännage att koden öppnades för dess genomförande från C ++ - standardbiblioteket (även känd som STL), som ingår i MSVC Toolkit och Visual Studio-utvecklingsmiljön.

Biblioteket implementerar de funktioner som beskrivs i de nuvarande C ++ 14- och C ++ 17-standarderna, och den utvecklas också i riktning mot att stödja den framtida C ++ 20-standarden, efter förändringarna i det nuvarande arbetsutkastet.

Genom anledningarna till att folk på Microsoft har beslutat att göra detta, i uttalandet förklarar de:

Det finns flera anledningar till varför vi gör det, en av dem är att arbeta med STL på GitHub, så att våra kunder kan följa vår utveckling när det händer, testa våra senaste ändringar och hjälpa oss att förbättra våra pullförfrågningar genom att granska dem.

Eftersom C ++ standardisering accelererar och större funktioner röstas om varje år, tror vi att det kommer att vara viktigt att acceptera kärnfunktionerna som öppen källkodsbidrag. (C ++ 20-format och kronologiska bibliotek är till exempel potentiella kandidater.) Vi vill också bidra tillbaka till C ++ -gemenskapen genom att möjliggöra implementeringen av våra kärnfunktioner. (Till exempel charconv från C ++ 17)

Med det Microsofts medarbetare meddelar att de planerar att fortsätta utveckla detta bibliotek som ett öppet projekt som utvecklas på GitHub som accepterar pull-förfrågningar från externa utvecklare med korrigeringar och implementering av nya funktioner (för att delta i utvecklingen krävs ett CLA-avtal för att överföra äganderätt till den överförda koden).

Det observeras att överföring av utveckling från STL till GitHub hjälper Microsofts kunder att spåra utvecklingen, experimentera med de senaste ändringarna och hjälp med att granska inkommande förfrågningar om innovationer.

Öppna koden också låta samhället använda färdiga implementeringar möjligheter för nya standarder i andra projekt.

Om licensen för koden för detta bibliotek, Det föreslås vara öppet under Apache 2.0-licensen med undantag för binära filer som löser problemet med att inkludera runtime-bibliotek i kompositionen av de genererade körbara filerna.

För att vara tydlig, MSVC STL slås inte samman med libc ++ eftersom de fortfarande är separata bibliotek.

Microsoft förklarar varför kodlicensen väljs på ett sådant sätt att kodväxling med LLVM-projektets libc ++ -bibliotek tillåts. STL och libc ++ skiljer sig åt i den interna representationen av datastrukturer, men om de vill kan libc ++ -utvecklare ha intressanta STL-funktioner (t.ex. charconv) eller båda projekten kan tillsammans utveckla några innovationer.

MSVC STL distribueras under Apache v2.0-licensen med undantag för LLVM, som nyligen skapades av Clang / LLVM / libc ++ -projektet.

Undantagen som läggs till Apache-licensen upphäver kravet på att använda källprodukten vid leverans av STL-kompinerade binärer till slutanvändare.

Denna tillåtna öppen källkodslicens valdes eftersom den hade samma licens som libc ++ vilket gör det lättare att dela kod mellan bibliotek. För att vara tydlig slås inte MSVC STL samman med libc ++; de är fortfarande distinkta bibliotek som stöder olika plattformar med olika datastrukturrepresentationer.

Å andra sidan kallas ett av huvudmålen för projektet full överensstämmelse med kraven specifikationer, vilket säkerställer hög prestanda, användarvänlighet (felsökning, diagnostik, feldetekteringsverktyg) och käll- och ABI-kompatibilitet med tidigare versioner av Visual Studio 2015/2017.

Bland de områden som Microsoft är inte intresserad av att utveckla portabilitet till andra plattformar och lägga till anpassade tillägg.

Om du vill veta mer om uttalandet från Microsoft kan du konsultera det I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.