Inilabas ng Microsoft ang karaniwang code ng C ++ library na nasa Visual Studio

logo ng microsoft

Logo ng Microsoft

Sa komperensiya ng CppCon 2019 na ipinagdiriwang sa mga panahong ito, ang mga tagapagtaguyod ng Microsoft ay kumuha ng pagkakataon na ipahayag ang pagbubukas ng code para sa pagpapatupad nito mula sa C ++ Standard Library (kilala rin bilang STL), na bahagi ng MSVC Toolkit at ang kapaligiran sa pag-unlad ng Visual Studio.

Ipinapatupad ng silid-aklatan ang mga kakayahang inilarawan sa kasalukuyang pamantayan ng C ++ 14 at C ++ 17, at binuo din ito sa direksyon ng pagsuporta sa hinaharap na pamantayan ng C ++ 20, kasunod sa mga pagbabago sa kasalukuyang gumaganang draft.

Sa pamamagitan ng ang mga kadahilanan kung bakit ang mga tao sa Microsoft ay nagpasya na gumawa ng paglipat na ito, sa pahayag na ipinaliwanag nila:

Mayroong maraming mga kadahilanan kung bakit namin ito ginawa, isa sa mga ito ay upang gumana sa STL sa GitHub, papayagan nitong sundin ng aming mga customer ang aming pag-unlad na nangyayari, subukan ang aming pinakabagong mga pagbabago at matutulungan kaming mapabuti ang aming mga kahilingan sa paghila sa pamamagitan ng pagsusuri sa kanila.

Habang pinabilis ang standardisasyon ng C ++, at ang mga malalaking tampok ay ibinoto bawat taon, sa palagay namin ay magiging mahalaga na tanggapin ang mga pangunahing tampok bilang mga bukas na kontribusyon sa mapagkukunan. (Halimbawa, ang format na C ++ 20 at magkakasunod na mga aklatan ay mga potensyal na kandidato.) Nais din naming magbigay ng kontribusyon pabalik sa pamayanan ng C ++ sa pamamagitan ng gawing posible ang pagpapatupad ng aming mga pangunahing pag-andar. (Halimbawa, charconv mula sa C ++ 17)

Gamit ito Ipinaalam sa mga tao ng Microsoft na balak nilang ipagpatuloy ang pagbuo ng library na ito bilang isang bukas na proyekto na binuo sa GitHub na tatanggap ng mga kahilingan sa paghila mula sa mga panlabas na developer na may mga pag-aayos at pagpapatupad ng mga bagong tampok (upang lumahok sa pag-unlad, kinakailangan ng isang kasunduan sa CLA upang ilipat ang mga karapatan sa pagmamay-ari sa inilipat na code).

Naobserbahan na ang paglilipat ng pag-unlad mula sa STL patungo sa GitHub ay makakatulong sa mga customer ng Microsoft na subaybayan ang pag-unlad ng pag-unlad, mag-eksperimento sa mga pinakabagong pagbabago, at tulungan suriin ang mga papasok na kahilingan para sa mga makabagong ideya.

Buksan din ang code payagan ang komunidad na gumamit ng mga handa nang pagpapatupad mga pagkakataon para sa mga bagong pamantayan sa iba pang mga proyekto.

Tungkol sa lisensya ng code ng library na ito, Iminungkahi ito bilang bukas sa ilalim ng lisensya ng Apache 2.0 na may mga pagbubukod para sa mga binary file na malulutas ang problema ng pagsasama ng mga runtime library sa komposisyon ng nabuong maipapatupad na mga file.

Upang maging malinaw, Ang MSVC STL ay hindi pagsasama sa libc ++ dahil magkakahiwalay pa rin sila ng mga aklatan.

Ipinaliwanag ng Microsoft kung bakit ang lisensya ng code ay napili sa isang paraan upang payagan ang pagpapalit ng code sa libc ++ library ng proyekto ng LLVM. Ang STL at libc ++ ay magkakaiba sa panloob na representasyon ng mga istruktura ng data, ngunit kung nais nila, ang mga developer ng libc ++ ay maaaring mag-port ng mga kagiliw-giliw na pagpapaandar ng STL (hal. Charconv) o ang parehong mga proyekto ay maaaring magkasama na bumuo ng ilang mga pagbabago.

Ang MSVC STL ay ipinamamahagi sa ilalim ng lisensya ng Apache v2.0 na may mga pagbubukod sa LLVM, na kamakailang nilikha ng proyekto ng Clang / LLVM / libc ++.

Ang mga pagbubukod na idinagdag sa lisensya ng Apache ay kinansela ang kinakailangan upang banggitin ang paggamit ng pinagmulang produkto kapag naghahatid ng mga binaryong naipon ng STL sa mga end user.

Ang mapagpahintulot na lisensyang bukas na mapagkukunan na ito ay napili dahil ang pagkakaroon ng parehong lisensya bilang libc ++ na magpapadali sa pagbabahagi ng code sa pagitan ng mga aklatan. Upang maging malinaw, ang MSVC STL ay hindi pinagsasama sa libc ++; magkakaiba pa rin silang mga aklatan na sumusuporta sa iba't ibang mga platform na may iba't ibang mga representasyon ng istraktura ng data.

Sa kabilang banda, ang isa sa mga pangunahing layunin ng proyekto ay tinatawag na ganap na pagsunod sa mga kinakailangan mga pagtutukoy, tinitiyak ang mataas na pagganap, kadalian ng paggamit (pag-debug, mga diagnostic, mga tool sa pagtuklas ng error), at mapagkukunan at pagiging tugma sa antas ng ABI sa mga naunang bersyon ng Visual Studio 2015/2017.

Kabilang sa mga lugar na Ang Microsoft ay hindi interesado sa pagbuo ay maaaring dalhin sa iba pang mga platform at pagdaragdag ng mga pasadyang extension.

Kung nais mong malaman ang tungkol sa pahayag na ginawa ng Microsoft, maaari mo itong konsultahin Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.