Lanzamiento del sistema de montaje Meson 0.58. Proyecto para crear una implementación de Meson en lenguaje C

Se ha publicado el lanzamiento del sistema de compilación Meson 0.58, que se utiliza para compilar proyectos como X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME y GTK. El código de Meson está escrito en Python y tiene la licencia Apache 2.0.

El objetivo clave de desarrollo de Meson es proporcionar un proceso de ensamblaje 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 también se pueden usar otros backends como xcode y VisualStudio. El sistema tiene un controlador de dependencia multiplataforma incorporado que le permite usar Meson para crear paquetes para distribuciones. Las reglas de ensamblaje se establecen en un lenguaje específico de dominio simplificado, son bien legibles y comprensibles para el usuario (según la idea de los autores, el desarrollador debe dedicar un mínimo de tiempo a escribir reglas).

Se admite la compilación cruzada y la compilación en Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS y Windows mediante GCC, Clang, Visual Studio y otros compiladores. Es posible construir proyectos en varios lenguajes de programación, incluidos C, C++, Fortran, Java y Rust. Se admite un modo de compilación incremental, en el que solo se reconstruyen los componentes que están directamente relacionados con los cambios realizados desde la última compilación. Meson se puede usar para generar compilaciones repetibles, donde ejecutar la compilación en diferentes entornos da como resultado ejecutables completamente idénticos.

Principales novedades de Meson 0.58:

  • Meson tiene operaciones de formato de cadenas integradas. En lugar de llamar al método de formato, ahora puede sustituir valores directamente, por ejemplo, en lugar de “'Una cadena @0@ a formatear @1@'.format(n, m)” puede especificar inmediatamente “f' Una cadena @n@ que se formateará @ m@'".
  • Se ha agregado un método "reemplazar" a los objetos de cadena para realizar la operación de reemplazar una subcadena por otra, por ejemplo, "s = s.replace('aaa', 'bbb')".
  • Se agregó la función "rango(inicio, parada[, paso])" para devolver un objeto que se puede usar en un bucle foreach, como "foreach i: rango(15)".
  • Se implementó el método meson.add_devenv(), que le permite agregar un objeto de entorno() para establecer variables de entorno cuando usa el comando "meson devenv", por ejemplo, para configurar una variable de entorno con la ruta al directorio de complementos.
  • Para entornos de desarrollo, se ha propuesto un nuevo comando: “meson devenv -C builddir [<comando>], que permite ejecutar el comando en un entorno configurado para lanzar proyectos desde el directorio de compilación (sin instalación).
  • De forma predeterminada, la opción "-pipe" deja de pasarse cuando se ejecutan todos los compiladores compatibles.
  • Se permite llamar a meson.add_dist_script() desde subproyectos.
  • Se proporcionó la capacidad de ejecutar los métodos append() y prepend() varias veces en el mismo objeto de entorno().
  • La función error() permite más de un argumento, separado por un espacio (similar a advertencia() y mensaje()).
  • Se agregó la opción "--skip-subprojects" para omitir selectivamente la instalación de subproyectos.

Por separado, podemos destacar el proyecto Boson, cuyo objetivo es crear una implementación portátil y sencilla del lenguaje de script ensamblador Meson, escrito en C en lugar de Python. El proyecto aún se encuentra en la etapa inicial de desarrollo y aún no está listo para el montaje completo de los proyectos de trabajo. El código tiene licencia GPLv3 (el Python Meson original tiene licencia Apache 2.0).

Fuente: opennet.ru

Añadir un comentario