Llançament del sistema de muntatge Meson 0.58. Projecte per crear una implementació de Meson en llenguatge C

S'ha publicat el llançament del sistema de compilació Meson 0.58, que s'utilitza per crear projectes com ara X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME i GTK. El codi Meson està escrit en Python i té la llicència d'Apache 2.0.

L'objectiu clau de desenvolupament de Meson és proporcionar un procés de muntatge d'alta velocitat combinat amb comoditat i facilitat d'ús. En lloc de fer, la compilació utilitza el conjunt d'eines Ninja de manera predeterminada, però també es poden utilitzar altres backends com xcode i VisualStudio. El sistema té un gestor de dependències multiplataforma integrat que us permet utilitzar Meson per crear paquets per a distribucions. Les regles de muntatge s'estableixen en un llenguatge simplificat específic del domini, són ben llegibles i comprensibles per a l'usuari (segons la idea dels autors, el desenvolupador hauria de dedicar un mínim de temps a escriure regles).

Es permet la compilació creuada i l'assemblatge. Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows Ús de GCC, Clang, Visual Studio i altres compiladors. Els projectes es poden crear en diversos llenguatges de programació, com ara C, C++, Fortran, Java i Rust. S'admet el mode de compilació incremental, que reconstrueix només els components directament relacionats amb els canvis realitzats des de la compilació anterior. Meson es pot utilitzar per crear compilacions repetibles, on l'execució de la compilació en diferents entorns genera fitxers executables completament idèntics.

Principals innovacions de Meson 0.58:

  • Meson té operacions de format de cadena integrades. En lloc de cridar al mètode de format, ara podeu substituir els valors directament, per exemple, en lloc de "'Una cadena @0@ que s'ha de formatar @1@'.format(n, m)", podeu especificar immediatament "f' Una cadena @n@ amb el format @m@'".
  • S'ha afegit un mètode "replace" als objectes de cadena per realitzar l'operació de substitució d'una subcadena per una altra, per exemple, "s = s.replace('aaa', 'bbb')".
  • S'ha afegit la funció "range(start, stop[, step])" per retornar un objecte que es pot utilitzar en un bucle foreach, com ara "foreach i : rang(15)".
  • S'ha implementat el mètode meson.add_devenv(), que us permet afegir un objecte d'entorn() per establir variables d'entorn quan utilitzeu l'ordre "meson devenv", per exemple, per establir una variable d'entorn amb la ruta al directori de connectors.
  • Per als entorns de desenvolupament, s'ha proposat una nova ordre: “meson devenv -C builddir [<command>], que permet executar l'ordre en un entorn configurat per llançar projectes des del directori de compilació (sense instal·lació).
  • Per defecte, l'opció "-pipe" es deixa de passar quan s'executen tots els compiladors compatibles.
  • Es permet cridar a meson.add_dist_script() des de subprojectes.
  • Va oferir la possibilitat d'executar els mètodes append() i prepend() diverses vegades al mateix objecte d'entorn().
  • La funció error() permet més d'un argument, separats per un espai (similar a warning() i message()).
  • S'ha afegit l'opció "--skip-subprojects" per ometre selectivament la instal·lació de subprojectes.

Per separat, podem destacar el projecte Boson, dirigit a crear una implementació portàtil i senzilla del llenguatge de script assemblador Meson, escrit en C en comptes de Python. El projecte encara es troba en l'etapa inicial de desenvolupament i encara no està preparat per al muntatge complet dels projectes de treball. El codi té una llicència GPLv3 (el Python Meson original té la llicència d'Apache 2.0).

Font: opennet.ru

Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster