TinyGo er en compiler til Go-sproget, der er designet til brug inden for områder som mikrokontrollere, WASM, samt udvikling af kommandolinjeværktøjer.
TinyGo bruger værktøjer og biblioteker skrevet i Go-projektet, samtidig med at det tilbyder en alternativ metode til at kompilere programmer baseret på resultaterne fra LLVM-projektet.
Projektets opgaver:
- Sikre minimal størrelse på eksekverbare filer.
- Support til det største antal mikrokontrollere.
- Support for WebAssembly.
- God support for CGo.
- Support for original Go-kode uden ændringer.
Eksempel på brug til at skifte LED på en mikrokontroller:
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 indeholder mange ændringer. De vigtigste omhandler forbedret support for CGo, js.FuncOF (Go 1.12+) samt to nye udviklingsplader: Adafruit Feather M0 og Adafruit Trinket M0.
Den fulde liste over ændringer kan findes på Projektets GitHub-side.
Kilde: linux.org.ru
