Microsoft hat die in Visual Studio enthaltene C++-Standardbibliothek als Open Source bereitgestellt

Auf der in diesen Tagen stattfindenden Konferenz CppCon 2019 präsentierte Microsoft kündigte die über das Öffnen des Codes seiner Implementierung der C++-Standardbibliothek (STL, C++-Standardbibliothek), die Teil des MSVC-Toolkits und der Visual Studio-Entwicklungsumgebung ist. Die Bibliothek implementiert die in den aktuellen C++14- und C++17-Standards beschriebenen Funktionen und entwickelt sich nach Änderungen im aktuellen Arbeitsentwurf auch in Richtung Unterstützung für den zukünftigen C++20-Standard weiter. Code ist offen unter der Apache 2.0-Lizenz mit Ausnahmen für Binärdateien, die das Problem der Einbeziehung von Laufzeitbibliotheken in die generierten ausführbaren Dateien lösen.

Die zukünftige Entwicklung dieser Bibliothek soll als offenes, auf GitHub entwickeltes Projekt durchgeführt werden, das Pull-Requests von Drittentwicklern mit Korrekturen und der Implementierung neuer Funktionen akzeptiert (die Teilnahme an der Entwicklung erfordert die Unterzeichnung einer CLA-Vereinbarung über die Übertragung). Eigentumsrechte an dem übertragenen Code). Es wird darauf hingewiesen, dass die Übertragung der STL-Entwicklung auf GitHub Microsoft-Kunden dabei helfen wird, den Entwicklungsfortschritt zu verfolgen, mit den neuesten Änderungen zu experimentieren und eingehende Anfragen zum Hinzufügen von Innovationen zu überprüfen.

Open Source wird es der Community auch ermöglichen, vorgefertigte Implementierungen von Funktionen aus den neuen Standards in anderen Projekten zu verwenden. Beispielsweise wird die Codelizenz ausgewählt, um die Möglichkeit zu bieten, Code mit der Bibliothek zu teilen libc++ aus dem LLVM-Projekt. STL und libc++ unterscheiden sich in der internen Darstellung von Datenstrukturen, aber auf Wunsch können libc++-Entwickler interessante Funktionen von STL portieren (z. B. charconv) oder beide Projekte können gemeinsam einige Innovationen entwickeln. Durch die zur Apache-Lizenz hinzugefügten Ausnahmen entfällt die Anforderung, bei der Bereitstellung von mit der STL kompilierten Binärdateien an Endbenutzer auf die Verwendung des Originalprodukts hinzuweisen.

Zu den Hauptzielen des Projekts gehören die vollständige Einhaltung der Spezifikationsanforderungen, die Gewährleistung hoher Leistung, Benutzerfreundlichkeit (Debugging-Tools, Diagnose, Fehlererkennung) sowie Kompatibilität auf Quellcodeebene und ABI mit früheren Versionen von Visual Studio 2015/2017. Zu den Bereichen, an deren Entwicklung Microsoft kein Interesse hat, gehören die Portierung auf andere Plattformen und das Hinzufügen nicht standardmäßiger Erweiterungen.

Source: opennet.ru

Kommentar hinzufügen