Tinygo 0.7.0 کی ریلیز، LLVM پر مبنی Go کمپائلر

دستیاب منصوبے کی رہائی Tinygo 0.7.0، جو ان علاقوں کے لیے گو لینگوئج کمپائلر تیار کر رہا ہے جن کے نتیجے میں کوڈ کی کمپیکٹ نمائندگی اور کم وسائل کی کھپت کی ضرورت ہوتی ہے، جیسے مائیکرو کنٹرولرز اور کمپیکٹ سنگل پروسیسر سسٹم۔ کوڈ نے بانٹا BSD لائسنس کے تحت۔

مختلف ٹارگٹ پلیٹ فارمز کے لیے تالیف LLVM کا استعمال کرتے ہوئے لاگو کی جاتی ہے، اور گو پروجیکٹ کی مرکزی ٹول کٹ میں استعمال ہونے والی لائبریریوں کو زبان کی حمایت کے لیے استعمال کیا جاتا ہے۔ مرتب کردہ پروگرام کو براہ راست مائیکرو کنٹرولرز پر چلایا جا سکتا ہے، جس سے گو کو آٹومیشن اسکرپٹ لکھنے کے لیے بطور زبان استعمال کیا جا سکتا ہے۔

ایک نیا پروجیکٹ بنانے کا محرک کمپیکٹ ڈیوائسز پر مانوس گو لینگویج استعمال کرنے کی خواہش تھی - ڈویلپرز نے استدلال کیا کہ اگر مائیکرو کنٹرولرز کے لیے ازگر کا ورژن موجود ہے تو پھر گو لینگویج کے لیے ایسا ہی کیوں نہ بنایا جائے۔ جاؤ منتخب شدہ Rust کی بجائے کیونکہ یہ سیکھنا آسان ہے، کورٹین پر مبنی متوازی کے لیے تھریڈ سے آزاد تعاون فراہم کرتا ہے، اور ایک وسیع معیاری لائبریری پیش کرتا ہے ("بیٹریاں شامل")۔

اس کی موجودہ شکل میں، 15 مائیکرو کنٹرولر ماڈلز سپورٹ ہیں، بشمول Adafruit، Arduino، BBC micro:bit، ST Micro، Digispark، Nordic Semiconductor، Makerdiary اور Phytec کے مختلف بورڈز۔ براؤزر میں WebAssembly فارمیٹ اور لینکس کے لیے قابل عمل فائلوں کے طور پر چلانے کے لیے پروگرام بھی مرتب کیے جا سکتے ہیں۔ ESP8266/ESP32 کنٹرولرز کی حمایت کرتا ہے۔ ابھی تک نہیں، لیکن LLVM میں Xtensa چپ کے لیے سپورٹ شامل کرنے کے لیے ایک علیحدہ پروجیکٹ تیار کیا جا رہا ہے، جو ابھی تک غیر مستحکم کے طور پر نشان زد ہے اور TinyGo کے ساتھ انضمام کے لیے تیار نہیں ہے۔

منصوبے کے اہم مقاصد:

  • بہت کمپیکٹ قابل عمل فائلوں کی تخلیق؛
  • مائکروکنٹرولر بورڈز کے سب سے عام ماڈلز کے لیے سپورٹ؛
  • ویب کے لیے درخواست کا امکان؛
  • C میں فنکشنز کو کال کرتے وقت کم سے کم اوور ہیڈ کے ساتھ CGO سپورٹ؛
  • زیادہ تر معیاری پیکجوں کے لیے سپورٹ اور عام موجودہ کوڈ کو تبدیل کیے بغیر مرتب کرنے کی صلاحیت۔

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

    اسی طرح کے مرتب کرنے والے سے بنیادی فرق ایمگو کوڑے کو جمع کرنے کا استعمال کرتے ہوئے گو کے اصل میموری مینجمنٹ ماڈل کو محفوظ رکھنے اور LLVM کو C نمائندگی میں مرتب کرنے کے بجائے موثر کوڈ بنانے کے لیے استعمال کرنے کی کوشش ہے۔ Tinygo ایک نئی رن ٹائم لائبریری بھی پیش کرتا ہے جو ایک شیڈیولر، میموری ایلوکیشن سسٹم، اور سٹرنگ ہینڈلرز کو لاگو کرتا ہے جو کمپیکٹ سسٹمز کے لیے موزوں ہیں۔ کچھ پیکجز، جیسے کہ مطابقت پذیری اور عکاسی، نئے رن ٹائم کی بنیاد پر دوبارہ بنائے گئے ہیں۔

    ریلیز 0.7 میں تبدیلیوں میں "ٹینیگو ٹیسٹ" کمانڈ کا نفاذ، زیادہ تر ٹارگٹ بورڈز (اے آر ایم کارٹیکس-ایم پر مبنی) اور ویب اسمبلی کے لیے کوڑا کرکٹ جمع کرنے میں مدد کی فراہمی، RISC- کی بنیاد پر HiFive1 rev B بورڈ کے لیے سپورٹ۔ V فن تعمیر اور Arduino nano33 بورڈ،
    بہتر لینگویج سپورٹ (گیٹرز اور سیٹٹرز کا استعمال کرتے ہوئے بٹ فیلڈز کے لیے سپورٹ، گمنام ڈھانچے کے لیے سپورٹ)۔

    ماخذ: opennet.ru

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