میسن 0.58 اسمبلی سسٹم کی رہائی۔ سی زبان میں میسن کا نفاذ بنانے کا پروجیکٹ

میسن 0.58 بلڈ سسٹم کی ریلیز شائع ہو چکی ہے، جو کہ X.Org Server، Mesa، Lighttpd، systemd، GStreamer، Wayland، GNOME اور GTK جیسے پروجیکٹس بنانے کے لیے استعمال ہوتی ہے۔ میسن کوڈ Python میں لکھا گیا ہے اور Apache 2.0 لائسنس کے تحت لائسنس یافتہ ہے۔

میسن کا کلیدی ترقیاتی ہدف سہولت اور استعمال میں آسانی کے ساتھ مل کر تیز رفتار اسمبلی کا عمل فراہم کرنا ہے۔ میک کے بجائے، بلڈ ڈیفالٹ کے طور پر ننجا ٹول کٹ کا استعمال کرتا ہے، لیکن دوسرے بیک اینڈ جیسے ایکس کوڈ اور ویژول اسٹوڈیو بھی استعمال کیے جاسکتے ہیں۔ سسٹم میں ایک بلٹ ان ملٹی پلیٹ فارم انحصار ہینڈلر ہے جو آپ کو تقسیم کے لیے پیکجز بنانے کے لیے میسن کو استعمال کرنے کی اجازت دیتا ہے۔ اسمبلی کے قواعد ایک آسان ڈومین کے لیے مخصوص زبان میں مرتب کیے گئے ہیں، وہ صارف کے لیے اچھی طرح سے پڑھنے اور قابل فہم ہیں (مصنفین کے خیال کے مطابق، ڈویلپر کو قواعد لکھنے میں کم از کم وقت گزارنا چاہیے)۔

لینکس، Illumos/Solaris، FreeBSD، NetBSD، DragonFly BSD، Haiku، macOS اور Windows پر GCC، Clang، Visual Studio اور دیگر کمپائلرز کا استعمال کرتے ہوئے کراس کمپائلنگ اور بلڈنگ سپورٹ کی جاتی ہے۔ مختلف پروگرامنگ زبانوں میں پروجیکٹ بنانا ممکن ہے، بشمول C، C++، Fortran، Java اور Rust۔ ایک انکریمنٹل بلڈ موڈ سپورٹ کیا جاتا ہے، جس میں صرف ان اجزاء کو دوبارہ بنایا جاتا ہے جو آخری تعمیر کے بعد کی گئی تبدیلیوں سے براہ راست تعلق رکھتے ہیں۔ میسن کو دوبارہ قابل تعمیر بنانے کے لیے استعمال کیا جا سکتا ہے، جہاں مختلف ماحول میں تعمیر کو چلانے کے نتیجے میں مکمل طور پر ایک جیسے ایگزیکیوٹیبل ہوتے ہیں۔

میسن 0.58 کی اہم اختراعات:

  • میسن کے پاس بلٹ ان سٹرنگ فارمیٹنگ آپریشنز ہیں۔ فارمیٹ کے طریقہ کار کو کال کرنے کے بجائے، آپ اب براہ راست اقدار کو تبدیل کر سکتے ہیں، مثال کے طور پر، "A string @0@ to be formatted @1@'.format(n,m)" کے بجائے آپ فوری طور پر "f' کی وضاحت کر سکتے ہیں۔ ایک سٹرنگ @n@ کو @m@' فارمیٹ کیا جائے گا۔
  • سٹرنگ آبجیکٹ میں ایک "تبدیل کریں" کا طریقہ شامل کیا گیا ہے تاکہ ایک سبسٹرنگ کو دوسرے سے بدلنے کا عمل انجام دیا جا سکے، مثال کے طور پر، "s = s.replace('aa', 'bbb')"۔
  • ایک ایسی چیز کو واپس کرنے کے لیے "range(start, stop[, step])" فنکشن شامل کیا گیا جسے foreach loop میں استعمال کیا جا سکتا ہے، جیسے "foreach i: range(15)"۔
  • meson.add_devenv() طریقہ نافذ کر دیا گیا ہے، جس سے آپ "meson devenv" کمانڈ استعمال کرتے وقت ماحولیاتی متغیرات کو سیٹ کرنے کے لیے ماحول () آبجیکٹ شامل کر سکتے ہیں، مثال کے طور پر، پلگ ان ڈائرکٹری کے راستے کے ساتھ ماحولیاتی متغیر سیٹ کرنا۔
  • ترقیاتی ماحول کے لیے، ایک نئی کمانڈ تجویز کی گئی ہے: "meson devenv -C builddir [<command>]، جو بلڈ ڈائرکٹری (بغیر انسٹالیشن) سے پروجیکٹ شروع کرنے کے لیے ترتیب شدہ ماحول میں کمانڈ کو چلانا ممکن بناتا ہے۔
  • پہلے سے طے شدہ طور پر، "-pipe" آپشن کو پاس ہونے سے روک دیا جاتا ہے جب تمام معاون کمپائلرز چلاتے ہیں۔
  • سب پروجیکٹس سے meson.add_dist_script() کو کال کرنے کی اجازت ہے۔
  • ایک ہی ماحول () آبجیکٹ پر متعدد بار append() اور prepend() طریقوں کو چلانے کی صلاحیت فراہم کی۔
  • ایرر() فنکشن ایک سے زیادہ آرگومنٹ کی اجازت دیتا ہے، ایک اسپیس (وارننگ() اور میسج() کی طرح) سے الگ۔
  • ذیلی منصوبوں کی تنصیب کو منتخب طور پر چھوڑنے کے لیے "-skip-subprojects" اختیار شامل کیا گیا۔

الگ سے، ہم بوسن پروجیکٹ کو نوٹ کر سکتے ہیں، جس کا مقصد میسن اسمبلی اسکرپٹ لینگویج کا پورٹیبل اور سادہ نفاذ بنانا ہے، جو Python کی بجائے C میں لکھی گئی ہے۔ یہ منصوبہ ابھی ترقی کے ابتدائی مرحلے میں ہے اور ابھی تک کام کرنے والے منصوبوں کی مکمل اسمبلی کے لیے تیار نہیں ہے۔ کوڈ GPLv3 کے تحت لائسنس یافتہ ہے (اصل Python Meson Apache 2.0 لائسنس کے تحت لائسنس یافتہ ہے)۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں