Microsoft julkaisi C ++ -kirjastokoodin, joka on Visual Studiossa

Microsoft-logo

Microsoft-logo

CppCon 2019 -konferenssissa jota vietetään näinä päivinä, Microsoftin edustajat käyttivät tilaisuutta ilmoittaakseen koodin avaamisesta sen täytäntöönpanoa varten C ++ - standardikirjastosta (tunnetaan myös nimellä STL), joka on osa MSVC Toolkitia ja Visual Studio -kehitysympäristöä.

Kirjasto toteuttaa nykyisissä C ++ 14- ja C ++ 17 -standardeissa kuvatut ominaisuudet, ja sitä kehitetään myös tulevan C ++ 20 -standardin tukemiseen nykyisen työluonnoksen muutosten seurauksena.

Mukaan syyt miksi Microsoftin ihmiset ovat päättäneet tehdä tämän siirron, lausunnossaan he selittävät:

Tähän on useita syitä, joista yksi on työskennellä STL: n parissa GitHubissa. Tämä antaa asiakkaillemme mahdollisuuden seurata kehitystämme, testata viimeisimpiä muutoksia ja auttaa parantamaan vetopyyntöjä tarkistamalla ne.

Kun C ++ - standardointi kiihtyy ja suuremmista ominaisuuksista äänestetään joka vuosi, mielestämme on tärkeää hyväksyä ydinominaisuudet avoimen lähdekoodin julkaisuina. (Esimerkiksi C ++ 20 -muoto ja kronologiset kirjastot ovat mahdollisia ehdokkaita.) Haluamme myös osallistua takaisin C ++ -yhteisöön mahdollistamalla ydintoimintojemme toteuttamisen. (Esimerkiksi charconv ryhmästä C ++ 17)

Sen kanssa Microsoft-ihmiset ilmoittivat aikovansa jatkaa tämän kirjaston kehittämistä avoimena projektina jota kehitetään GitHubissa, joka hyväksyy ulkoisten kehittäjien vetopyynnöt korjauksin ja uusien ominaisuuksien käyttöönotolla (kehitykseen osallistumiseen vaaditaan CLA-sopimus siirrettyyn koodiin liittyvien omistusoikeuksien siirtämiseksi).

On havaittu, että kehityksen siirtäminen STL: stä GitHubiin auttaa Microsoftin asiakkaita Seuraa kehityksen edistymistä, kokeile viimeisimpiä muutoksia ja auttaa tarkastelemaan saapuvia innovaatiopyyntöjä.

Avaa myös koodi anna yhteisön käyttää valmiita toteutuksia mahdollisuuksia uusille standardeille muissa projekteissa.

Tietoja tämän kirjaston koodin lisenssistä, Ehdotetaan olevan avoinna Apache 2.0 -lisenssin alaisena lukuun ottamatta binääritiedostoja, jotka ratkaisevat ajonaikaisen kirjaston sisällyttämisen muodostettujen suoritettavien tiedostojen kokoonpanoon.

Selkeyden vuoksi MSVC STL ei sulaudu libc ++: een, koska ne ovat edelleen erillisiä kirjastoja.

Microsoft selittää miksi koodilisenssi on valittu siten, että koodinvaihto LLVM-projektin libc ++ -kirjaston kanssa on mahdollista. STL ja libc ++ eroavat tietorakenteiden sisäisestä esityksestä, mutta libc ++ -kehittäjät voivat halutessaan siirtää mielenkiintoisia STL-toimintoja (esim. Charconv) tai molemmat projektit voivat yhdessä kehittää joitain innovaatioita.

MSVC STL on jaettu Apache v2.0 -lisenssillä LLVM-poikkeuksilla, jonka äskettäin loi Clang / LLVM / libc ++ -projekti.

Apache-lisenssiin lisätyt poikkeukset peruuttavat vaatimuksen mainita lähdetuotteen käyttö toimitettaessa STL-käännettyjä binäärejä loppukäyttäjille.

Tämä sallittu avoimen lähdekoodin lisenssi valittiin, koska sillä on sama lisenssi kuin libc ++ mikä helpottaa koodin jakamista kirjastojen välillä. Selvyyden vuoksi MSVC STL: ää ei sulauteta libc ++: een; ne ovat edelleen erillisiä kirjastoja, jotka tukevat eri alustoja erilaisilla tietorakenteilla.

Toisaalta yhtä hankkeen keskeisistä tavoitteista kutsutaan vaatimusten täydelliseksi noudattamiseksi tekniset tiedot, jotka takaavat korkean suorituskyvyn, helppokäyttöisyyden (virheenkorjaus, diagnostiikka, virheenetsintätyökalut) sekä lähde- ja ABI-yhteensopivuuden Visual Studio 2015/2017: n aiempien versioiden kanssa.

Niistä alueista, jotka Microsoft ei ole kiinnostunut kehittämään siirrettävyyttä muille alustoille ja mukautettujen laajennusten lisäämistä.

Jos haluat tietää enemmän Microsoftin lausunnosta, voit tutustua siihen Seuraavassa linkissä.


Artikkelin sisältö noudattaa periaatteita toimituksellinen etiikka. Ilmoita virheestä napsauttamalla täällä.

Ole ensimmäinen kommentti

Jätä kommentti

Sähköpostiosoitettasi ei julkaista.

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.