Meson 0.58 montaažisüsteemi vabastamine. Projekt Mesoni C-keeles teostuse loomiseks

Avaldatud on Meson 0.58 ehitussüsteemi väljalase, mida kasutatakse selliste projektide ehitamiseks nagu X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK. Mesoni kood on kirjutatud Pythonis ja litsentsitud Apache 2.0 litsentsi alusel.

Mesoni arenduse põhieesmärk on pakkuda kiiret montaažiprotsessi koos mugavuse ja kasutuslihtsusega. Make asemel kasutab järg vaikimisi Ninja tööriistakomplekti, kuid kasutada saab ka muid taustaprogramme, nagu xcode ja VisualStudio. Süsteemil on sisseehitatud mitme platvormi sõltuvuse töötleja, mis võimaldab kasutada Mesonit distributsioonide pakettide koostamiseks. Koostereeglid on seatud lihtsustatud domeenipõhises keeles, need on hästi loetavad ja kasutajale arusaadavad (autorite idee kohaselt peaks arendaja kulutama reeglite kirjutamisele minimaalselt aega).

Toetatud on Linuxi, Illumos/Solarise, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS-i ja Windowsi ristkompileerimine ja ehitamine GCC, Clangi, Visual Studio ja muude kompilaatorite abil. Võimalik on ehitada projekte erinevates programmeerimiskeeltes, sealhulgas C, C++, Fortran, Java ja Rust. Toetatakse järkjärgulist ehitusrežiimi, milles ehitatakse ümber ainult need komponendid, mis on otseselt seotud pärast viimast ehitamist tehtud muudatustega. Mesonit saab kasutada korratavate ehituste genereerimiseks, kus ehitamist erinevates keskkondades käivitades saadakse täiesti identsed käivitatavad failid.

Meson 0.58 peamised uuendused:

  • Mesonil on sisseehitatud stringi vormindamise toimingud. Vormingumeetodi väljakutsumise asemel saate nüüd väärtusi otse asendada, näiteks "Vormindatav string @0@ @1@".format(n, m)" asemel saate kohe määrata "f" String @n@, mis tuleb vormindada @ m@'".
  • Ühe alamstringi teisega asendamise toimingu sooritamiseks on stringiobjektidele lisatud meetod "asendamine", näiteks "s = s.replace('aaa', 'bbb')".
  • Lisatud funktsioon "vahemik(algus, peatus[, samm])", et tagastada objekt, mida saab kasutada foreach-tsüklis, näiteks "foreach i : range(15)".
  • Rakendatud on meetod meson.add_devenv(), mis võimaldab lisada keskkonna() objekti keskkonnamuutujate määramiseks, kui kasutate käsku "meson devenv", näiteks keskkonnamuutuja määramiseks pluginate kataloogi teega.
  • Arenduskeskkondade jaoks on välja pakutud uus käsk: “meson devenv -C builddir [<käsk>], mis võimaldab käivitada käsu keskkonnas, mis on konfigureeritud käivitama projekte ehituskataloogist (ilma installita).
  • Vaikimisi peatatakse suvandi "-pipe" edastamine kõigi toetatud kompilaatorite käitamisel.
  • Meson.add_dist_script() kutsumine alamprojektidest on lubatud.
  • Võimalus käivitada append() ja prepend() meetodid mitu korda samal keskkonna() objektil.
  • Funktsioon error() lubab rohkem kui ühte argumenti, mis on eraldatud tühikuga (sarnaselt hoiatusega() ja message()).
  • Alamprojektide installimise valikuliseks vahelejätmiseks on lisatud valik "--alamprojektid vahele".

Eraldi võime märkida Bosoni projekti, mille eesmärk on luua kaasaskantav ja lihtne Mesoni montaažiskriptikeele rakendus, mis on kirjutatud Pythoni asemel C-keeles. Projekt on alles väljatöötamise algfaasis ega ole veel tööprojektide täielikuks komplekteerimiseks valmis. Kood on litsentsitud GPLv3 alusel (algne Python Meson on litsentsitud Apache 2.0 litsentsi alusel).

Allikas: opennet.ru

Lisa kommentaar