TinyGo é um compilador da linguagem Go, projetado para ser usado em áreas como microcontroladores, WASM e no desenvolvimento de utilitários de linha de comando.
TinyGo utiliza utilitários e bibliotecas escritas no projeto Go, ao mesmo tempo que fornece um método alternativo de compilação de programas baseado nas contribuições do projeto LLVM.
Tarefas do projeto:
- Garantir o tamanho mínimo dos arquivos executáveis.
- Suporte ao maior número possível de microcontroladores.
- Suporte ao WebAssembly.
- Bom suporte ao CGo.
- Suporte ao código original em Go sem alterações.
Exemplo de uso para alternar um LED em um microcontrolador:
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)
}
}
A versão 0.6.0 contém várias alterações. As principais estão relacionadas à melhoria do suporte ao CGo, js.FuncOF (Go 1.12+) e duas novas placas de debug: Adafruit Feather M0 e Adafruit Trinket M0.
A lista completa de alterações está disponível na página do projeto no GitHub.
Fonte: linux.org.ru
