Izdaja sistema za gradnjo Meson 0.58. Projekt za ustvarjanje implementacije Meson v jeziku C

Objavljena je bila izdaja sistema za gradnjo Meson 0.58, ki se uporablja za gradnjo projektov, kot so X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME in GTK. Koda Meson je napisana v Pythonu in je licencirana pod licenco Apache 2.0.

Ključni razvojni cilj podjetja Meson je zagotoviti visokohitrosten proces sestavljanja v kombinaciji s priročnostjo in enostavnostjo uporabe. Namesto make graditev privzeto uporablja komplet orodij Ninja, vendar je mogoče uporabiti tudi druga ozadja, kot sta xcode in VisualStudio. Sistem ima vgrajen upravljalnik odvisnosti za več platform, ki vam omogoča uporabo Mesona za izdelavo paketov za distribucije. Pravila sestavljanja so postavljena v poenostavljenem domensko specifičnem jeziku, so dobro berljiva in razumljiva uporabniku (po zamisli avtorjev naj bi razvijalec porabil najmanj časa za pisanje pravil).

Podprto je navzkrižno prevajanje in gradnja na Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS in Windows z uporabo GCC, Clang, Visual Studio in drugih prevajalnikov. Projekte je mogoče graditi v različnih programskih jezikih, vključno s C, C++, Fortran, Javo in Rust. Podprt je inkrementalni način gradnje, v katerem se znova zgradijo samo komponente, ki so neposredno povezane s spremembami, izvedenimi od zadnje gradnje. Meson se lahko uporablja za generiranje ponovljivih gradenj, kjer zagon gradnje v različnih okoljih povzroči popolnoma enake izvedljive datoteke.

Glavne novosti Meson 0.58:

  • Jezik Meson ima vgrajene operacije oblikovanja nizov. Namesto da kličete metodo formata, lahko zdaj vrednosti zamenjate neposredno, na primer, namesto "'Niz @0@ za formatiranje @1@'.format(n, m)« lahko takoj določite "f' Niz @n@ za oblikovanje @ m@'".
  • Metoda »replace« je bila dodana objektom nizov za izvedbo operacije zamenjave enega podniza z drugim, na primer »s = s.replace('aaa', 'bbb')«.
  • Dodana funkcija »range(start, stop[, step])« za vrnitev predmeta, ki se lahko uporabi v zanki »foreach«, kot je »foreach i : range(15)«.
  • Implementirana je bila metoda meson.add_devenv(), ki vam omogoča, da dodate objekt environment() za nastavitev spremenljivk okolja, medtem ko uporabljate ukaz "meson devenv", na primer za nastavitev spremenljivke okolja s potjo do imenika vtičnikov.
  • Za razvojna okolja je predlagan nov ukaz "meson devenv -C builddir [<ukaz>]", ki omogoča zagon ukaza v okolju, konfiguriranem za izvajanje projektov iz imenika gradnje (brez namestitve).
  • Pri zagonu vseh podprtih prevajalnikov privzeto ni podana možnost "-pipe".
  • Dovoli klic meson.add_dist_script() iz podprojektov.
  • Zagotovljena možnost večkratnega zagona metod append() in prepend() na istem objektu environment().
  • V funkciji error() je dovoljen več kot en argument, ločen s presledki (podobno kot warning() in message()).
  • Dodana možnost "--skip-subprojects" za selektivno preskok nameščanja podprojektov.

Posebej velja omeniti projekt Boson, katerega namen je ustvariti prenosljivo in preprosto implementacijo zbirnega skriptnega jezika Meson, napisanega v C namesto v Pythonu. Projekt je še vedno v začetni fazi razvoja in še ni pripravljen za popolno sestavo delovnih projektov. Koda se distribuira pod licenco GPLv3 (izvirni Python Meson je pod licenco Apache 2.0).

Vir: opennet.ru

Dodaj komentar