TinyGo - гэта кампілятар мовы Go, прызначаны для выкарыстання ў такіх галінах, як мікракантролеры, WASM, а таксама распрацоўкі ўтыліт каманднага радка.
TinyGo выкарыстоўвае ўтыліты і бібліятэкі, напісаныя ў праекце Go, пры гэтым падаючы альтэрнатыўны метад кампіляцыі праграм на аснове напрацовак праекту LLVM.
Задачы праекта:
- Забяспечыць мінімальны памер выкананых файлаў.
- Падтрымка найбольшай колькасці мікракантролераў.
- Падтрымка WebAssembly.
- Добрая падтрымка CGo.
- Падтрымка арыгінальнага кода на Go без змен.
Прыклад выкарыстання для пераключэння LED на мікракантролеры:
асноўны пакет
імпарт (
"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)
}
}
Версія 0.6.0 утрымоўвае мноства змен. Асноўныя з іх адносяцца да паляпшэння падтрымкі CGo, js.FuncOF (Go 1.12+), а таксама двух новых адладкавых плат: Adafruit Feather M0 і Adafruit Trinket M0.
Поўны спіс змен даступны на GitHub старонцы праекта.
Крыніца: linux.org.ru