Lëshimi i sistemit të ndërtimit Meson 1.3

ËshtĂ« publikuar lĂ«shimi i sistemit tĂ« ndĂ«rtimit Meson 1.3.0, i cili pĂ«rdoret pĂ«r ndĂ«rtimin e projekteve 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.

Përmirësimet kryesore në Meson 1.3:

  • NĂ« metodat e verifikimit tĂ« kompilatorit compiler.compiles(), compiler.links() dhe compiler.run() Ă«shtĂ« shtuar opsioni "werror: true", i cili e trajton paralajmĂ«rimet e kompilatorit si gabime (mund tĂ« pĂ«rdoret pĂ«r tĂ« verifikuar nĂ«se kodi ndĂ«rtimit pa paralajmĂ«rime).
  • ËshtĂ« shtuar metoda has_define pĂ«r verifikimin e definimit tĂ« simbolit nga preprocessori.
  • NĂ« funksionin configure_file() Ă«shtĂ« shtuar parametri macro_name, i cili shton mbrojtje makro pĂ«r pĂ«rfshirjen e dyfishtĂ« pĂ«rmes "#include" ("include guards"), e formuar nĂ« stilin e makrove nĂ« gjuhĂ«n C (thjeshton krijimin e skedave configure me emra makro dinamikĂ«).
  • NĂ« configure_file() Ă«shtĂ« shtuar njĂ« format i ri dalĂ«s — JSON ("output_format: json").
  • NĂ« parametrat c_std dhe cpp_std Ă«shtĂ« shtuar mundĂ«sia e pĂ«rdorimit tĂ« listave tĂ« vlerave (pĂ«r shembull, "default_options: 'c_std=gnu11,c11' ").
  • NĂ« modulat qĂ« pĂ«rdorin CustomTarget pĂ«r pĂ«rpunimin e skedave, Ă«shtĂ« shtuar mundĂ«sia pĂ«r tĂ« personalizuar mesazhet qĂ« jepen nga utiliteti ninja.
  • ËshtĂ« shpallur e vjetĂ«ruar qĂ«llimi i ndĂ«rtimit (build_target) "jar", pĂ«r tĂ« cilin rekomandohet tĂ« pĂ«rdoret thirrja "jar()".
  • NĂ« metodĂ«n generator.process() Ă«shtĂ« shtuar parametri 'env' pĂ«r tĂ« vendosur njĂ« variabĂ«l mjedisi pĂ«rmes sĂ« cilĂ«s gjeneratori do tĂ« pĂ«rpunojĂ« hidhjen.
  • Kur caktohen emrat e qĂ«llimeve tĂ« ndĂ«rtimit tĂ« lidhura me skedarĂ«t ekzekutivĂ«, Ă«shtĂ« lejuar caktimi i sufixeve, pĂ«r shembull "exectuable('foo', 'main.c', name_suffix: 'bar')", pĂ«r tĂ« gjeneruar skedarĂ« ekzekutivĂ« shtesĂ« nĂ« tĂ« njĂ«jtin katalog.
  • NĂ« funksionin exectuable() Ă«shtĂ« shtuar parametri "vs_module_defs" pĂ«r pĂ«rdorimin e skedĂ«s def, e cila pĂ«rcakton listĂ«n e funksioneve qĂ« kalohen nĂ« shared_module().
  • NĂ« funksionin find_program() Ă«shtĂ« shtuar parametri 'default_options' pĂ«r caktimin e opsioneve tĂ« parazgjedhura pĂ«r projektin rezervĂ« (fallback).
  • ËshtĂ« shtuar metoda fs.relative_to(), e cila kthen njĂ« rrugĂ« relative pĂ«r argumentin e parĂ«, nĂ« raport me tĂ« dytin, nĂ«se rruga e parĂ« ekziston. PĂ«r shembull, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • NĂ« funksionet install_data(), install_headers() dhe install_subdir() Ă«shtĂ« shtuar parametri follow_symlinks, i cili, kur Ă«shtĂ« i vendosur, siguron ndjekjen e lidhjeve simbolike.
  • NĂ« metodĂ«n int.to_string() Ă«shtĂ« shtuar parametri "fill" pĂ«r mbushjen e shtesĂ« tĂ« zinxhirit me zero tĂ« parĂ«t. PĂ«r shembull, thirrja message(n.to_string(fill: 3)) pĂ«r n=4 do tĂ« formojĂ« zinxhirin "004".
  • ËshtĂ« shtuar qĂ«llimi i ri clang-tidy-fix, i cili pĂ«rkufizon ekzekutimin e utilitetit clang-tidy me flagun "-fix".
  • NĂ« komandĂ«n compile Ă«shtĂ« shtuar mundĂ«sia e caktimit tĂ« sufixit (TARGET_SUFFIX) tĂ« qĂ«llimit tĂ« ndĂ«rtimit ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]).
  • ËshtĂ« shtuar variabla e ambientit MESON_PACKAGE_CACHE_DIR pĂ«r tĂ« tejkaluar rrugĂ«n e cache-it tĂ« paketimeve (subprojects/packagecache), pĂ«r shembull, e mundĂ«son pĂ«rdorimin e njĂ« cache tĂ« pĂ«rbashkĂ«t nĂ« disa projekte.
  • ËshtĂ« shtuar komanda "meson setup —clearcache" pĂ«r tĂ« pastruar cache-in e pĂ«rhershĂ«m.
  • NĂ« tĂ« gjitha metodat e verifikimit tĂ« kompilatorit "has_*" Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r fjalinĂ« çelĂ«s tĂ« "required", pĂ«r shembull, nĂ« vend tĂ« "assert(cc.has_function('some_function'))" tani mund tĂ« thuhet "cc.has_function('some_function', required: true)".
  • NĂ« funksionet shared_library(), static_library(), library() dhe shared_module() Ă«shtĂ« shtuar njĂ« fjalĂ« tĂ« re kyçe rust_abi, e cila duhet tĂ« pĂ«rdoret nĂ« vend tĂ« rust_crate_type tĂ« vjetruar.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster