Rhyddhau system ymgynnull Meson 0.58. Prosiect i greu gweithrediad Meson yn C iaith

Mae rhyddhau system adeiladu Meson 0.58 wedi'i gyhoeddi, a ddefnyddir i adeiladu prosiectau fel X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME a GTK. Mae'r cod Meson wedi'i ysgrifennu yn Python ac mae wedi'i drwyddedu o dan drwydded Apache 2.0.

Nod datblygu allweddol Meson yw darparu proses gydosod cyflymder uchel ynghyd Γ’ chyfleustra a rhwyddineb defnydd. Yn lle gwneud, mae'r adeilad yn defnyddio pecyn cymorth Ninja yn ddiofyn, ond gellir defnyddio backends eraill fel xcode a VisualStudio hefyd. Mae gan y system driniwr dibyniaeth aml-lwyfan adeiledig sy'n eich galluogi i ddefnyddio Meson i adeiladu pecynnau ar gyfer dosbarthiadau. Mae rheolau'r Cynulliad wedi'u gosod mewn iaith parth-benodol wedi'i symleiddio, maent yn ddarllenadwy ac yn ddealladwy i'r defnyddiwr (yn Γ΄l syniad yr awduron, dylai'r datblygwr dreulio lleiafswm o amser yn ysgrifennu rheolau).

Cefnogir traws-grynhoi ac adeiladu ar Linux, Illumos / Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS a Windows gan ddefnyddio GCC, Clang, Visual Studio a chasglwyr eraill. Mae'n bosibl adeiladu prosiectau mewn ieithoedd rhaglennu amrywiol, gan gynnwys C, C++, Fortran, Java a Rust. Cefnogir modd adeiladu cynyddrannol, lle dim ond cydrannau sy'n uniongyrchol gysylltiedig Γ’ newidiadau a wnaed ers yr adeiladu diwethaf sy'n cael eu hailadeiladu. Gellir defnyddio Meson i gynhyrchu adeiladau y gellir eu hailadrodd, lle mae rhedeg yr adeilad mewn gwahanol amgylcheddau yn arwain at gynhyrchu gweithredadwy hollol union yr un fath.

Prif arloesiadau Meson 0.58:

  • Π’ языкС Meson Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ встроСнныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ форматирования строк. ВмСсто Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° format Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ значСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, вмСсто Β«β€˜A string @0@ to be formatted @1@’.format(n, m)Β» ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ сразу Β«f’A string @n@ to be formatted @m@'Β».
  • Π’ строковыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Β«replaceΒ» для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠΉ подстроки Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«s = s.replace(β€˜aaa’, β€˜bbb’)Β».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция Β«range(start, stop[, step])Β» для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Ρ†ΠΈΠΊΠ»Π΅ Β«foreachΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«foreach i : range(15)Β».
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ meson.add_devenv(), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ environment() для установки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния Π²ΠΎ врСмя использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«meson devenvΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для задания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния с ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ с ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ.
  • Для ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° новая ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«meson devenv -C builddir [<ΠΊΠΎΠΌΠ°Π½Π΄Π°>], Π΄Π°ΡŽΡ‰Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ, настроСнном для запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· сборочного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° (Π±Π΅Π· установки).
  • По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Β«-pipeΒ» ΠΏΡ€ΠΈ запускС всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… компиляторов.
  • Π Π°Π·Ρ€Π΅ΡˆΡ‘Π½ Π²Ρ‹Π·ΠΎΠ² meson.add_dist_script() ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ запуска ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² append() ΠΈ prepend() для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° environment().
  • Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ error() Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ (ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с warning() ΠΈ message()).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«β€”skip-subprojectsΒ» для Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠ³ΠΎ пропуска установки ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Boson, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° созданиС пСрСносимой ΠΈ простой Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языка сборочных сцСнариСв Meson, написанной Π½Π° языкС Π‘ΠΈ вмСсто Python. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠΊΠ° находится Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ этапС развития ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π³ΠΎΡ‚ΠΎΠ² для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ сборки Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Код распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv3 (ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Meson Π½Π° Python поставляСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0).

Ffynhonnell: opennet.ru

Ychwanegu sylw