TinyGo er en Go-språkkompiler beregnet for bruk i områder som mikrokontrollere, WASM og utvikling av kommandolinjeverktøy.
TinyGo bruker verktøy og biblioteker skrevet i Go-prosjektet, samtidig som det gir en alternativ metode for å kompilere programmer basert på arbeidet til LLVM-prosjektet.
Prosjektmål:
- Sørg for minimumsstørrelsen på kjørbare filer.
- Støtter det største antallet mikrokontrollere.
- WebAssembly støtte.
- God CGo-støtte.
- Støtte for original Go-kode uten endringer.
Eksempelbruk for å bytte LED på en mikrokontroller:
pakke hoved
importere (
"maskin"
"tid"
)
func main () {
led := maskin.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
for {
led.Low()
tid.Søvn(tid.Millisekund * 1000)
ledet.Høy()
tid.Søvn(tid.Millisekund * 1000)
}
}
Versjon 0.6.0 inneholder mange endringer. De viktigste er knyttet til forbedret støtte for CGo, js.FuncOF (Go 1.12+), samt to nye utviklingstavler: Adafruit Feather M0 og Adafruit Trinket M0.
Hele listen over endringer er tilgjengelig på GitHub prosjektside.
Kilde: linux.org.ru