төслийн хувилбар , микроконтроллер, авсаархан нэг процессорын систем гэх мэт үр дүнд бий болсон кодын авсаархан дүрслэл, нөөц бага зарцуулдаг газруудад зориулсан Go хэлний хөрвүүлэгчийг хөгжүүлж байна. Код BSD лицензийн дагуу.
Төрөл бүрийн зорилтот платформуудын эмхэтгэлийг LLVM ашиглан хэрэгжүүлдэг бөгөөд Go төслийн үндсэн хэрэгсэлд ашигласан номын сангуудыг хэлийг дэмжихэд ашигладаг. Эмхэтгэсэн программыг микроконтроллерууд дээр шууд ажиллуулж, Go-г автоматжуулалтын скрипт бичих хэл болгон ашиглах боломжийг олгоно.
Шинэ төсөл бий болгох сэдэл нь танил Go хэлийг авсаархан төхөөрөмж дээр ашиглах хүсэл байв - хөгжүүлэгчид микроконтроллеруудад зориулсан Python хувилбар байгаа бол Go хэлэнд ижил төстэй хувилбарыг яагаад үүсгэж болохгүй гэж хөгжүүлэгчид үзсэн. Яв Зэвийн оронд сурахад хялбар, корутинд суурилсан параллелчлалын урсгалаас хамааралгүй дэмжлэг үзүүлж, өргөн хүрээний стандарт номын санг санал болгодог ("батарейнууд багтсан").
Одоогоор Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary, болон Phytec зэрэг төрөл бүрийн самбаруудыг багтаасан 15 микроконтроллерийн загварыг дэмжиж байна. Мөн програмуудыг WebAssembly форматаар болон гүйцэтгэгдэх файл болгон хөрвүүлэх боломжтой. LinuxESP8266/ESP32 хянагчийг дэмжих , гэхдээ LLVM-д Xtensa чипийг дэмжих тусдаа төсөл боловсруулж байгаа бөгөөд энэ нь тогтворгүй гэж тэмдэглэгдсэн хэвээр байгаа бөгөөд TinyGo-тэй нэгтгэхэд бэлэн биш байна.
Төслийн гол зорилго:
Олон цөмт системийг дэмжих нь гол зорилтуудын нэг биш юм.
асар олон тооны корутиныг үр ашигтай ажиллуулах (корутиныг эхлүүлэх нь өөрөө бүрэн дэмжигддэг), gc лавлах хөрвүүлэгчийн гүйцэтгэлийн түвшинд хүрэх (оновчлолыг LLVM-д үлдээсэн бөгөөд зарим програмуудад Tinygo нь gc-ээс хурдан байж болно) болон бүрэн гүйцэд бүх Go програмуудтай.
Ижил төстэй хөрвүүлэгчээс гол ялгаа нь Энэ нь Go-ийн санах ойн удирдлагын анхны загварыг хог хаягдал цуглуулах замаар хадгалах оролдлого бөгөөд C дүрслэлд хөрвүүлэхийн оронд LLVM ашиглан үр ашигтай код үүсгэх болно. Tinygo нь мөн авсаархан системд тохирсон хуваарь, санах ойн хуваарилалтын систем, мөр боловсруулагчийг хэрэгжүүлдэг шинэ ажиллах цагийн номын санг санал болгодог. Синхрончлох, тусгах зэрэг зарим багцуудыг шинэ ажиллах цаг дээр үндэслэн дахин үүсгэсэн.
0.7 хувилбарт гарсан өөрчлөлтүүдийн дунд "tinygo test" командыг хэрэгжүүлэх, ихэнх зорилтот самбаруудад хог цуглуулах дэмжлэг (ARM Cortex-M дээр суурилсан) болон WebAssembly, RISC- дээр суурилсан HiFive1 rev B самбарыг дэмжих зэрэг орно. V архитектур ба Arduino nano33 самбар,
сайжруулсан хэлний дэмжлэг (гетер болон тохируулагч ашиглан бит талбаруудыг дэмжих, нэргүй бүтцийг дэмжих).
Эх сурвалж: opennet.ru
