Auf der derzeit stattfindenden Konferenz CppCon 2019 hat Microsoft die Offenlegung des Quellcodes seiner Implementierung der Standardbibliothek C++ (STL, C++ Standard Library) angekündigt, die Teil des MSVC-Toolsets und der Entwicklungsumgebung Visual Studio ist. Die Bibliothek implementiert die in den aktuellen Standards C++14 und C++17 beschriebenen Funktionen und entwickelt sich in Richtung Unterstützung des zukünftigen Standards C++20 weiter, während sie den Änderungen im aktuellen Arbeitsentwurf folgt. Der Code steht unter der Apache-2.0-Lizenz mit Ausnahmeregelungen für Binärdateien, die das Problem des Einbindens von Laufzeitbibliotheken in die erzeugten ausführbaren Dateien löst.
Die Entwicklung dieser Bibliothek soll künftig als aktives Open-Source-Projekt auf GitHub fortgeführt werden, das von externen Entwicklern Pull-Requests mit Korrekturen und neuen Funktionen annimmt (für die Teilnahme an der Entwicklung ist die Unterzeichnung einer CLA-Vereinbarung zur Übertragung von Urheberrechten an den übergebenen Code erforderlich). Es wird angemerkt, dass der Wechsel der STL-Entwicklung zu GitHub den Microsoft-Kunden hilft, den Entwicklungsfortschritt zu verfolgen, mit den neuesten Änderungen zu experimentieren und die eingehenden Vorschläge für Neuerungen zu überprüfen.
Die Öffnung des Codes ermöglicht es der Community auch, in anderen Projekten fertige Implementierungen von Funktionen aus neuen Standards zu verwenden. Zum Beispiel wurde die Lizenz für den Code so gewählt, dass der Austausch von Code mit der Bibliothek aus dem LLVM-Projekt ermöglicht wird. STL und libc++ unterscheiden sich in der internen Darstellung von Datenstrukturen, aber wenn gewünscht, können die Entwickler von libc++ die gewünschte Funktionalität aus der STL (z.B. charconv) portieren oder die beiden Projekte können gemeinsam an Neuerungen arbeiten. Die in die Lizenz eingefügten Ausnahmen heben die Anforderungen zur Erwähnung der Nutzung des ursprünglichen Produkts bei der Lieferung der an Endbenutzer kompilierten Binärdateien mit der STL auf.
Zu den Hauptzielen des Projekts gehört die vollständige Übereinstimmung mit den Anforderungen der Spezifikationen, die Gewährleistung einer hohen Leistung, die Benutzerfreundlichkeit (Werkzeuge zur Fehlersuche, Diagnose, Fehleridentifizierung) und die Kompatibilität der Quelltexte und ABI mit den vorherigen Versionen von Visual Studio 2015/2017. Zu den Bereichen, die Microsoft nicht weiterentwickeln möchte, gehören die Portierung auf andere Plattformen und die Hinzufügung von nicht standardmäßigen Erweiterungen.
Quelle: opennet.ru
