Microsoft frigav koden fra implementeringen af ​​STL, standard C ++ - biblioteket

STL-åbningskilde

CppCon 2019-konferencen var mødested for realiseringen af en stor meddelelse fra Microsoft, godt i hende frigivet frigivelsen af ​​STL-bibliotekets kildekode C ++ standard inkluderet i Visual C ++, som fra og med meddelelsen er tilgængelig under en gratis licens, specifikt Apache 2.0 (hvilket er ret tilladeligt).

libcxx, standardbiblioteket LLVM / Clang C ++, bruger allerede denne licens, som skal lette kodeudveksling mellem projekter. Al kildekode til dette bibliotek er tilgængelig og allerede kompilerbar med Visual C ++, men test er endnu ikke inkluderet.

Det åbne projekt forventes at udvikle sig på GitHub og modtage pull-anmodninger tredjepart med nye funktioner og programrettelser. For at blive medlem skal du underskrive en CLA-kodeoverførselsaftale.

MSVC-teamet mener, at overgangen fra STL til GitHub vil hjælpe Microsofts kunder med at holde sig opdateret med udviklingsprocessen, eksperimentere med innovationer og hjælpe med at udvikle projektet.

I stedet udviklere vil være i stand til at bruge out-of-the-box implementeringer af de nye standarder i andre projekter.

For eksempel kan du udveksle kode med et libc ++ bibliotek, der fungerer inden for LLVM-projektet. Microsoft understreger, at STL og libc ++ ikke fusionerer, de er stadig forskellige biblioteker, med forskellige strukturer og platforme. Du kan dog nu arbejde på nye funktioner til begge biblioteker uden at bekymre dig om licensering

Denne implementering af standardbiblioteket er ikke beregnet til at konkurrere med implementeringerne leveret af GCC eller Clang, for eksempel: Microsoft-projektet planlægger ikke at understøtte andre platforme end Microsoft.

Imidlertid sigter udviklerne mod en implementering af høj kvalitet: standard-kompatibel og meget hurtig.

Binær kompatibilitet er garanteret med Visual C ++ versioner 2015 og 2017 (Dette bibliotek er det, der leveres med 2019-versionen), bortset fra de funktioner, der blev implementeret inden færdiggørelsen af ​​standarden (arbejdsdokumenter og tekniske specifikationer C ++ - standardudvalget).

WCBF02-grenen (stadig internt for Microsoft) indeholder inkompatible ændringer på det binære niveau, men ikke på kildeniveauet (for en standardopdatering til biblioteket skal du kompilere dine projekter igen, ikke bare ændre DLL). Denne gren indeholder en række forbedringer og rettelser og vil snart være offentligt tilgængelig.

I modsætning til nogle projekter, der er beskrevet som gratis, Microsoft anbefaler rapportering af mangler og bidrag til projektkode (I dette tilfælde vil det være nødvendigt at underskrive en CLA for at give Microsoft de nødvendige rettigheder til omfordeling af bidrag, især i tilfælde af, at projektlicensen ændres, et problem, som LLVM har været udsat for i flere år).

I den nærmeste fremtid, Microsoft bør tilføje sin interne testpakke til projektet. Den internt eskalerede bug-liste migreres til GitHub. I øjeblikket udføres kompilering med MSBuild, men en migration til CMake er i gang. C ++ 20-funktionalitet implementeres.

Andre Visual C ++ - komponenter skal ikke være tilgængelige for gratis licenser. Microsoft retfærdiggør dette valg ved at angive, at standard C ++ - biblioteket er ret kompilatoruafhængigt (i modsætning til standard C-biblioteket, for eksempel), og at det udvikler sig meget hurtigt sammenlignet med andre kompilerkomponenter.

STL-kildekoden er placeret nu tilgængelig på Github hvor interesserede personer vil være i stand til at downloade den eller være i stand til at undersøge dens kode.

GitHub-arkivet har al kildekoden til produktet, et nyt CMake- og README-byggesystem med mere information. Biblioteket er licenseret under Apache 2.0-licensen (med undtagelse af nogle binære filer).

naturligvis, dette påvirker ikke udviklere, der bare vil bruge STL, da den er tilgængelig til brug i Visual Studio IDE. Imidlertid kan udviklere, der ønsker at deltage i STL-udvikling, gøre det ved hjælp af GitHub-arkivet.

Flytningen til GitHub er stadig i gang, men koden kan nu klones og bygges.


Efterlad din kommentar

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

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  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.