Tinygo 0.7.0 جو رليز، LLVM-based Go compiler

دستياب پروجيڪٽ ڇڏڻ Tinygo 0.7.0، جيڪو ترقي ڪري رهيو آهي هڪ گو ٻولي ڪمپلر انهن علائقن لاءِ جنهن کي گهربل ڪوڊ جي جامع نمائندگي ۽ گهٽ وسيلن جي استعمال جي ضرورت آهي، جهڙوڪ مائڪرو ڪنٽرولرز ۽ ڪمپيڪٽ سنگل پروسيسر سسٽم. ڪوڊ طرفان ورهايل BSD لائسنس جي تحت.

LLVM استعمال ڪندي مختلف ٽارگيٽ پليٽ فارمن لاءِ تاليف تي عمل ڪيو ويو آهي، ۽ گو پروجيڪٽ جي مکيه ٽول ڪٽ ۾ استعمال ٿيندڙ لائبريريون ٻولي کي سپورٽ ڪرڻ لاءِ استعمال ڪيون وينديون آهن. مرتب ڪيل پروگرام سڌو سنئون مائڪروڪنٽرولرز تي هلائي سگھجي ٿو، اجازت ڏئي ٿي Go کي ٻولي طور استعمال ٿيڻ جي آٽوميشن اسڪرپٽس لکڻ لاءِ.

هڪ نئين پروجيڪٽ ٺاهڻ جي حوصلا افزائي هئي واقف گو ٻولي استعمال ڪرڻ جي خواهش ڪمپيڪٽ ڊوائيسز تي - ڊولپرز اهو دليل ڏنو ته جيڪڏهن مائڪرو ڪنٽرولرز لاءِ پٿون نسخو موجود آهي ته پوءِ ڇو نه Go ٻولي لاءِ هڪ جهڙو ٺاهيو وڃي. وڃ منتخب ٿيل Rust جي بدران ڇاڪاڻ ته اهو سکڻ آسان آهي، ڪوروٽين جي بنياد تي متوازي ڪرڻ لاء ٿريڊ-آزاد سپورٽ مهيا ڪري ٿو، ۽ هڪ وسيع معياري لائبريري پيش ڪري ٿو ("بيٽريون شامل").

ان جي موجوده شڪل ۾، 15 مائڪرو ڪنٽرولر ماڊلز کي سپورٽ ڪيو ويو آهي، بشمول Adafruit، Arduino، BBC micro:bit، ST Micro، Digispark، Nordic Semiconductor، Makerdiary ۽ Phytec جا مختلف بورڊ. پروگرام پڻ مرتب ڪري سگھجن ٿا برائوزر ۾ هلائڻ لاءِ WebAssembly فارميٽ ۾ ۽ لينڪس لاءِ قابل عمل فائلن جي طور تي. ESP8266 / ESP32 ڪنٽرولرز کي سپورٽ ڪري ٿو اڃا نه، پر LLVM ۾ Xtensa چپ لاءِ سپورٽ شامل ڪرڻ لاءِ هڪ الڳ پروجيڪٽ تيار ڪيو پيو وڃي، جيڪو اڃا تائين غير مستحڪم طور نشان لڳايو ويو آهي ۽ TinyGo سان انضمام لاءِ تيار ناهي.

اهم منصوبي جا مقصد:

  • تمام ٺھيل قابل عمل فائلن جي پيدائش؛
  • microcontroller بورڊ جي سڀ کان عام ماڊلز لاء حمايت؛
  • ويب لاء درخواست جو امڪان؛
  • گھٽ ۾ گھٽ اوور هيڊ سان CGo سپورٽ جڏھن C ۾ فنڪشن کي ڪال ڪندي؛
  • اڪثر معياري پيڪيجز لاءِ سپورٽ ۽ ان کي تبديل ڪرڻ کان سواءِ معياري موجوده ڪوڊ گڏ ڪرڻ جي صلاحيت.

    ملٽي-ڪور سسٽم لاءِ سپورٽ بنيادي مقصدن مان نه آهي،
    وڏي تعداد ۾ ڪوروٽينز جو موثر لانچ (ڪوروٽينز جو لانچ خود مڪمل طور تي سپورٽ ڪيو ويو آهي)، ريفرنس ڪمپلر جي سي جي ڪارڪردگي جي سطح جي حاصلات (اصلاح کي LLVM ڏانهن ڇڏي ويو آهي ۽ ڪجهه ايپليڪيشنن ۾ Tinygo gc کان تيز ٿي سگهي ٿو) ۽ مڪمل مطابقت سڀني Go ايپليڪيشنن سان.

    بنيادي فرق هڪ ساڳئي ڪمپيلر کان ايمگو گو جي اصل ميموري مئنيجمينٽ ماڊل کي محفوظ ڪرڻ جي ڪوشش آهي ڪچري کي گڏ ڪندي ۽ LLVM استعمال ڪري موثر ڪوڊ پيدا ڪرڻ جي بجاءِ ان کي C نمائندگي ۾ گڏ ڪرڻ جي. Tinygo هڪ نئين رن ٽائم لائبريري پڻ پيش ڪري ٿو جيڪا هڪ شيڊولر، ميموري مختص ڪرڻ وارو نظام، ۽ اسٽرنگ هينڊلر کي ڪمپيڪٽ سسٽم لاءِ بهتر بڻائي ٿي. ڪجهه پيڪيجز، جهڙوڪ هم وقت سازي ۽ موٽڻ، نئين رن ٽائم جي بنياد تي ٻيهر ٺاهيا ويا آهن.

    رليز 0.7 ۾ تبديلين ۾ شامل آهن ”ٽائنيگو ٽيسٽ“ ڪمانڊ جو نفاذ، اڪثر ٽارگيٽ بورڊز (ARM Cortex-M جي بنياد تي) ۽ WebAssembly لاءِ ڪچرو گڏ ڪرڻ جي سهولت جي فراهمي، RISC- جي بنياد تي HiFive1 rev B بورڊ جي حمايت. V فن تعمير ۽ Arduino نانو 33 بورڊ،
    بهتر ٻولي جي مدد (گيٽرز ۽ سيٽرز استعمال ڪندي بٽ فيلڊز لاءِ سپورٽ، گمنام ڍانچي لاءِ سپورٽ).

    جو ذريعو: opennet.ru

  • تبصرو شامل ڪريو