La conferința CppCon 2019, care se desfășoară în aceste zile, compania Microsoft a anunțat deschiderea codului sursă pentru implementarea sa a bibliotecii standard C++ (STL, C++ Standard Library), parte a uneltelor MSVC și a mediului de dezvoltare Visual Studio. Biblioteca implementa funcționalități descrise în standardele actuale C++14 și C++17 și se dezvoltă în direcția suportului pentru viitorul standard C++20, urmând modificările din prezentul draft de lucru. Codul este sub licența Apache 2.0, cu excepții pentru fișierele binare, care soluționează problema includerii bibliotecilor runtime în fișierele executabile generate.
Dezvoltarea acestei biblioteci va fi condusă în continuare ca un proiect deschis pe GitHub, acceptând de la dezvoltatorii externi pull request-uri cu corecții și implementări de noi funcționalități (pentru a participa la dezvoltare, este necesară semnarea unui acord CLA privind transferul drepturilor de proprietate asupra codului transmis). Se observă că transferul dezvoltării STL pe GitHub va ajuta clienții Microsoft să urmărească evoluția dezvoltării, să experimenteze cu cele mai recente modificări și să ajute la revizuirea cererilor de adăugare a inovațiilor.
Deschiderea codului va permite, de asemenea, comunității să utilizeze în alte proiecte implementările deja existente ale funcționalităților din noile standarde. De exemplu, licența pentru cod a fost aleasă astfel încât să ofere posibilitatea de a împărtăși codul cu biblioteca din proiectul LLVM. STL și libc++ diferă în reprezentarea internă a structurilor de date, dar dezvoltatorii libc++ pot, la cerere, să porteze funcționalitatea de interes din STL (de exemplu, charconv) sau ambele proiecte pot dezvolta împreună anumite inovații. Excepțiile adăugate la licența Apache abrogă cerințele de menționare a utilizării produsului sursă la livrarea fișierelor binare compilate cu STL către utilizatorii finali.
Printre obiectivele principale ale proiectului se numără conformitatea totală cu cerințele specificațiilor, asigurarea unei performanțe ridicate, ușurința în utilizare (unelte pentru depanare, diagnosticare, identificarea erorilor) și compatibilitatea la nivelul surselor și ABI cu versiunile anterioare Visual Studio 2015/2017. Domeniile pe care Microsoft nu este interesată să le dezvolte includ portarea pe alte platforme și adăugarea de extensii nestandard.
Sursa: opennet.ro
