Microsoft a publié le code de son implémentation de STL, la bibliothèque C ++ standard

OpenSource de la STL

La conférence CppCon 2019 a été le lieu l'exécution une grande annonce de Microsoft, bien en elle a dévoilé la publication du code source de la bibliothèque STL Standard C ++ inclus avec Visual C ++ qui, dès l'annonce, est disponible sous une licence gratuite, en particulier Apache 2.0 (ce qui est assez permissif).

libcxx, la bibliothèque standard LLVM / Clang C ++, utilise déjà cette licence, ce qui devrait faciliter l'échange de code entre les projets. Tout le code source de cette bibliothèque est disponible et compilable avec Visual C ++, mais les tests ne sont pas encore inclus.

Le projet ouvert devrait se développer sur GitHub et recevoir des pull requests tiers avec de nouvelles fonctionnalités et correctifs. Pour devenir membre, vous devez signer un accord de transfert de code CLA.

L'équipe MSVC estime que la migration de STL vers GitHub aidera les clients Microsoft à rester au courant du processus de développement, à expérimenter des innovations et à développer le projet.

Au lieu de cela, les développeurs pourront utiliser des implémentations prêtes à l'emploi des nouvelles normes dans d'autres projets.

Par exemple, vous pouvez échanger du code avec une bibliothèque libc ++ qui fonctionne dans le projet LLVM. Microsoft souligne que STL et libc ++ ne fusionnent pas, ce sont toujours des bibliothèques différentes, avec différentes structures et plates-formes. Cependant, vous pouvez désormais travailler sur de nouvelles fonctionnalités pour les deux bibliothèques sans vous soucier des licences.

Cette implémentation de la bibliothèque standard n'est pas destinée à concurrencer les implémentations fournies par GCC ou Clang, par exemple: le projet Microsoft ne prévoit pas de prendre en charge d'autres plateformes que Microsoft.

Cependant, les développeurs visent une mise en œuvre de haute qualité: conforme aux normes et très rapide.

La compatibilité binaire est garantie avec les versions 2015 et 2017 de Visual C ++ (Cette bibliothèque est celle fournie avec la version 2019), à l'exception des fonctionnalités qui ont été implémentées avant la finalisation de la norme (documents de travail et spécifications techniques Le Comité des normes C ++).

La branche WCBF02 (toujours interne à Microsoft) contient des modifications incompatibles au niveau binaire, mais pas au niveau source (pour une mise à jour de bibliothèque standard, vous devrez recompiler vos projets, pas seulement changer la DLL). Cette branche contient un certain nombre d'améliorations et de correctifs et sera bientôt disponible publiquement.

Contrairement à certains projets décrits comme gratuits, Microsoft recommande de signaler les défauts et de contribuer au code du projet (Dans ce cas, il sera nécessaire de signer un CLA pour donner à Microsoft les droits nécessaires à la redistribution des contributions, notamment en cas de changement de licence du projet, difficulté que LLVM fait face depuis plusieurs années).

Dans un proche avenir, Microsoft devrait ajouter sa suite de tests internes au projet. La liste de bogues escaladée en interne est en cours de migration vers GitHub. Pour le moment, la compilation est effectuée avec MSBuild, mais une migration vers CMake est en cours. La fonctionnalité C ++ 20 est en cours d'implémentation.

Les autres composants Visual C ++ ne doivent pas être disponibles pour les licences gratuites. Microsoft justifie ce choix en déclarant que la bibliothèque C ++ standard est assez indépendante du compilateur (par opposition à la bibliothèque C standard par exemple) et qu'elle évolue très rapidement par rapport aux autres composants du compilateur.

Le code source STL est localisé maintenant disponible sur Github où les personnes intéressées pourront le télécharger ou consulter son code.

Le référentiel GitHub contient tout le code source du produit, un nouveau système de construction CMake et README avec plus d'informations. La bibliothèque est sous licence Apache 2.0 (à l'exception de certains binaires).

De toute évidence, cela n'affecte pas les développeurs qui souhaitent simplement utiliser la STL, car il est disponible pour une utilisation dans l'IDE de Visual Studio. Cependant, les développeurs qui souhaitent participer au développement STL peuvent le faire en utilisant le référentiel GitHub.

Le passage à GitHub est toujours en cours, mais vous pouvez désormais cloner et créer votre code.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.