Microsoft выпустила стандартный код библиотеки C ++, который есть в Visual Studio.

логотип Microsoft

Логотип Microsoft

На конференции CppCon 2019 что отмечается в эти дни, представители Microsoft воспользовались возможностью, чтобы объявить об открытии кода для его реализации из стандартной библиотеки C ++ (также известный как STL), который является частью MSVC Toolkit и среды разработки Visual Studio.

Библиотека реализует возможности, описанные в текущих стандартах C ++ 14 и C ++ 17, и он также разработан в направлении поддержки будущего стандарта C ++ 20 после изменений в текущем рабочем проекте.

По причины, по которым люди в Microsoft решили сделать этот шаг, в заявлении они объясняют:

Есть несколько причин, по которым мы делаем это, одна из них - работать над STL на GitHub, это позволит нашим клиентам следить за нашим развитием, тестировать наши последние изменения и помогает нам улучшить наши запросы на вытягивание, просматривая их.

Поскольку стандартизация C ++ ускоряется и ежегодно голосуются за более крупные функции, мы думаем, что будет важно принять основные функции в качестве вкладов с открытым исходным кодом. (Например, потенциальными кандидатами являются формат C ++ 20 и хронологические библиотеки.) Мы также хотим внести свой вклад в сообщество C ++, сделав возможной реализацию наших основных функций. (Например, charconv из C ++ 17)

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

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

Откройте код тоже разрешить сообществу использовать готовые реализации возможности для новых стандартов в других проектах.

О лицензии кода этой библиотеки, Предлагается как открытый под лицензией Apache 2.0 с исключениями для бинарных файлов, решающих проблему включения библиотек времени выполнения в состав сгенерированных исполняемых файлов.

Чтобы было ясно, MSVC STL не объединяется с libc ++, поскольку они все еще являются отдельными библиотеками.

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

MSVC STL распространяется под лицензией Apache v2.0 с исключениями LLVM, которая была недавно создана проектом Clang / LLVM / libc ++.

Исключения, добавленные в лицензию Apache, отменяют требование упоминать использование исходного продукта при доставке скомпилированных STL двоичных файлов конечным пользователям.

Эта разрешительная лицензия с открытым исходным кодом была выбрана потому, что она имеет ту же лицензию, что и libc ++. что упростит обмен кодом между библиотеками. Чтобы было ясно, MSVC STL не объединяется с libc ++; они по-прежнему являются отдельными библиотеками, которые поддерживают разные платформы с разными представлениями структур данных.

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

Среди областей, которые Microsoft не заинтересована в разработке переносимости на другие платформы и добавлении пользовательских расширений.

Если вы хотите узнать больше о заявлении Microsoft, вы можете ознакомиться с ним. По следующей ссылке.


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

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

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

*

*

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