Meson 0.58 чогултуу системасын чыгаруу. Си тилинде Месондун ишке ашырылышын түзүү долбоору

Meson 0.58 куруу системасы чыгарылды, ал X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME жана GTK сыяктуу долбоорлорду куруу үчүн колдонулат. Месондун коду Python тилинде жазылган жана Apache 2.0 лицензиясы боюнча лицензияланган.

Meson иштеп чыгуунун негизги максаты - ынгайлуулугу жана колдонуунун жөнөкөйлүгү менен бирге чогултуу процессинин жогорку ылдамдыгын камсыз кылуу. Make утилитасынын ордуна, курууда демейки боюнча Ninja инструменттери колдонулат, бирок xcode жана VisualStudio сыяктуу башка серверлер да колдонулушу мүмкүн. Системада көп платформалуу көз карандылык иштеткичи бар, ал Mesonду бөлүштүрүү үчүн пакеттерди куруу үчүн колдонууга мүмкүндүк берет. Ассамблея эрежелери жөнөкөйлөштүрүлгөн домендик тилде көрсөтүлөт, колдонуучу үчүн өтө окумдуу жана түшүнүктүү (авторлор белгилегендей, иштеп чыгуучу эрежелерди жазууга аз убакыт коротушу керек).

GCC, Clang, Visual Studio жана башка компиляторлор аркылуу Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS жана Windows'та кайчылаш компиляцияны жана курууну колдойт. Ар кандай программалоо тилдеринде долбоорлорду курууга болот, анын ичинде C, C++, Fortran, Java жана Rust. Кошумча куруу режими колдоого алынат, мында акыркы куруудан кийин жасалган өзгөрүүлөргө түздөн-түз байланыштуу компоненттер гана кайра курулат. Meson кайталануучу түзүлүштөрдү түзүү үчүн колдонулушу мүмкүн, мында түзүүнү ар кандай чөйрөдө иштетүү толугу менен бирдей аткарылуучу файлдарды пайда кылат.

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

Комментарий кошуу