Microsoft atvērtā pirmkoda C++ standarta bibliotēku, kas iekļauta Visual Studio

Šajās dienās notiekošajā konferencē CppCon 2019 Microsoft paziņoja par C++ standarta bibliotēkas (STL, C++ Standard Library) ieviešanas koda atvēršanu, kas ir daļa no MSVC rīkkopas un Visual Studio izstrādes vides. Bibliotēka ievieš iespējas, kas aprakstītas pašreizējos C++14 un C++17 standartos, kā arī attīstās, lai atbalstītu topošo C++20 standartu pēc izmaiņām pašreizējā darba projektā. Kods ir atvērts saskaņā ar Apache 2.0 licenci ar izņēmumiem binārajiem failiem, kas atrisina problēmu, kas saistīta ar izpildlaika bibliotēku iekļaušanu ģenerētajos izpildfailos.

Šīs bibliotēkas izstrādi nākotnē plānots veikt kā atvērtu projektu, kas izstrādāts GitHub, pieņemot pull pieprasījumus no trešo pušu izstrādātājiem ar labojumiem un jaunu funkciju ieviešanu (lai piedalītos izstrādē ir jāparaksta CLA līgums par nodošanu īpašuma tiesību uz nodoto kodu). Tiek atzīmēts, ka STL izstrādes nodošana GitHub palīdzēs Microsoft klientiem izsekot izstrādes gaitai, eksperimentēt ar jaunākajām izmaiņām un palīdzēt pārskatīt ienākošos jauninājumu pievienošanas pieprasījumus.

Atvērtais kods arī ļaus kopienai izmantot gatavus jauno standartu funkciju ieviešanu citos projektos. Piemēram, koda licence ir izvēlēta, lai nodrošinātu iespēju koplietot kodu ar bibliotēku libc++ no LLVM projekta. STL un libc++ atšķiras ar datu struktūru iekšējo attēlojumu, taču, ja vēlas, libc++ izstrādātāji var pārvest interesējošo funkcionalitāti no STL (piemēram, charconv) vai arī abi projekti var kopīgi izstrādāt kādu jauninājumu. Apache licencei pievienotie izņēmumi atceļ prasību norādīt oriģinālā produkta izmantošanu, piegādājot galalietotājiem bināros failus, kas apkopoti ar STL.

Projekta galvenie mērķi ir pilnīga atbilstība specifikāciju prasībām, augstas veiktspējas nodrošināšana, lietošanas ērtums (atkļūdošanas rīki, diagnostika, kļūdu noteikšana) un savietojamība pirmkoda līmenī un ABI ar iepriekšējiem Visual Studio 2015/2017 laidieniem. Starp jomām, kuras Microsoft neinteresē attīstīt, ir pārnešana uz citām platformām un nestandarta paplašinājumu pievienošana.

Avots: opennet.ru

Pievieno komentāru