Los responsables del lenguaje de programación C3 han publicado la versión 0.8.2, una actualización que describen como "modesta" frente a la 0.8.1, pero que introduce mejoras de ergonomía lingüística, nuevas capacidades de reflexión y un conjunto de arreglos en compilador y biblioteca estándar.
Entre los cambios del lenguaje destaca la posibilidad de que las bibliotecas expongan configuraciones de objetivo reutilizables mediante un mapa de plantillas en su manifiesto. Los proyectos pueden incorporarlas con la sintaxis template: "library/template", de modo que las propiedades del template se cargan primero y los ajustes locales del destino las sobrescriben. También se añade la reflexión sobre genéricos con los miembros Foo::is_generic(...), Foo::generic_qname y Foo::generic_args, que permiten inspeccionar instanciaciones genéricas. Los bitstruct obtienen propiedades bitoffset y bitsize, y los parámetros aceptan nuevas anotaciones: own, init y drop, pensadas para análisis estático y documentación.
En el terreno del compilador se corrige la alineación de pila en bloques asm, que deja de ser implícita y pasa a opt-in mediante @align, y en Windows ya es posible fijar el subsistema directamente, lo que habilita, entre otros, binarios EFI. La biblioteca estándar incorpora Atomic.compare_exchange, array::contains_slice, array::index_of_slice y log::register_dynamic_category, además de admitir cadenas vacías en String.index_of y rindex_of. La versión soluciona regresiones en macOS, fallos en IPv6 y en la lectura de denormales en String.to_double(), entre otros. El equipo agradece las contribuciones de la comunidad de C3 y remite a la documentación oficial y al canal de Discord para quienes quieran probar el lenguaje.
