
Cette implémentation de la bibliothèque standard n’envisage pas d’entrer en compétition avec les implémentations fournies par GCC ou Clang, par exemple : le projet de Microsoft n’envisage pas d’être compatible avec d’autres plateformes que celles de Microsoft. Cependant, les développeurs visent une implémentation de haute qualité : conforme avec les normes et très rapide.
La compatibilité binaire est garantie avec les versions 2015 et 2017 de Visual C++ (cette bibliothèque étant celle fournie avec la version 2019), sauf pour les fonctionnalités qui ont été implémentées avant la finalisation de la norme (working papers et technical specifications du comité de normalisation de C++). La branche WCBF02 (toujours interne à Microsoft) contient des changements incompatibles au niveau binaire, mais pas au niveau des sources (pour une mise à jour de la bibliothèque standard, il faudra donc recompiler ses projets, pas simplement changer de DLL). Cette branche contient une série d’améliorations et de corrections et devrait bientôt être disponible publiquement.
Contrairement à certains projets pourtant décrits comme libres, Microsoft encourage à signaler les défauts et à contribuer du code au projet (dans ce cas, il faudra signer un CLA pour donner à Microsoft les droits nécessaires à la redistribution des contributions, notamment au cas où la licence du projet change, une difficulté à laquelle LLVM s’est confronté pendant plusieurs années).
Dans le futur proche, Microsoft devrait ajouter sa suite de tests interne au projet. La liste des défauts remontés en interne est en cours de migration vers GitHub. Pour le moment, la compilation se passe avec MSBuild, mais une migration vers CMake est en cours. Les fonctionnalités de C++20 sont en cours d’implémentation.
On ne devrait pas voir rapidement d’autres composants de Visual C++ arriver sous licence libre. Microsoft justifie ce choix en indiquant que la bibliothèque standard C++ est assez indépendante du compilateur (contrairement à la bibliothèque standard C, par exemple) et qu’elle évolue très vite par rapport aux autres composants du compilateur.

Source : Open Sourcing MSVC’s STL.
Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.