Microsoft ga ut koden fra implementeringen av STL, standard C ++ - biblioteket

STL-åpningskilde

CppCon 2019-konferansen var stedet å realiseringen av en stor kunngjøring fra Microsoft, vel i henne utgitt utgivelsen av kildekoden for STL-biblioteket C ++ standard inkludert i Visual C ++ som per kunngjøringen er tilgjengelig under en gratis lisens, spesielt Apache 2.0 (som er ganske ettergivende).

libcxx, standardbiblioteket LLVM / Clang C ++, bruker allerede denne lisensen, som skal legge til rette for kodebytte mellom prosjekter. All kildekode for dette biblioteket er tilgjengelig og kan allerede kompileres med Visual C ++, men testing er ikke inkludert ennå.

Det åpne prosjektet forventes å utvikle seg på GitHub og motta pull-forespørsler tredjepart med nye funksjoner og oppdateringer. For å bli medlem må du signere en CLA-kodeoverføringsavtale.

MSVC-teamet mener at overgangen fra STL til GitHub vil hjelpe Microsofts kunder å holde seg oppdatert med utviklingsprosessen, eksperimentere med innovasjoner og bidra til å utvikle prosjektet.

Stedet, utviklere vil kunne bruke out-of-the-box implementeringer av de nye standardene i andre prosjekter.

For eksempel kan du bytte kode med et libc ++ -bibliotek som fungerer innenfor LLVM-prosjektet. Microsoft understreker at STL og libc ++ ikke smelter sammen, de er fortsatt forskjellige biblioteker, med forskjellige strukturer og plattformer. Du kan imidlertid nå jobbe med nye funksjoner for begge bibliotekene uten å bekymre deg for lisensiering

Denne implementeringen av standardbiblioteket er ikke ment å konkurrere med implementeringene gitt av GCC eller Clang, for eksempel: Microsoft-prosjektet planlegger ikke å støtte andre plattformer enn Microsoft.

Imidlertid satser utviklerne på en implementering av høy kvalitet: standardkompatibel og veldig rask.

Binær kompatibilitet er garantert med Visual C ++ versjoner 2015 og 2017 (Dette biblioteket er det som ble levert med 2019-versjonen), bortsett fra funksjonene som ble implementert før ferdigstillelse av standarden (arbeidsdokumenter og tekniske spesifikasjoner The C ++ Standards Committee).

WCBF02-grenen (fremdeles internt for Microsoft) inneholder inkompatible endringer på binært nivå, men ikke på kildenivå (for en standard biblioteksoppdatering må du kompilere prosjektene dine på nytt, ikke bare endre DLL). Denne grenen inneholder en rekke forbedringer og rettelser, og vil snart være offentlig tilgjengelig.

I motsetning til noen prosjekter som er beskrevet som gratis, Microsoft anbefaler å rapportere feil og bidra til prosjektkode (I dette tilfellet vil det være nødvendig å signere en CLA for å gi Microsoft de nødvendige rettighetene for omfordeling av bidrag, spesielt i tilfelle prosjektlisensen endres, et problem som LLVM har møtt i flere år).

I nær fremtid, Microsoft bør legge til sin interne testpakke i prosjektet. Den internt eskalerte buglisten overføres til GitHub. For øyeblikket kompilering er gjort med MSBuild, men en migrering til CMake pågår. C ++ 20-funksjonalitet blir implementert.

Andre Visual C ++ - komponenter skal ikke være tilgjengelige for gratis lisenser. Microsoft begrunner dette valget ved å si at standard C ++ - biblioteket er ganske kompilatoruavhengig (i motsetning til standard C-biblioteket, for eksempel), og at det utvikler seg veldig raskt sammenlignet med andre kompilatorkomponenter.

STL-kildekoden er lokalisert nå tilgjengelig på Github hvor interesserte personer vil kunne laste den ned eller kunne undersøke koden.

GitHub-depotet har all kildekoden for produktet, et nytt CMake- og README-byggesystem med mer informasjon. Biblioteket er lisensiert under Apache 2.0-lisensen (med unntak av noen binære filer).

selvsagt, dette påvirker ikke utviklere som bare vil bruke STL, da den er tilgjengelig for bruk i Visual Studio IDE. Imidlertid kan utviklere som ønsker å delta i STL-utvikling gjøre det ved hjelp av GitHub-depotet.

Flyttingen til GitHub er fortsatt i gang, men du kan nå klone og bygge koden din.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.