Microsoft åpen kildekode C++ standardbiblioteket inkludert i Visual Studio

På CppCon 2019-konferansen som finner sted i disse dager, Microsoft kunngjort om å åpne koden for hans implementering av C++ Standard Library (STL, C++ Standard Library), som er en del av MSVC-verktøysettet og Visual Studio-utviklingsmiljøet. Biblioteket implementerer egenskapene beskrevet i gjeldende C++14 og C++17 standarder, og utvikler seg også mot støtte for den fremtidige C++20 standarden, etter endringer i det gjeldende arbeidsutkastet. Kode åpen under Apache 2.0-lisensen med unntak for binære filer som løser problemet med å inkludere runtime-biblioteker i de genererte kjørbare filene.

Utviklingen av dette biblioteket i fremtiden er planlagt utført som et åpent prosjekt utviklet på GitHub, som aksepterer pull-forespørsler fra tredjepartsutviklere med rettelser og implementering av nye funksjoner (deltagelse i utvikling krever signering av en CLA-avtale om overføringen av eiendomsrett til den overførte koden). Det bemerkes at overføringen av STL-utvikling til GitHub vil hjelpe Microsoft-kunder med å spore fremdriften i utviklingen, eksperimentere med de siste endringene og hjelpe til med å gjennomgå innkommende forespørsler om å legge til innovasjoner.

Åpen kildekode vil også tillate fellesskapet å bruke ferdige implementeringer av funksjoner fra de nye standardene i andre prosjekter. For eksempel er kodelisensen valgt for å gi muligheten til å dele kode med biblioteket libc ++ fra LLVM-prosjektet. STL og libc++ er forskjellige i den interne representasjonen av datastrukturer, men om ønskelig kan libc++-utviklere overføre funksjonalitet av interesse fra STL (for eksempel charconv) eller begge prosjektene kan utvikle noen innovasjoner i fellesskap. Unntakene som er lagt til Apache-lisensen fjerner kravet om å sitere bruken av det originale produktet ved levering av binærfiler kompilert med STL til sluttbrukere.

Hovedmålene for prosjektet inkluderer full overholdelse av spesifikasjonskrav, sikring av høy ytelse, brukervennlighet (feilsøkingsverktøy, diagnostikk, feildeteksjon) og kompatibilitet på kildekodenivå og ABI med tidligere utgivelser av Visual Studio 2015/2017. Blant områdene som Microsoft ikke er interessert i å utvikle er portering til andre plattformer og å legge til ikke-standardiserte utvidelser.

Kilde: opennet.ru

Legg til en kommentar