TinyGo je kompajler programskog jezika Go, namijenjen za korištenje u područjima poput mikrokontrolera, WASM, kao i za razvoj alata za komandnu liniju.
TinyGo koristi alate i biblioteke napisane u projektu Go, pružajući alternativnu metodu kompilacije programa zasnovanu na radovima projekta LLVM.
Ciljevi projekta:
- Osigurati minimalnu veličinu izvršnih datoteka.
- Podrška za najveći broj mikrokontrolera.
- Podrška za WebAssembly.
- Dobra podrška za CGo.
- Podrška za izvorni kod na Go bez promjena.
Primjer korištenja za prebacivanje LED diode na mikrokontroleru:
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)
}
}
Verzija 0.6.0 donosi brojne promjene. Glavne među njima odnose se na poboljšanu podršku za CGo, js.FuncOF (Go 1.12+), kao i za dvije nove razvojne ploče: Adafruit Feather M0 i Adafruit Trinket M0.
Potpun popis promjena dostupan je na GitHub stranici projekta.
Izvor: linux.org.ru
