ĂshtĂ« publikuar versioni 1.0.0 i sistemit tĂ« ndĂ«rtimit Meson, i cili pĂ«rdoret pĂ«r ndĂ«rtimin e projekteve tĂ« tilla si X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME dhe GTK. Kodi i Meson Ă«shtĂ« shkruar nĂ« gjuhĂ«n Python dhe ofrohet nĂ«n licencĂ«n Apache 2.0.
Qëllimi kryesor i zhvillimit të Meson është të sigurojë shpejtësi të lartë gjatë procesit të ndërtimit, duke ruajtur gjithashtu lehtësinë dhe thjeshtësinë e përdorimit. Përdorimi i mjetit Ninja për ndërtimin e përparësishëm është vendosur në vend të utilitarit make, por mund të përdoren edhe backend të tjera si xcode dhe VisualStudio. Sistemi ka një menaxher të variablave multikontinentale të ndjesive që lejon përdorimin e Meson për ndërtimin e pakove për shpërndarjet. Rregullat e ndërtimit përcaktohen në një gjuhë të thjeshtuar të orientuar nga objekti, që dallohet për lehtësinë e leximit dhe është e kuptueshme për përdorruesin (sipas mendimit të autorëve, zhvilluesi duhet të harxhojë sa më pak kohë në shkruajtjen e rregullave).
Kros-kompilimi dhe ndĂ«rtimi janĂ« tĂ« mbĂ«shtetur nĂ« Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS dhe Windows duke pĂ«rdorur GCC, Clang, Visual Studio dhe kompilatorĂ« tĂ« tjerĂ«. ĂshtĂ« e mundur ndĂ«rtimi i projekteve nĂ« gjuhĂ« tĂ« ndryshme programuese, pĂ«rfshirĂ« C, C++, Fortran, Java dhe Rust. MbĂ«shtetet njĂ« modalitet ndĂ«rtimi inkremental, ku rindĂ«rtohen vetĂ«m komponentĂ«t qĂ« janĂ« lidhur drejtpĂ«rdrejt me ndryshimet e bĂ«rĂ« qĂ« nga ndĂ«rtimi i fundit. Meson mund tĂ« pĂ«rdoret pĂ«r tĂ« formuar ndĂ«rtime tĂ« ripĂ«rsĂ«ritshme, ku ekzekutimi i ndĂ«rtimit nĂ« mjedise tĂ« ndryshme çon nĂ« gjenerimin e skedarĂ«ve ekzekutiv tĂ« plotĂ«sisht identik.
Risi kryesore të Meson 1.0:
- ĂshtĂ« shpallur njĂ« modul stabil pĂ«r ndĂ«rtimin e projekteve nĂ« gjuhĂ«n Rust. Ky modul pĂ«rdoret nĂ« projektin Mesa pĂ«r ndĂ«rtimin e komponenteve tĂ« shkruara nĂ« Rust.
- NĂ« parametrin prefix, i mbĂ«shtetur nĂ« shumicĂ«n e funksioneve tĂ« kontrollit tĂ« kompilatorit, Ă«shtĂ« implementuar mundĂ«sia pĂ«r tĂ« trajtuar arrays pĂ«rveç stringjeve. PĂ«r shembull, tani mund tĂ« specifikohet: cc.check_header(âGL/wglew.hâ, prefix : [â#include â, â#include â])
- ĂshtĂ« shtuar njĂ« argument i ri «âworkdir», qĂ« lejon pĂ«rcaktimin e katalogut tĂ« punĂ«s. PĂ«r shembull, pĂ«r tĂ« pĂ«rdorur katalogun aktual nĂ« vend tĂ« katalogut tĂ« punĂ«s, mund tĂ« ekzekutohet: meson devenv -C builddir âworkdir .
- JanĂ« propozuar operatorĂ« tĂ« rinj «in» dhe «not in» pĂ«r tĂ« pĂ«rcaktuar nĂ«se njĂ« nĂ«nstring pĂ«rfshihet nĂ« njĂ« string, ngjashĂ«m me kontrollin e mĂ«parshĂ«m pĂ«r pĂ«rfshirjen e njĂ« elementi nĂ« njĂ« array ose fjalor. PĂ«r shembull: fs = import(âfsâ) if âdiçkaâ in fs.read(âsomefileâ) # True endif
- ĂshtĂ« shtuar opsioni «warning-level=everything», qĂ« pĂ«rfshin daljen e tĂ« gjitha paralajmĂ«rimeve tĂ« disponueshme tĂ« kompilatorit (nĂ« clang dhe MSVC pĂ«rdoret -Weverything dhe /Wall, ndĂ«rsa nĂ« GCC paralajmĂ«rimet pĂ«rfshihen veçmas, nĂ« mĂ«nyrĂ« qĂ« tĂ« pĂ«rputhen me modalitetin -Weverything nĂ« clang).
- Në metodën rust.bindgen është realizuar mundësia për të trajtuar argumenin «dependencies» për të kaluar rrugët e varësive që duhet të trajtohen nga kompilatori.
- Funksioni java.generate_native_headers është shpallur i vjetruar, i cili është riemëruar në java.native_headers për t'u përputhur me stilin e zakonshëm të emërtimeve të funksioneve të pranuara në Meson.
Burimi: opennet.ru
