TinyGo je prevajalnik jezika Go, namenjen uporabi na področjih, kot so mikrokrmilniki, WASM in razvoj ukaznih pripomočkov.
TinyGo uporablja orodja in knjižnice, napisane v projektu Go, hkrati pa ponuja alternativen način prevajanja programov na osnovi dosežkov projekta LLVM.
Cilji projekta:
- Zagotoviti minimalno velikost izvršnih datotek.
- Podpora za največje število mikrokrmilnikov.
- Podpora za WebAssembly.
- Dobra podpora za CGo.
- Podpora originalne kode Go brez sprememb.
Primer uporabe za vklop LED na mikrokrmilniku:
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)
}
}
Različica 0.6.0 prinaša številne spremembe. Glavne med njimi se nanašajo na izboljšano podporo za CGo, js.FuncOF (Go 1.12+) ter dve novi razvojni plošči: Adafruit Feather M0 in Adafruit Trinket M0.
Celoten seznam sprememb je dostopen na GitHub stran projekta.
Izvor: linux.org.ru
