TinyGo Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ Π½Π° Π΅Π·ΠΈΠΊ Go, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠ°ΡΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ, WASM ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄.
TinyGo ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° Go, ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° LLVM.
Π¦Π΅Π»ΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°:
- ΠΡΠΈΠ³ΡΡΠ΅ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠ° Π½Π°ΠΉ-Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° WebAssembly.
- ΠΠΎΠ±ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° CGo.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅Π½ Go ΠΊΠΎΠ΄ Π±Π΅Π· ΠΏΡΠΎΠΌΠ΅Π½ΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π·Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° LED Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ:
ΠΡΠ½ΠΎΠ²Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ
Π²Π½ΠΎΡ (
"ΠΌΠ°ΡΠΈΠ½Π°"
"Π²ΡΠ΅ΠΌΠ΅"
)
func main () {
led := ΠΌΠ°ΡΠΈΠ½Π°.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
Π·Π° {
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