Microsoft открыл код стандартной библиотеки С++, поставляемой в Visual Studio

На проходящей в эти дни конференции CppCon 2019 компания Microsoft объявила об открытии кода своей реализации стандартной библиотеки С++ (STL, C++ Standard Library), входящей в состав инструментария MSVC и среды разработки Visual Studio. Библиотека реализует возможности, описанные в актуальных стандартах C++14 и C++17, а также развивается в направлении поддержки будущего стандарта C++20, следуя за изменениями в текущем рабочем черновике. Код открыт под лицензией Apache 2.0 с исключениями для бинарных файлов, решающими проблему с включением runtime-библиотек в состав формируемых исполняемых файлов.

Разработку данной библиотеки в дальнейшем планируется вести как развиваемый на GitHub открытый проект, принимающий от сторонних разработчиков pull-запросы с исправлениями и реализацией новых возможностей (для участия в разработке требуется подписание CLA-соглашения о передаче имущественных прав на передаваемый код). Отмечается, что перевод разработки STL на GitHub поможет клиентам Microsoft отслеживать ход разработки, экспериментировать с самими свежими изменениями и помогать рецензировать поступающие запросы на добавление новшеств.

Открытие кода также позволит сообществу использовать в других проектах готовые реализации возможностей из новых стандартов. Например, лицензия на код выбрана таким образом, чтобы предоставить возможность обмениваться кодом с библиотекой libc++ от проекта LLVM. STL и libc++ отличаются внутренним представлением структур данных, но при желании разработчики libc++ могут портировать интересующую функциональность из STL (например, charconv) или оба проекта совместно смогут развивать какие-то новшества. Добавленные в лицензию Apache исключения отменяют требования по упоминанию использования исходного продукта при поставке конечным пользователям бинарных файлов, скомпилированных с STL.

Из ключевых целей проекта называется полное соответствие требованиям спецификаций, обеспечение высокой производительности, удобство использования (средства отладки, диагностики, выявления ошибок) и совместимость на уровне исходных текстов и ABI c прошлыми выпусками Visual Studio 2015/2017. Среди областей, которые Microsoft не заинтересована развивать, отмечаются портирование на другие платформы и добавление нестандартных расширений.

Источник: http://www.opennet.ru/opennews/art.shtml? num=51507

©  OpenNet