Hace pocos días se dio a conocer el lanzamiento de la nueva versión del sistema de compilación Meson 1.2.0, versión en la cual se han implementado una gran variedad de mejoras y cambios, de los cuales se destacan las mejoras de compilación para Rust, asi como tambien las mejoras para Python, correcciones de errores y más.
Para quienes desconocen de Meson, deben saber que esta es una herramienta de construcción de software de código abierto que se utiliza para compilar algunos de los proyectos mas importantes del open source, como lo son X.Org, Mesa, systemd, Wayland, GNOME, GTK entre otros.
El objetivo clave de desarrollo de Meson es proporcionar un proceso de compilación de alta velocidad combinado con comodidad y facilidad de uso. En lugar de hacer, la compilación usa el kit de herramientas Ninja de forma predeterminada, pero se pueden usar otros backends como xcode y VisualStudio.
Principales novedades de Meson 1.2
Esta nueva versión que se presenta de Meson 1.2, es una versión bastante relevante, ya que añade una gran cantidad de cambios y mejoras incrementales en comparación con lanzamiento anteriores y es que uno de los cambios más destacados es el soporte el compilador Metrowerks para arquitecturas PowerPC/ARM C/C++. Cabe mencionar que este soporte de momento se considera como experimental y se espera que sea estable en los próximos lanzamientos.
Otro de los cambios que se destaca de Meson 1.2, es la ampliación en los datos guardados para la introspección, ya que por ejemplo intro-compilers.json enumera los compiladores utilizados, se ha agregado información sobre el host, la compilación y los sistemas de destino a intro-machines.json, la información sobre dependencias internas se ha reflejado en intro-dependencies. json, y se ha agregado información sobre las dependencias internas a las dependencias.
Ademas de ello, tambien se destaca que ahora el módulo Python de Meson puede compilar código de bytes, esto gracias a la nueva opción integrada «-Dpython.bytecompile=2».
Tambien se destaca de este nuevo lanzamiento una mejora en la detección del sistema en el que se ejecuta, ya que se agregaron dos nuevas propiedades, «kernel» y «subsystem«, con lo cual se espera que sea obligatorio (de momento es opcional) a futuro para obtener una mayor precisión al identificar el sistema.
Por otra parte, tambien se destaca que se agregó soporte para llamadas de generadores anidados, por ejemplo, «gen2.process(gen1.process(‘input.txt’))«, asi como tambien que se agregaron rust.bindgen y bindgen_clang_arguments para pasar argumentos adicionales a los compiladores rustc y clang.
De los demás cambios que se destacan de esta nueva versión:
- Se agregó el método str.splitlines() para dividir una cadena en una matriz de cadenas.
- El bloque declare_dependency ahora admite la palabra clave extra_files para agregar archivos adicionales al destino de compilación.
- Rust ahora admite la opción b_ndebug
- Soporte para definir nombres de cajas de dependencias de Rust en objetivos de Rust
- Se agregó la opción ‘–genvslite’ al comando «meson setup» para facilitar el cambio entre configuraciones de compilación para el entorno de Visual Studio.
- Se agregó soporte para el argumento env a gnome.generate_gir() para establecer variables de entorno.
- Se permite el uso de diccionarios para default_options y override_options (por ejemplo, puede especificar «default_options: {‘key’: ‘value’}» en lugar de «default_options: [‘key=value’]«).
- Se permite usar una máscara para seleccionar qué pruebas ejecutar, por ejemplo, para ejecutar pruebas que comiencen con la palabra básica, puede especificar «mesón prueba básica*».
Finalmente, cabe mencionar que el código de Meson está escrito en Python y tiene la licencia Apache 2.0. Si estás interesado en poder conocer más al respecto, puedes consultar las notas del lanzamiento en el siguiente enlace.
¿Como instalar Meson en Linux?
Para los interesados en poder obtener Meson, deben saber que está disponible en PyPi, por lo que se puede instalar con pip3 install meson.
Cabe mencionar que el comando exacto a escribir para instalar pip puede variar entre sistemas, asegúrese de usar la versión Python 3 de pip. Aunque si lo desean, pueden instalarlo localmente con el comando estándar de Python:
python3 -m pip install meson