Տարբեր թիրախային հարթակների համար հավաքագրումն իրականացվում է LLVM-ի միջոցով, իսկ Go նախագծի հիմնական գործիքակազմում օգտագործվող գրադարաններն օգտագործվում են լեզուն աջակցելու համար: Կազմված ծրագիրը կարող է ուղղակիորեն գործարկվել միկրոկոնտրոլերների վրա՝ թույլ տալով Go-ին օգտագործել որպես ավտոմատացման սկրիպտներ գրելու լեզու։
Նոր նախագծի ստեղծման շարժառիթը կոմպակտ սարքերում ծանոթ Go լեզուն օգտագործելու ցանկությունն էր. մշակողները պատճառաբանեցին, որ եթե կա Python-ի տարբերակ միկրոկոնտրոլերների համար, ապա ինչու չստեղծել նմանատիպը Go լեզվի համար: Գնա
Իր ներկայիս տեսքով աջակցվում են 15 միկրոկառավարիչների մոդելներ, ներառյալ Adafruit-ի, Arduino-ի, BBC micro:bit-ի, ST Micro-ի, Digispark-ի, Nordic Semiconductor-ի, Makerdiary-ի և Phytec-ի տարբեր տախտակներ: Ծրագրերը կարող են նաև կազմվել՝ WebAssembly ձևաչափով զննարկիչում գործարկելու և Linux-ի համար որպես գործարկվող ֆայլեր: Աջակցում է ESP8266/ESP32 կարգավորիչներին
Ծրագրի հիմնական նպատակները.
Բազմամիջուկ համակարգերի աջակցությունը հիմնական նպատակներից չէ,
հսկայական թվով կորոուտինների արդյունավետ գործարկում (ինքնին կորոուտինների գործարկումն ամբողջությամբ ապահովված է), տեղեկատու կազմող gc-ի կատարողականի մակարդակի ձեռքբերում (օպտիմալացումը թողնված է LLVM-ին, իսկ որոշ հավելվածներում Tinygo-ն կարող է ավելի արագ լինել, քան gc-ն) և ամբողջական
Հիմնական տարբերությունը նմանատիպ կոմպիլյատորից
0.7 թողարկման փոփոխություններից են «tinygo test» հրամանի իրականացումը, աղբահանության աջակցության ապահովումը թիրախ տախտակների մեծ մասի համար (հիմնված ARM Cortex-M-ի վրա) և WebAssembly-ին, աջակցություն HiFive1 rev B տախտակի վրա՝ հիմնված RISC-ի վրա: V ճարտարապետություն և Arduino nano33 տախտակ,
բարելավված լեզվական աջակցություն (աջակցություն բիթային դաշտերի՝ օգտագործելով ստացողներ և սահմանիչներ, աջակցություն անանուն կառույցներին):
Source: opennet.ru