TinyGo je prevajalnik jezika Go, namenjen uporabi na področjih, kot so mikrokrmilniki, WASM in razvoj pripomočkov ukazne vrstice.
TinyGo uporablja pripomočke in knjižnice, napisane v projektu Go, hkrati pa zagotavlja alternativno metodo za prevajanje programov, ki temeljijo na delu projekta LLVM.
Cilji projekta:
- Zagotovite najmanjšo velikost izvršljivih datotek.
- Podpira največje število mikrokontrolerjev.
- Podpora za WebAssembly.
- Dobra podpora za CGo.
- Podpora izvirne Go kode brez sprememb.
Primer uporabe za preklop LED na mikrokontrolerju:
glavni paket
uvoz (
"stroj"
"čas"
)
func main() {
led := stroj.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
za {
led.Low()
čas.Spanje(čas.Milisekunda * 1000)
led.High()
čas.Spanje(čas.Milisekunda * 1000)
}
}
Različica 0.6.0 vsebuje veliko sprememb. Glavni se nanašajo na izboljšano podporo za CGo, js.FuncOF (Go 1.12+), pa tudi na dve novi razvojni plošči: Adafruit Feather M0 in Adafruit Trinket M0.
Celoten seznam sprememb je na voljo na Stran projekta GitHub.
Vir: linux.org.ru