Erinevate sihtplatvormide kompileerimine toimub LLVM-i abil ja keele toetamiseks kasutatakse Go projekti põhitööriistakomplektis kasutatavaid teeke. Koostatud programmi saab otse mikrokontrolleritel käivitada, võimaldades Go-d kasutada automatiseerimisskriptide kirjutamise keelena.
Uue projekti loomise ajendiks oli soov kasutada kompaktsetes seadmetes tuttavat Go keelt - arendajad põhjendasid, et kui mikrokontrolleritele oli Pythoni versioon, siis miks mitte luua samasugune ka Go keele jaoks. Mine
Praegusel kujul toetatakse 15 mikrokontrolleri mudelit, sealhulgas erinevad plaadid firmadelt Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary ja Phytec. Programme saab kompileerida ka WebAssembly-vormingus brauseris käitamiseks ja Linuxi täitmisfailidena. Toetab ESP8266/ESP32 kontrollereid
Projekti peamised eesmärgid:
Mitmetuumaliste süsteemide toetamine ei kuulu peamiste eesmärkide hulka,
tohutu hulga korutiinide tõhus käivitamine (korutiinide käivitamine ise on täielikult toetatud), etalonkompilaatori gc jõudlustaseme saavutamine (optimeerimine on jäetud LLVM-i hooleks ja mõnes rakenduses võib Tinygo olla kiirem kui gc) ja lõpetamine
Peamine erinevus sarnasest kompilaatorist
Väljalaske 0.7 muudatuste hulgas on käsu "tinygo test" rakendamine, prügikoristustoe pakkumine enamikule sihtplaatidele (ARM Cortex-M baasil) ja WebAssembly, tugi RISC-põhisele HiFive1 rev B plaadile. V arhitektuur ja Arduino nano33 plaat,
täiustatud keeletugi (tugi bitiväljadele, kasutades gettereid ja settereid, tugi anonüümsetele struktuuridele).
Allikas: opennet.ru