Kompilace pro různé cílové platformy je implementována pomocí LLVM a pro podporu jazyka jsou použity knihovny použité v hlavní sadě nástrojů z projektu Go. Zkompilovaný program lze přímo spustit na mikrokontrolérech, což umožňuje použití Go jako jazyka pro psaní automatizačních skriptů.
Motivací pro vytvoření nového projektu byla touha používat známý jazyk Go na kompaktních zařízeních – vývojáři usoudili, že když existuje verze Pythonu pro mikrokontroléry, tak proč nevytvořit podobnou pro jazyk Go. Jít
V současné podobě je podporováno 15 modelů mikrokontrolérů, včetně různých desek od Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary a Phytec. Programy lze také zkompilovat pro spuštění v prohlížeči ve formátu WebAssembly a jako spustitelné soubory pro Linux. Podporuje řadiče ESP8266/ESP32
Klíčové cíle projektu:
Podpora vícejádrových systémů nepatří mezi hlavní cíle,
efektivní spouštění velkého množství korutin (samotné spouštění koroutin je plně podporováno), dosažení výkonnostní úrovně referenčního kompilátoru gc (optimalizace je ponechána na LLVM a v některých aplikacích může být Tinygo rychlejší než gc) a kompletní
Hlavní rozdíl od podobného kompilátoru
Mezi změny ve verzi 0.7 patří implementace příkazu „tinygo test“, poskytování podpory sběru odpadků pro většinu cílových desek (na základě ARM Cortex-M) a WebAssembly, podpora desky HiFive1 rev B založené na RISC- Architektura V a deska Arduino nano33,
vylepšená podpora jazyků (podpora bitových polí pomocí getterů a setterů, podpora anonymních struktur).
Zdroj: opennet.ru