Microsoft frigav standard C ++ - bibliotekkoden, der er i Visual Studio

Microsoft-logo

Microsoft-logo

På CppCon 2019-konferencen som er blevet fejret i disse dage, Microsoft-eksponenter benyttede lejligheden til at offentliggøre open source-meddelelsen til din implementering fra C++ Standard Library (også kendt som STL), som er en del af MSVC-værktøjssættet og Visual Studio-udviklingsmiljøet.

Biblioteket implementerer de funktioner, der er beskrevet i de nuværende C++14 og C++17 standarder, og den er også udviklet i retning af at understøtte den fremtidige C++20-standard, efter ændringerne i det nuværende arbejdsudkast.

Ved årsagerne til, at Microsofts folk har besluttet at tage dette skridtI udtalelsen forklarer de:

Der er flere grunde til, at vi gør dette, en af ​​dem er at arbejde på STL på GitHub, dette vil give vores kunder mulighed for at følge vores udvikling, mens den sker, teste vores seneste ændringer og hjælpe os med at forbedre vores pull-anmodninger ved at gennemgå dem.

Efterhånden som C++-standardisering accelererer, og der stemmes om større funktioner hvert år, mener vi, at det vil være vigtigt at acceptere kernefunktioner som open source-bidrag. (For eksempel er C++20-formaterings- og kronologiske biblioteker potentielle kandidater.) Vi ønsker også at bidrage tilbage til C++-fællesskabet ved at gøre det muligt at implementere vores kernefunktioner. (For eksempel charconv fra C++17)

Med det Microsofts folk gør det kendt, at de planlægger at fortsætte med at udvikle dette bibliotek som et åbent projekt der udvikles på GitHub, som vil acceptere pull-anmodninger fra tredjepartsudviklere med rettelser og implementering af nye funktioner (for at deltage i udviklingen kræves en CLA-aftale for at overføre ejerskabsrettigheder til den overførte kode).

Det observeres, at flytning af STL-udvikling til GitHub vil hjælpe Microsoft-kunder spore udviklingsfremskridt, eksperimentere med de seneste ændringer og hjælpe med at gennemgå indkommende innovationsanmodninger.

åben kode også vil give fællesskabet mulighed for at bruge færdige implementeringer af muligheder for nye standarder i andre projekter.

Om licensen til koden til dette bibliotek, det foreslås som åbent under Apache 2.0-licensen med undtagelser for binære filer, der løser problemet med at inkludere runtime-biblioteker i sammensætningen af ​​de genererede eksekverbare filer.

For at være klar, MSVC STL bliver ikke fusioneret med libc++, da de stadig er separate biblioteker.

Microsoft forklarer hvorfor kodelicensen det er valgt på en sådan måde, at det tillader kodeudveksling med LLVM-projektets libc++-bibliotek. STL og libc++ adskiller sig i den interne repræsentation af datastrukturer, men hvis de ønsker det, kan libc++ udviklere porte interessant funktionalitet fra STL (for eksempel charconv), eller begge projekter kan i fællesskab udvikle nogle innovationer.

MSVC STL distribueres under Apache-licensen v2.0 med LLVM-undtagelser, som for nylig blev oprettet af Clang/LLVM/libc++-projektet.

Undtagelser tilføjet til Apache-licensen fjerner kravet om at nævne brugen af ​​kildeproduktet ved levering af STL-kompilerede binære filer til slutbrugere.

Denne tilladelige open source-licens blev valgt, fordi den har samme licens som libc++ hvilket vil gøre det nemmere at dele kode mellem biblioteker. For at være klar, bliver MSVC STL ikke fusioneret med libc++; de er stadig særskilte biblioteker, der understøtter forskellige platforme med forskellige datastrukturrepræsentationer.

På den anden side kaldes et af hovedmålene for projektet fuld overholdelse af kravene. specifikationer, der sikrer høj ydeevne, brugervenlighed (fejlretning, diagnostik, fejlfindingsværktøjer) og kompatibilitet på kilde- og ABI-niveau med tidligere versioner af Visual Studio 2015/2017.

Blandt de områder, der Microsoft er ikke interesseret i at udvikle portering til andre platforme og tilføje tilpassede udvidelser.

Hvis du vil vide mere om erklæringen fra Microsoft, kan du konsultere den I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.