TinyGo on Go keele kompilaator, mida kasutatakse sellistes valdkondades nagu mikrokontrollerid, WASM ning komandoridade utiliitide arendamine.
TinyGo kasutab Go projekti kirjutatud utiliite ja raamatukogusid, pakkudes samal ajal alternatiivset meetodit programmide kompileerimiseks, mis põhinevad LLVM projekti saavutustel.
Projekti ülesanded:
- Tagada täitmisfailide minimaalne suurus.
- Toetada võimalikult paljusid mikrokontrollerite.
- Toetada WebAssembly.
- Hea CGo tugi.
- Toetada originaalkoodi Go-s muutmata.
Näide LED-i lülitamisest mikrokontrolleril:
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)
}
}
Version 0.6.0 sisaldab mitmeid muudatusi. Peamised neist on suunatud CGo toe parandamisele, js.FuncOF (Go 1.12+) ning kahele uuele arendusplatvormile: Adafruit Feather M0 ja Adafruit Trinket M0.
Täielik muudatuste loetelu on saadaval projekti GitHubi lehelt.
Allikas: linux.org.ru
