TinyGo je kompilátor programovacieho jazyka Go, určený na použitie v oblastiach ako mikrokontroléry, WASM a vývoj príkazových utilít.
TinyGo využíva nástroje a knižnice napísané v projekte Go, pričom poskytuje alternatívnu metódu kompilácie programov na základe prác projektu LLVM.
Ciele projektu:
- Zabezpečiť minimálnu veľkosť spustiteľných súborov.
- Podpora čo najväčšieho počtu mikrokontrolérov.
- Podpora WebAssembly.
- Dobrá podpora CGo.
- Podpora pôvodného kódu v Go bez zmien.
Príklad použitia na prepínanie LED na mikrokontroléri:
package main
import (
"machine"
"time"
)
func main() {
led := machine.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
for {
led.Low()
time.Sleep(time.Millisecond * 1000)
led.High()
time.Sleep(time.Millisecond * 1000)
}
}
Verzia 0.6.0 obsahuje množstvo zmien. Hlavné z nich sa týkajú zlepšenia podpory CGo, js.FuncOF (Go 1.12+) a dvoch nových vývojových dosiek: Adafruit Feather M0 a Adafruit Trinket M0.
Úplný zoznam zmien je k dispozícii na GitHub stránke projektu.
Zdroj: linux.org.ru
