منصوبے کی رہائی ، جو ان علاقوں کے لیے گو لینگوئج کمپائلر تیار کر رہا ہے جہاں نتیجے میں آنے والے کوڈ کی کمپیکٹ نمائندگی اور کم وسائل کی کھپت کی ضرورت ہوتی ہے، جیسے مائیکرو کنٹرولرز اور کمپیکٹ سنگل پروسیسر سسٹم۔ کوڈ BSD لائسنس کے تحت۔
مختلف ٹارگٹ پلیٹ فارمز کے لیے تالیف LLVM کا استعمال کرتے ہوئے لاگو کی جاتی ہے، اور زبان کی معاونت بنیادی طور پر گو پروجیکٹ کے ٹول چین میں استعمال ہونے والی لائبریریوں کے ذریعے فراہم کی جاتی ہے۔ مرتب کردہ پروگرام براہ راست مائیکرو کنٹرولرز پر چل سکتا ہے، جس سے گو کو آٹومیشن اسکرپٹ لکھنے کے لیے بطور زبان استعمال کیا جا سکتا ہے۔
نئے پروجیکٹ کو بنانے کا محرک کمپیکٹ ڈیوائسز پر مانوس گو لینگویج استعمال کرنے کی خواہش تھی - ڈویلپرز نے استدلال کیا کہ اگر مائیکرو کنٹرولرز کے لیے Python ورژن موجود ہے، تو پھر گو زبان کے لیے کچھ ایسا ہی کیوں نہ بنایا جائے۔ Rust کے بجائے کیونکہ یہ سیکھنا آسان ہے، کورٹین پر مبنی ہم آہنگی کے لیے تھریڈ-ایگنوسٹک سپورٹ فراہم کرتا ہے، اور ایک جامع معیاری لائبریری پیش کرتا ہے ("بیٹریاں شامل")۔
فی الحال، 15 مائیکرو کنٹرولر ماڈلز سپورٹ ہیں، بشمول Adafruit، Arduino، BBC micro:bit، ST Micro، Digispark، Nordic Semiconductor، Makerdiary، اور Phytec کے مختلف بورڈز۔ ویب اسمبلی فارمیٹ میں اور لینکس ایگزیکیوٹیبل کے طور پر براؤزر کے عمل کے لیے بھی پروگرام مرتب کیے جا سکتے ہیں۔ ESP8266/ESP32 کنٹرولرز کے لیے سپورٹ ، لیکن LLVM میں Xtensa چپ کے لیے سپورٹ شامل کرنے کے لیے ایک علیحدہ پروجیکٹ تیار کیا جا رہا ہے، جسے فی الحال غیر مستحکم کے طور پر نشان زد کیا گیا ہے اور TinyGo کے ساتھ انضمام کے لیے تیار نہیں ہے۔
منصوبے کے اہم مقاصد:
ملٹی کور سسٹمز کے لیے سپورٹ اہم مقاصد میں سے ایک نہیں ہے،
بڑی تعداد میں کوروٹینز کا موثر لانچ (کوروٹائنز کا آغاز خود مکمل طور پر معاون ہے)، حوالہ جی سی کمپائلر کی کارکردگی کی سطح کو حاصل کرنا (اصلاح کو ایل ایل وی ایم پر چھوڑ دیا گیا ہے اور کچھ ایپلی کیشنز میں ٹینیگو جی سی سے تیز ہو سکتا ہے) اور مکمل تمام گو ایپلی کیشنز کے ساتھ۔
اسی طرح کے مرتب کرنے والے سے بنیادی فرق Tinygo Go کے اصل کوڑے سے جمع کردہ میموری مینجمنٹ ماڈل کو محفوظ رکھنے کی کوشش کرتا ہے اور LLVM سے فائدہ اٹھاتا ہے تاکہ C نمائندگی کو مرتب کرنے کے بجائے موثر کوڈ تیار کیا جا سکے۔ Tinygo ایک نئی رن ٹائم لائبریری بھی پیش کرتا ہے جو ایک شیڈیولر، میموری ایلوکیشن سسٹم، اور سٹرنگ ہینڈلرز کو لاگو کرتا ہے جو کمپیکٹ سسٹمز کے لیے موزوں ہیں۔ نئے رن ٹائم کا استعمال کرتے ہوئے متعدد پیکیجز، جیسے کہ مطابقت پذیری اور عکاسی کو دوبارہ بنایا گیا ہے۔
ریلیز 0.7 میں تبدیلیوں میں "tinygo test" کمانڈ کا نفاذ، زیادہ تر ٹارگٹ بورڈز (ARM Cortex-M کی بنیاد پر) اور WebAssembly کے لیے کوڑا کرکٹ جمع کرنے میں مدد، RISC-V فن تعمیر اور Arduino nano33 بورڈ پر مبنی HiFive1 rev B بورڈ کے لیے سپورٹ،
بہتر لینگویج سپورٹ (گیٹرز اور سیٹرز کا استعمال کرتے ہوئے بٹ فیلڈز کے لیے سپورٹ، گمنام ڈھانچوں کے لیے سپورٹ)۔
ماخذ: opennet.ru
