Archivo por meses: febrero 2019

Autovala 1.12

Acabo de subir una nueva versión de Autovala, la 1.12. Los principales cambios son tres:

Para empezar, he completado el soporte de Meson. Ahora ya funciona completamente y soporta todas las funcionalidades. Y teniendo en cuenta la diferencia de velocidad a la hora de compilar, es algo que se agradece mucho.

Por otro lado, ahora ya compila los ficheros .gir a .typelib. Este era un paso necesario para que las bibliotecas con Gobject Introspection funcionasen, pero hasta que ayer intenté desarrollar una y utilizarla desde Gnome Shell, no supe que faltaba ese paso.

Por último, corrige un problema en el espacio de nombres. Hasta ahora, al hacer un programa, se creaban una serie de constantes (como el número de versión, o el prefijo de la ruta de instalación) bajo el namespace Constants. Sin embargo, en el caso de una biblioteca, dichas constantes se metían en un namespace diferente, llamado como la biblioteca pero con Constants añadido al final. Así, si la biblioteca se llamaba Pepito, se supone que tú utilizarás el namespace Pepito para el código de la biblioteca, pero las constantes estarán en el namespace PepitoConstants.

Originalmente esto se hizo para evitar conflictos con otros nombres; por desgracia, el compilador de .gir a .typelib exige que cada namespace tenga su propio fichero .gir; y, por otro lado, Vala se empeña en generar un único fichero .gir con todos los espacios de nombres juntos, uno detrás de otro. Además, no podía ser de otra manera si se quería mantener compatibilidad con Meson. El resultado es que era imposible compilar los ficheros .gir de una biblioteca desarrollada con Autovala.

La única solución fue cambiar eso y hacer que las constantes estén en el mismo espacio de nombres que el resto de código de la biblioteca. Es cierto que esto obligará a modificar el código que use dichas constantes, pero también es verdad que los cambios son inmediatos y directos, por lo que no es un problema real.

Como de costumbre, se puede descargar desde mi página web, estando disponible tanto en forma de código fuente (en gitlab) como en paquetes para Debian, Ubuntu, Fedora y Arch.