Kompilācija dažādām mērķa platformām tiek īstenota, izmantojot LLVM, un valodas atbalstam tiek izmantotas Go projekta galvenajā rīku komplektā izmantotās bibliotēkas. Sastādīto programmu var tieši darbināt uz mikrokontrolleriem, ļaujot Go izmantot kā valodu automatizācijas skriptu rakstīšanai.
Motivācija jauna projekta izveidei bija vēlme kompaktajās ierīcēs izmantot pazīstamo Go valodu - izstrādātāji sprieda, ja jau ir Python versija mikrokontrolleriem, tad kāpēc gan neizveidot līdzīgu Go valodai. Aiziet
Pašreizējā formā tiek atbalstīti 15 mikrokontrolleru modeļi, tostarp dažādas plates no Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary un Phytec. Programmas var arī kompilēt, lai tās darbotos pārlūkprogrammā WebAssembly formātā un kā izpildāmos failus operētājsistēmai Linux. Atbalsta ESP8266/ESP32 kontrolierus
Projekta galvenie mērķi:
Atbalsts daudzkodolu sistēmām nav viens no galvenajiem mērķiem,
efektīva milzīga skaita korutīnu palaišana (paša korutīnu palaišana ir pilnībā atbalstīta), atsauces kompilatora gc veiktspējas līmeņa sasniegšana (optimizācija ir atstāta LLVM ziņā un dažās lietojumprogrammās Tinygo var būt ātrāka par gc) un pabeigta
Galvenā atšķirība no līdzīga kompilatora
Starp izmaiņām versijā 0.7 ir iekļauta komandas “tinygo test” ieviešana, atkritumu savākšanas atbalsta nodrošināšana lielākajai daļai mērķa paneļu (pamatojoties uz ARM Cortex-M) un WebAssembly, atbalsts HiFive1 rev B platei, kuras pamatā ir RISC- V arhitektūra un Arduino nano33 plate,
uzlabots valodas atbalsts (atbalsts bitu laukiem, izmantojot ieguvējus un iestatītājus, atbalsts anonīmām struktūrām).
Avots: opennet.ru