TinyGo er en Go-sprogkompiler beregnet til brug i områder som mikrocontrollere, WASM og udvikling af kommandolinjeværktøjer.
TinyGo bruger hjælpeprogrammer og biblioteker skrevet i Go-projektet, samtidig med at det giver en alternativ metode til at kompilere programmer baseret på arbejdet i LLVM-projektet.
Projektets mål:
- Sørg for minimumsstørrelsen af eksekverbare filer.
- Understøtter det største antal mikrocontrollere.
- WebAssembly support.
- God CGO support.
- Understøttelse af original Go-kode uden ændringer.
Eksempel på brug for at skifte LED på en mikrocontroller:
pakke vigtigste
import (
"maskine"
"tid"
)
func main () {
led := maskine.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
til {
led.Lav()
tid.Søvn(tid.Millisekund * 1000)
led.Høj()
tid.Søvn(tid.Millisekund * 1000)
}
}
Version 0.6.0 indeholder mange ændringer. De vigtigste vedrører forbedret support til CGo, js.FuncOF (Go 1.12+), samt to nye udviklingstavler: Adafruit Feather M0 og Adafruit Trinket M0.
Den fulde liste over ændringer er tilgængelig på GitHub projektside.
Kilde: linux.org.ru