Utjefte fan it Meson 0.58-assemblagesysteem. Projekt om in ymplemintaasje fan Meson yn C-taal te meitsjen

De frijlitting fan it Meson 0.58 buildsysteem is publisearre, dat wurdt brûkt om projekten te bouwen lykas X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME en GTK. De Meson-koade is skreaun yn Python en is lisinsje ûnder de Apache 2.0-lisinsje.

It wichtichste ûntwikkelingsdoel fan Meson is om in assemblageproses mei hege snelheid te leverjen kombineare mei gemak en gemak fan gebrûk. Ynstee fan meitsje, brûkt de build de Ninja toolkit standert, mar oare backends lykas xcode en VisualStudio kinne ek brûkt wurde. It systeem hat in ynboude multi-platfoarm ôfhinklikens handler wêrmei jo te brûken Meson te bouwen pakketten foar distribúsjes. Gearstallingsregels wurde ynsteld yn in ferienfâldige domein-spesifike taal, se binne goed lêsber en begryplik foar de brûker (neffens it idee fan 'e auteurs moat de ûntwikkelder in minimum tiid besteegje oan it skriuwen fan regels).

Cross-kompilearjen en bouwen op Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS en Windows mei GCC, Clang, Visual Studio en oare kompilatoren wurdt stipe. It is mooglik om projekten te bouwen yn ferskate programmeartalen, ynklusyf C, C++, Fortran, Java en Rust. In inkrementele boumodus wurdt stipe, wêrby't allinich komponinten dy't direkt relatearre binne oan feroarings makke sûnt de lêste build wurde opnij boud. Meson kin brûkt wurde om werhellbere builds te generearjen, wêrby't it útfieren fan de build yn ferskate omjouwings resulteart yn folslein identike útfierbere bestannen.

De wichtichste ynnovaasjes fan Meson 0.58:

  • Meson hat ynboude string opmaak operaasjes. Ynstee fan de opmaakmetoade te neamen, kinne jo no wearden direkt ferfange, bygelyks, ynstee fan "'In tekenrige @0@ om te formatteren @1@'.format(n, m)" kinne jo direkt "f" opjaan In tekenrige @n@ om te formatteren @ m@'".
  • In metoade "ferfange" is tafoege oan tekenrige objekten om de operaasje út te fieren fan it ferfangen fan ien substring troch in oare, bygelyks "s = s.replace('aaa', 'bbb')."
  • Funksje "berik(start, stop[, stap])" tafoege om in objekt werom te jaan dat brûkt wurde kin yn in foarke loop, lykas "foreach i : berik (15)".
  • De metoade meson.add_devenv () is ymplemintearre, sadat jo in omjouwing () foarwerp taheakje kinne om omjouwingsfariabelen yn te stellen as jo it kommando "meson devenv" brûke, bygelyks om in omjouwingsfariabele yn te stellen mei it paad nei de plugins-map.
  • Foar ûntwikkelingsomjouwings is in nij kommando foarsteld: "meson devenv -C builddir [], wat it mooglik makket om it kommando út te fieren yn in omjouwing dy't konfigureare is om projekten út 'e build-map te starten (sûnder ynstallaasje).
  • Standert wurdt de opsje "-pipe" stoppe mei trochjaan by it útfieren fan alle stipe kompilers.
  • Calling meson.add_dist_script () út subprojects is tastien.
  • Foarsjoen fan de mooglikheid om te fieren de metoaden append () en prepend () meardere kearen op deselde omjouwing () foarwerp.
  • De funksje flater () lit mear as ien argumint, skieden troch in spaasje (lykas warskôging () en berjocht ()).
  • Tafoege "--skip-subprojekten" opsje om selektyf ynstallaasje fan subprojekten oer te slaan.

Apart kinne wy ​​it Boson-projekt opmerke, rjochte op it meitsjen fan in draachbere en ienfâldige ymplemintaasje fan 'e Meson-assemblage-skripttaal, skreaun yn C ynstee fan Python. It projekt is noch yn 'e earste faze fan ûntwikkeling en is noch net klear foar folsleine gearstalling fan wurkjende projekten. De koade is lisinsje ûnder GPLv3 (de orizjinele Python Meson is lisinsje ûnder de Apache 2.0 lisinsje).

Boarne: opennet.ru

Add a comment