Estamos en 2020 ahora y se acerca C ++ 20, junto con la tan esperada función de módulos C ++. Pero después de ver algunas charlas sobre CppCon, encuentro que los módulos C ++ están en un lugar extraño, especialmente para los administradores de paquetes de Linux (pacman, apt, emerge, etc.)
Por lo que he aprendido, los módulos C ++ son
- Dependiente del compilador
- No puedes usar un módulo creado por GCC en Clang
- Los módulos GCC 9.1 no funcionarán en GCC 9.2
- Puedes tener muchas versiones diferentes del mismo módulo
- Siempre que no se exporten al mismo alcance
- Necesita reconstruir un módulo si sus dependencias se actualizan
Mi problema es que, en todas las distribuciones de lanzamiento continuo, los compiladores se actualizan todo el tiempo y el usuario puede tener su propia compilación. Actualmente uno solo puede actualizar el compilador o también actualizar libstdc++
. Pero con los módulos, parece sugerir libstdc++
que debe actualizarse cuando se actualiza el compilador.
¿Cómo manejaría el administrador de paquetes la actualización, por ejemplo, el STL cuando se actualiza el compilador? No creo que sea factible construir todas las versiones del módulo STL para cada versión del compilador. Tampoco es una buena idea que el usuario tenga que construir su propio módulo STL.