Microsoft libero el código de la biblioteca estándar de C ++ que está en Visual Studio
En la conferencia CppCon 2019 que ha estado siendo celebrada en estos días, los exponentes de Microsoft aprovecharon para realizar el anunció la apertura del código para su implementación de la Biblioteca estándar de C ++ (también conocida como STL), que forma parte del kit de herramientas MSVC y el entorno de desarrollo de Visual Studio.
La biblioteca implementa las capacidades descritas en los estándares actuales de C ++ 14 y C ++ 17, y también se desarrolla en la dirección de soportar el futuro estándar C ++ 20, siguiendo los cambios en el borrador de trabajo actual.
Según las razones por las que la gente de Microsoft ha decidido realizar este movimiento, en el comunicado explican:
Hay varias razones por lo que hacemos esto, una de ellas es trabajar en el STL en GitHub, esto permitirá a nuestros clientes seguir nuestro desarrollo tal como sucede, probar nuestros últimos cambios y ayudarnos a mejorar nuestras solicitudes de extracción al revisarlos.
A medida que la estandarización de C ++ se acelera, y cada año se votan características más grandes, creemos que será importante aceptar las características principales como contribuciones de código abierto. (Por ejemplo, las bibliotecas cronológicas y de formato de C ++ 20 son candidatos potenciales). También queremos contribuir de nuevo a la comunidad de C ++ al hacer posible la implementación de nuestras funciones principales. (Por ejemplo, charconv de C ++ 17)
Con ello la gente de Microsoft da ca conocer que se planea continuar desarrollando esta biblioteca como un proyecto abierto que se está desarrollando en GitHub que aceptará solicitudes de extracción de desarrolladores externos con correcciones y la implementación de nuevas características (para participar en el desarrollo, se requiere un acuerdo CLA para transferir los derechos de propiedad al código transferido).
Se observa que la transferencia del desarrollo de STL a GitHub ayudará a los clientes de Microsoft a realizar un seguimiento del progreso del desarrollo, experimentar con los últimos cambios y ayudar a revisar las solicitudes entrantes de innovaciones.
Abrir el código también permitirá a la comunidad utilizar implementaciones ya preparadas de oportunidades de nuevos estándares en otros proyectos.
Sobre la licencia del código de está biblioteca, es propuesto como abierto bajo la licencia Apache 2.0 con excepciones para archivos binarios que resuelven el problema de incluir bibliotecas de tiempo de ejecución en la composición de los archivos ejecutables generados.
Para ser claros, el STL de MSVC no se está fusionando con libc ++ ya que siguen siendo bibliotecas distintas.
Microsoft explica por que la licencia de código se selecciona de tal manera que permita intercambiar código con la biblioteca libc ++ del proyecto LLVM. STL y libc ++ difieren en la representación interna de las estructuras de datos, pero si lo desean, los desarrolladores de libc ++ pueden portar funcionalidades interesantes de STL (por ejemplo, charconv) o ambos proyectos pueden desarrollar conjuntamente algunas innovaciones.
STL de MSVC se distribuye bajo la licencia Apache v2.0 con excepciones LLVM, que fue creado recientemente por el proyecto Clang / LLVM / libc ++.
Las excepciones agregadas a la licencia de Apache cancelan el requisito de mencionar el uso del producto fuente al entregar archivos binarios compilados con STL a los usuarios finales.
Esta licencia de código abierto permisiva fue elegida porque tener la misma licencia que libc++ lo que hará que sea más fácil compartir código entre las bibliotecas. Para ser claros, el STL de MSVC no se está fusionando con libc ++; siguen siendo bibliotecas distintas que admiten diferentes plataformas con diferentes representaciones de estructura de datos.
Por otra parte uno de los objetivos clave del proyecto se denomina cumplimiento total con los requisitos de las especificaciones, lo que garantiza un alto rendimiento, facilidad de uso (depuración, diagnóstico, herramientas de detección de errores) y compatibilidad a nivel de origen y ABI con versiones anteriores de Visual Studio 2015/2017.
Entre las áreas que Microsoft no está interesado en desarrollar son la portabilidad a otras plataformas y agregar extensiones personalizadas.
Si quieres conocer mas al respecto sobre el comunicado que realizo Microsoft puedes consultarlo en el siguiente enlace.