Liberazione di u sistema di assemblea Meson 0.58. Prughjettu per creà una implementazione di Meson in lingua C

U sistema di creazione Meson 0.58 hè statu liberatu, chì hè utilizatu per custruisce prughjetti cum'è X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME è GTK. U codice di Meson hè scrittu in Python è hè licenziatu sottu a licenza Apache 2.0.

U scopu chjave di u sviluppu Meson hè di furnisce una alta velocità di u prucessu di assemblea cumminata cù comodità è facilità d'usu. Invece di l'utilità di creazione, u toolkit Ninja hè utilizatu per difettu quandu si custruisce, ma altri backends cum'è xcode è VisualStudio ponu ancu esse usatu. U sistema hà un gestore di dependenza multi-piattaforma integrata chì permette di utilizà Meson per custruisce pacchetti per distribuzioni. I reguli di l'assemblea sò specificati in una lingua simplificata specifica di u duminiu, sò assai leghjite è cumprendi per l'utilizatori (cum'è intesu da l'autori, u sviluppatore deve passà un minimu di tempu scrivendu regule).

Supporta a compilazione incruciata è a custruzione nantu à Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS è Windows cù GCC, Clang, Visual Studio è altri compilatori. Hè pussibule di custruisce prughjetti in diverse lingue di prugrammazione, cumprese C, C++, Fortran, Java è Rust. U modu di creazione incrementale hè supportatu, in quale solu i cumpunenti direttamente ligati à i cambiamenti fatti da l'ultima custruzzione sò ricustruiti. Meson pò esse usatu per generà custruzzioni ripetibili, in quale l'esecuzione di a custruzzione in ambienti differenti si traduce in a generazione di fugliali eseguibili completamente identici.

Principali innovazioni di Meson 0.58:

  • В языке Meson реализованы встроенные операции форматирования строк. Вместо вызова метода format теперь можно подставлять значения напрямую, например, вместо «‘A string @0@ to be formatted @1@’.format(n, m)» можно указывать сразу «f’A string @n@ to be formatted @m@'».
  • В строковые объекты добавлен метод «replace» для выполнения операции замены одной подстроки на другую, например, «s = s.replace(‘aaa’, ‘bbb’)».
  • Добавлена функция «range(start, stop[, step])» для возврата объекта, который может применяться в цикле «foreach», например «foreach i : range(15)».
  • Реализован метод meson.add_devenv(), позволяющий добавить объект environment() для установки переменных окружения во время использования команды «meson devenv», например, для задания переменной окружения с путём к каталогу с плагинами.
  • Для окружений разработки предложена новая команда «meson devenv -C builddir [<команда>], дающая возможность запустить команду в окружении, настроенном для запуска проектов из сборочного каталога (без установки).
  • По умолчанию прекращена передача параметра «-pipe» при запуске всех поддерживаемых компиляторов.
  • Разрешён вызов meson.add_dist_script() из подпроектов.
  • Предоставлена возможность многократного запуска методов append() и prepend() для одного и того же объекта environment().
  • В функции error() разрешено указание более одного аргумента с разделением пробелом (по аналогии с warning() и message()).
  • Добавлен параметр «—skip-subprojects» для выборочного пропуска установки подпроектов.

Отдельно можно отметить проект Boson, нацеленный на создание переносимой и простой реализации языка сборочных сценариев Meson, написанной на языке Си вместо Python. Проект пока находится на начальном этапе развития и пока не готов для полноценной сборки рабочих проектов. Код распространяется под лицензией GPLv3 (оригинальный Meson на Python поставляется под лицензией Apache 2.0).

Source: opennet.ru

Add a comment