Microsoft ha reso open source la libreria standard C++ inclusa in Visual Studio

Alla conferenza CppCon 2019 che si svolge in questi giorni, Microsoft ha annunciato il sull'apertura del codice della sua implementazione della libreria standard C++ (STL, libreria standard C++), che fa parte del toolkit MSVC e dell'ambiente di sviluppo di Visual Studio. La libreria implementa le funzionalità descritte negli attuali standard C++14 e C++17 e si sta evolvendo anche verso il supporto del futuro standard C++20, a seguito delle modifiche apportate all'attuale bozza di lavoro. Codice è aperto sotto la licenza Apache 2.0 con eccezioni per i file binari che risolvono il problema di includere librerie runtime nei file eseguibili generati.

Si prevede che in futuro lo sviluppo di questa libreria sarà realizzato come progetto aperto sviluppato su GitHub, accettando richieste pull da sviluppatori di terze parti con correzioni e l'implementazione di nuove funzionalità (la partecipazione allo sviluppo richiede la firma di un accordo CLA sul trasferimento dei diritti di proprietà sul codice trasferito). Va notato che il trasferimento dello sviluppo STL su GitHub aiuterà i clienti Microsoft a monitorare lo stato di avanzamento dello sviluppo, sperimentare le ultime modifiche e aiutare a rivedere le richieste in arrivo per l'aggiunta di innovazioni.

L'open source consentirà inoltre alla comunità di utilizzare implementazioni già pronte di funzionalità dei nuovi standard in altri progetti. Ad esempio, la licenza del codice viene scelta per fornire la possibilità di condividere il codice con la libreria libc++ dal progetto LLVM. STL e libc++ differiscono nella rappresentazione interna delle strutture dati, ma se lo desiderano, gli sviluppatori libc++ possono trasferire funzionalità di interesse da STL (ad esempio, charconv) oppure entrambi i progetti possono sviluppare congiuntamente alcune innovazioni. Le eccezioni aggiunte alla licenza Apache rimuovono l'obbligo di citare l'uso del prodotto originale quando si distribuiscono file binari compilati con STL agli utenti finali.

Gli obiettivi principali del progetto includono il pieno rispetto dei requisiti delle specifiche, garantendo prestazioni elevate, facilità d'uso (strumenti di debug, diagnostica, rilevamento errori) e compatibilità a livello di codice sorgente e ABI con le versioni precedenti di Visual Studio 2015/2017. Tra le aree che Microsoft non è interessata a sviluppare ci sono il porting su altre piattaforme e l'aggiunta di estensioni non standard.

Fonte: opennet.ru

Aggiungi un commento