انتشار سیستم اسمبلی Meson 0.58. پروژه ایجاد پیاده سازی Meson به زبان C

انتشار سیستم ساخت Meson 0.58 منتشر شده است که برای ساخت پروژه هایی مانند X.Org Server، Mesa، Lighttpd، systemd، GStreamer، Wayland، GNOME و GTK استفاده می شود. کد مزون به زبان پایتون نوشته شده و تحت مجوز آپاچی 2.0 است.

هدف اصلی توسعه Meson ارائه یک فرآیند مونتاژ با سرعت بالا همراه با راحتی و سهولت استفاده است. به‌جای ساخت، این بیلد به‌طور پیش‌فرض از جعبه ابزار Ninja استفاده می‌کند، اما از دیگر بک‌اندها مانند xcode و VisualStudio نیز می‌توان استفاده کرد. این سیستم دارای یک کنترلر وابستگی چند پلتفرمی داخلی است که به شما امکان می دهد از Meson برای ساخت بسته هایی برای توزیع ها استفاده کنید. قوانین اسمبلی به زبان ساده شده مختص دامنه تنظیم شده است، آنها به خوبی خوانا و برای کاربر قابل درک هستند (طبق ایده نویسندگان، توسعه دهنده باید حداقل زمان خود را برای نوشتن قوانین صرف کند).

کامپایل متقابل و ساخت بر روی Linux، Illumos/Solaris، FreeBSD، NetBSD، DragonFly BSD، Haiku، macOS و Windows با استفاده از GCC، Clang، Visual Studio و سایر کامپایلرها پشتیبانی می شود. امکان ساخت پروژه به زبان های برنامه نویسی مختلف از جمله C، C++، Fortran، Java و Rust وجود دارد. یک حالت ساخت افزایشی پشتیبانی می‌شود، که در آن فقط اجزایی که مستقیماً با تغییرات ایجاد شده از آخرین ساخت مرتبط هستند، بازسازی می‌شوند. مزون را می توان برای تولید بیلدهای تکرارپذیر استفاده کرد، که در آن اجرای بیلد در محیط های مختلف منجر به اجرای کاملاً یکسان می شود.

نوآوری های اصلی Meson 0.58:

  • Meson دارای عملیات قالب بندی رشته ای داخلی است. به جای فراخوانی متد قالب، اکنون می توانید مقادیر را به طور مستقیم جایگزین کنید، به عنوان مثال، به جای "یک رشته @0@ برای قالب بندی @1@'.format(n, m)" بلافاصله می توانید "f" را مشخص کنید. یک رشته @n@ برای قالب بندی @ m@'".
  • یک متد "replace" به اشیاء رشته اضافه شده است تا عملیات جایگزینی یک زیررشته با رشته دیگر را انجام دهد، به عنوان مثال، "s = s.replace('aaa', 'bbb')".
  • تابع "range(start, stop[, step])" برای برگرداندن یک شی که می تواند در یک حلقه foreach استفاده شود، مانند "foreach i : range(15)" اضافه شده است.
  • متد meson.add_devenv () پیاده‌سازی شده است، به شما این امکان را می‌دهد که هنگام استفاده از دستور "meson devenv" یک شی محیط () را به مجموعه متغیرهای محیط اضافه کنید، به عنوان مثال، برای تنظیم یک متغیر محیطی با مسیر دایرکتوری افزونه‌ها.
  • برای محیط های توسعه، دستور جدیدی پیشنهاد شده است: "meson devenv -C builddir [<command>]، که اجرای دستور را در محیطی پیکربندی شده برای راه اندازی پروژه ها از دایرکتوری ساخت (بدون نصب) ممکن می سازد.
  • به طور پیش فرض، هنگام اجرای همه کامپایلرهای پشتیبانی شده، گزینه "-pipe" ارسال نمی شود.
  • فراخوانی () meson.add_dist_script از زیر پروژه ها مجاز است.
  • توانایی اجرای متدهای append() و prepend() را چندین بار بر روی یک شی محیط () فراهم می کند.
  • تابع error() به بیش از یک آرگومان اجازه می دهد که با یک فاصله (شبیه به warning() و message() از هم جدا شوند.
  • اضافه شدن گزینه "--skip-subprojects" برای پرش انتخابی نصب پروژه های فرعی.

به طور جداگانه، می‌توانیم به پروژه Boson اشاره کنیم که هدف آن ایجاد یک پیاده‌سازی قابل حمل و ساده از زبان اسکریپت اسمبلی Meson است که به جای پایتون به زبان C نوشته شده است. این پروژه هنوز در مرحله اولیه توسعه است و هنوز برای مونتاژ کامل پروژه های کاری آماده نیست. کد تحت مجوز GPLv3 است (میزون اصلی پایتون تحت مجوز Apache 2.0 مجوز دارد).

منبع: opennet.ru

اضافه کردن نظر