Microsoft выпустила код из своей реализации STL, стандартной библиотеки C ++.

STL с открытым исходным кодом

Конференция CppCon 2019 стала местом, где реализация большое объявление от Microsoft, хорошо в ней выпустил релиз исходного кода библиотеки STL Стандарт C ++ включен в Visual C ++, который доступен на момент объявления под бесплатной лицензией, а именно Apache 2.0 (что вполне допустимо).

libcxx, стандартная библиотека LLVM / Clang C ++, уже использует эту лицензию., что должно облегчить обмен кодом между проектами. Весь исходный код этой библиотеки доступен и уже компилируется с Visual C ++, но тестирование еще не включено.

Ожидается, что открытый проект будет развиваться на GitHub и получать запросы на вытягивание. сторонние с новыми функциями и исправлениями. Чтобы стать участником, вы должны подписать соглашение о передаче кода CLA.

Команда MSVC считает, что переход с STL на GitHub поможет клиентам Microsoft оставаться в курсе процесса разработки, экспериментировать с инновациями и способствовать развитию проекта.

Вместо этого, разработчики смогут использовать готовые реализации новых стандартов в других проектах.

Например, вы можете обмениваться кодом с библиотекой libc ++, которая работает в рамках проекта LLVM. Microsoft подчеркивает, что STL и libc ++ не объединяются, это все же разные библиотеки, с разными конструкциями и платформами. Однако теперь вы можете работать над новыми функциями для обеих библиотек, не беспокоясь о лицензировании.

Эта реализация стандартной библиотеки не предназначена для конкуренции с реализациями, предоставляемыми GCC или Clang, например: проект Microsoft не планирует поддерживать другие платформы, кроме Microsoft.

Однако разработчики стремятся к качественной реализации: соответствующей стандартам и очень быстрой.

Двоичная совместимость гарантирована с Visual C ++ версий 2015 и 2017. (Эта библиотека поставляется с версией 2019 года), за исключением функций, которые были реализованы до окончательной доработки стандарта (рабочие документы и технические спецификации The C ++ Standards Committee).

Ветка WCBF02 (все еще внутренняя для Microsoft) содержит несовместимые изменения на двоичном уровне, но не на уровне исходного кода (для обновления стандартной библиотеки вам потребуется перекомпилировать свои проекты, а не просто изменить DLL). Эта ветка содержит ряд улучшений и исправлений и скоро станет общедоступной.

В отличие от некоторых проектов, которые называются бесплатными, Microsoft рекомендует сообщать о дефектах и ​​вносить свой вклад в код проекта (В этом случае необходимо будет подписать CLA, чтобы предоставить Microsoft необходимые права для перераспределения взносов, особенно в случае изменения лицензии на проект, с которой LLVM сталкивается в течение нескольких лет).

В ближайшем будущем, Microsoft следует добавить в проект свой внутренний набор тестов.. Пересмотренный внутри компании список ошибок переносится на GitHub. На данный момент компиляция выполняется с помощью MSBuild, но выполняется переход на CMake. Реализуется функционал C ++ 20.

Другие компоненты Visual C ++ не должны быть доступны для бесплатных лицензий. Microsoft оправдывает этот выбор, заявляя, что стандартная библиотека C ++ в значительной степени независима от компилятора (в отличие, например, от стандартной библиотеки C) и что она очень быстро развивается по сравнению с другими компонентами компилятора.

Исходный код STL находится теперь доступно на Github где желающие смогут его скачать или изучить его код.

В репозитории GitHub есть весь исходный код продукта, новая система сборки CMake и README с дополнительной информацией. Библиотека находится под лицензией Apache 2.0 (за исключением некоторых двоичных файлов).

Очевидно, что это не влияет на разработчиков, которые просто хотят использовать STL, поскольку он доступен для использования в интегрированной среде разработки Visual Studio. Однако разработчики, которые хотят участвовать в разработке STL, могут сделать это с помощью репозитория GitHub.

Переход на GitHub все еще продолжается, но теперь код можно клонировать и собирать.


Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.