Tinygo a Go keele kompilaator, mis põhineb LLVM-il

tinyGO See on projekt milles töötatakse välja "Go" keelekompilaator piirkondadest, mis nõuavad saadud koodi kompaktset esitamist ja ressursside väikest tarbimistnagu mikrokontrollerid ja kompaktne ühe protsessoriga süsteem. Koodi levitatakse BSD litsentsi alusel.

Ehitamine mitme sihtplatvormi jaoks Seda rakendatakse LLVM-i abil ja keele toetamiseks kasutatakse raamatukogusid, mida kasutavad peamiselt Go-projekti tööriistad. Koostatud programmi saab käivitada otse mikrokontrollerites, mis võimaldab teil Go-d kasutada automatiseerimisskriptide kirjutamiseks.

Tinygo kohta

TinyGO projekti loomise põhjuseks oli soov kasutada kompaktsetes seadmetes levinud Go keelt- Arendajad põhjendasid, et kui mikrokontrollerite jaoks on olemas Pythoni versioon, siis miks mitte luua Go-i jaoks sarnane versioon?

Rooste asemel valitakse Go, kuna seda on lihtsam õppida pakub lainepõhist tuge niidist sõltumatule toele ja pakub ulatuslikku standardset teeki ("patareid komplektis").

Praegusel kujul Toetatakse 15 mikrokontrolleri mudelit, sealhulgas erinevad Adafruit, Arduino, BBC micro, bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary ja Phytec tahvlid.

Programme saab luua ka veebiversioonivormingus brauseris töötamiseks ja Linuxi käivitatavate failidena.

ESP8266 / ESP32 kontrollerid pole veel toetatud, kuid väljatöötamisel on projekt XLENSA kiibi LLVM-is lisamiseks, mis on endiselt ebastabiilne ja pole TinyGo integreerimiseks valmis.

Projekti põhieesmärgid:

  • Väga kompaktsete käivitatavate failide genereerimine
  • Toetus kõige tavalisematele mikrokontrollerplaatide mudelitele
  • Veebi jaoks kasutamise võimalus
  • C-funktsioonide kutsumisel minimaalse üldkuluga CGo tugi
  • Toetus enamusele standardsetele pakettidele ja võimalus kompileerida olemasolevat tüüpilist koodi seda muutmata.

Mitmetuumaliste süsteemide tugi ei ole üks peamisi eesmärke: suure hulga korutiinide tõhus väljaandmine (kohtuekspertiisi väljaandmist ennast täielikult toetatakse), saavutage gc-viite kompilaatori jõudlustase (optimeerimine, mis on viidud LLVM-ile) ja mõnes rakenduses võib Tinygo olla kiirem kui gc) ja täielik ühilduvus kõigi Go rakendustega.

Peamine erinevus emgo kompilaatori ees on katse salvestada Go algne mäluhalduse mudel prügikollektori abil ja kasutada LLVM-i efektiivse koodi genereerimiseks, selle asemel, et see kompileerida C-esituseks.

Tinygo pakub ka uut käitamisraamatukogu, mis rakendab kompaktsete süsteemide jaoks optimeeritud ajakava., mälujaotussüsteem ja stringikontrollerid. Uue käituse põhjal loodi mõned paketid uuesti, näiteks sünkroonimine ja peegeldamine.

Teave Tinygo versiooni 0.7 kohta

Praegu on Tinygo versioonis 0.7 ja selles peamistest muudatustest, mida võib mainida on rakendatud käsk "tinygo test", mis pakub prügivedu enamiku sihtplaatide jaoks (ARM Cortex-M baasil) ja WebAssembly, mis Toetab HiFive1 rev B, mis põhineb RISC-V arhitektuuril ja Arduino nano33 plaadil, See parandab keelte ühilduvust (bittiväljade tugi gettereid ja settereid kasutades, anonüümsete struktuuride tugi).

Kuidas installida Tinygo Ubuntu ja derivaadid?

Neile, kes on huvitatud võimalusest installida Tinygo, Debianile, Raspbianile, Ubuntu ja derivaatidele. Nad peavad avama terminali ja selles täidame järgmise käsu:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.7.0/tinygo_0.7.0_amd64.deb

sudo dpkg -i tinygo_0.7.0_amd64.deb

ARM-seadmete süsteemide erijuhtumiks (Raspbian ja Ubuntu versioonid)

Me kirjutame järgmise:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.7.0/tinygo_0.7.0_armhf.deb

sudo dpkg -i tinygo_0.7.0_armhf.deb

Kui olete installimise lõpetanud, nad peaksid veenduma, et tinygo tee on nende TEEL.

export PATH=$PATH:/usr/local/tinygo/bin

Lõpuks installimise kontrollimiseks sisestame järgmise käsu:

tinygo versión

Ja ta peaks meile midagi sellist viskama

tinygo version 0.7.0 linux/amd64

Selle kohta lisateabe saamiseks võite pöörduda järgmine link. 


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.