ИзданиС Π½Π° сборната систСма Meson 0.51

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ Ρ€Π΅Π»ΠΈΠ· Π½Π° систСмата Π·Π° компилация Meson 0.51, която сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° компилация Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ΠΈ GTK+. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Meson Π΅ написан Π½Π° Python ΠΈ сС прСдоставя сС разпространява ΠΏΠΎΠ΄ лицСнзия Apache 2.0.

ΠšΠ»ΡŽΡ‡ΠΎΠ²Π°Ρ‚Π° Ρ†Π΅Π» Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Meson Π΅ Π΄Π° осигури висока скорост Π½Π° компилационния процСс Π² ΡΡŠΡ‡Π΅Ρ‚Π°Π½ΠΈΠ΅ с удобство ΠΈ простота Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅. ВмСсто ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ make, ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡƒΠΌΡŠΡ‚ Ninja, Π½ΠΎ Π΅ възмоТно ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ, ΠΊΠ°Ρ‚ΠΎ xcode ΠΈ VisualStudio. БистСмата Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° зависимости, позволяващ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Meson Π·Π° компилация Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° дистрибуции. ΠŸΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π·Π° компилация сС Π·Π°Π΄Π°Π²Π°Ρ‚ Π½Π° опростСн Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Π΅Π·ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ с Π΄ΠΎΠ±Ρ€Π° чСтимост ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ (спорСд Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ трябва Π΄Π° отдСля ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° написванС Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π°).

ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° крос-компилация ΠΈ компилация Π½Π° Linux, macOS ΠΈ Windows с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° GCC, Clang, Visual Studio ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½Π° Π΅ компилация Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡ†ΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ C, C++, Fortran, Java ΠΈ Rust. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° компилация, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‚ само ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅, Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ слСд послСдната компилация. Meson ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° повторяСми ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ стартиранСто Π½Π° компилация Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ срСди Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° напълно ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Основни нововъвСдСния Meson 0.51:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Π° компилация Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ сцСнарии Π·Π° компилация CMake. Meson сСга ΠΌΠΎΠΆΠ΅ пряко Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° прости субпроСкти (ΠΊΠ°Ρ‚ΠΎ самостоятСлни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ) с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° CMake, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° стандартнитС субпроСкти (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ субпроСкти Π½Π° CMake ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π² дирСкторията subprojects);
  • Π—Π° всички ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ тСстванС Ρ‡Ρ€Π΅Π· компилация ΠΈ изпълнСниС Π½Π° Π½Π°ΠΉ-проститС тСстови Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (sanity check), Π±Π΅Π· ограничСния Π·Π° тСстванС Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΎΡ‚ потрСбитСля Ρ„Π»Π°Π³ΠΎΠ²Π΅ Π·Π° крос-ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ (отсСга Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ сС провСряват ΠΈ Ρ€ΠΎΠ΄Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° опрСдСлянС Π½Π° ΠΎΠΏΡ†ΠΈΠΈ Π·Π° командния Ρ€Π΅Π΄, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΏΡ€ΠΈ крос-компилация, с ΠΏΡ€ΠΈΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Ρ‡Ρ€Π΅Π· Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° прСфикс Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΏΡ€Π΅Π΄ опцията. По-Ρ€Π°Π½ΠΎ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° командния Ρ€Π΅Π΄ ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Ρ…Π° само сборка Π·Π° Ρ€ΠΎΠ΄Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ…Π° Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ посочвани Π·Π° крос-компилация. Π‘Π΅Π³Π° ΠΎΠΏΡ†ΠΈΠΈ Π·Π° командния Ρ€Π΅Π΄ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ²Π° Π΄Π°Π»ΠΈ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Π½Π°Ρ‚ΠΈΠ²Π½Π° сборка ΠΈΠ»ΠΈ крос-компилация, ΠΊΠΎΠ΅Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Π·Π° Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ ΠΈ крос-сборки Ρ‰Π΅ бъдС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° посочванС Π½Π° Ρ„Π»Π°Π³Π° Β«β€”cross-fileΒ» ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ вСднъТ Π² командния Ρ€Π΅Π΄ Π·Π° изброяванС Π½Π° няколко cross-Ρ„Π°ΠΉΠ»Π°;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° ICL (Intel C/C++ Compiler) Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Windows (ICL.EXE ΠΈ ifort);
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½Π°Ρ‡Π°Π»Π΅Π½ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° инструмСнтария Π·Π° CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Π’ ΠΎΠ±Π΅ΠΊΡ‚ Β«dependencyΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Β«get_variableΒ», позволяващ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° стойност Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π±Π΅Π· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° зависимост (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, dep.get_variable(pkg-config : β€˜var-name’, cmake : β€˜COP_VAR_NAME));
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ†Π΅Π»Π΅Π²Π°Ρ‚Π° сборка β€” Β«link_languageΒ» Π·Π° явно опрСдСлянС Π½Π° Π΅Π·ΠΈΠΊΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΏΡ€ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ°. НапримСр, основната ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π½Π° Fortran ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΊΠΎΠ΄ Π½Π° C/C++, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ ΠΈΠ·Π±ΠΎΡ€ Π½Π° C/C++, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ ΠΎΡ‚ Fortran;
  • ΠŸΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΎ Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„Π»Π°Π³ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° прСдпроцСсор CPPFLAGS. Ако ΠΏΡ€Π΅Π΄ΠΈ Meson ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Π΅ Π·Π°ΠΏΠ°Π·Π²Π°Π» CPPFLAGS ΠΈ спСцифични Π·Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Ρ„Π»Π°Π³ΠΎΠ²Π΅ Π·Π° компилация (CFLAGS, CXXFLAGS), Ρ‚ΠΎ сСга Ρ‚Π΅ сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ Π½Π΅Ρ€Π°Π·Π΄Π΅Π»Π½ΠΎ ΠΈ ΠΈΠ·Π±Ρ€ΠΎΠ΅Π½ΠΈΡ‚Π΅ Π² CPPFLAGS Ρ„Π»Π°Π³ΠΎΠ²Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ Π½Π° Ρ„Π»Π°Π³ΠΎΠ²Π΅ Π·Π° компилация Π·Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π³ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚;
  • Π˜Π·Ρ…ΠΎΠ΄ΡŠΡ‚ Π½Π° custom_target ΠΈ custom_target[i] сСга ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ link_with ΠΈ link_whole;
  • Π’ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ зависимости Ρ‡Ρ€Π΅Π· опцията Β«dependsΒ» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, generator(program_runner, output: [β€˜@BASENAME@.c’], depends: exe));
  • Π’ find_library Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опция static Π·Π° ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Π½Π΅ Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ само Π½Π° статично ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ;
  • Π—Π° python.find_installation Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° опрСдСлянС Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½ Python-ΠΌΠΎΠ΄ΡƒΠ» Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° вСрсия Π½Π° Python;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ» unstable-kconfig Π·Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ kconfig;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«subprojects foreachΒ», ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‰Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΈ стартираща я във всички ΠΏΠ°ΠΏΠΊΠΈ Π½Π° субпроСктитС;

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster