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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.