Tinygo, un compilador Go basat en LLVM

Tinygo

TinyGo: un compilador Go per a llocs petits

Si treballes amb microcontroladors i ets amant de Go, Tinygo pot ser per a tu, ja que aquest es desenvolupa un compilador Go para àrees que requereixen una representació compacta del codi resultant i un baix consum de recursos, com ara microcontroladors de sistemes integrats i WebAssembl.

TinyGo, és un compilador que té com a objectiu portar la compilació de Go a diverses plataformes de destinació que s'implementa mitjançant LLVM, i les biblioteques utilitzades al conjunt d'eines principal del projecte Go s'utilitzen per admetre el llenguatge.

Al lloc web de Tinygo, es descriu que:

Podeu compilar i executar programes TinyGo en més de 94 plaques de microcontroladors diferents, com BBC micro:bit i Arduino Un.

TinyGo també pot produir codi WebAssembly (WASM) que és de mida molt compacte. Podeu compilar programes per a navegadors web, així com per a servidors i entorns informàtics perimetrals que admetin la família d'interfícies WebAssembly System Interface (WASI) .

El motiu per crear el projecte TinyGO va ser el desig d'utilitzar el llenguatge Go habitual en dispositius compactes: Els desenvolupadors van raonar que si hi ha una versió de Python per a microcontroladors, llavors per què no crear una similar per al llenguatge Go?

A TinyGo, el programa compilat es pot executar directament en microcontroladors, lo que fa possible fer servir Go com a llenguatge per escriure scripts d'automatització. Actualment TinyGo admeten 94 models de microcontroladors, incloses diverses plaques tals com Raspberry Pi Pico, Nordic, SiFive, entre altres.

TinyGo proporciona els controladors especials per interactuar amb sensors i dispositius externs connectats, així com per admetre interfícies com I2C, GPIO i SPI. Els programes també es poden compilar en format WebAssembly (wasm/wasi) per executar-se en un navegador i com a fitxers binaris per a Linux.

Objectius clau d'el projecte:

  • La capacitat de fer servir un subconjunt del llenguatge familiar Go en dispositius compactes. Go va ser elegit sobre Rust perquè és més fàcil d'aprendre, proporciona suport independent de subprocessos per a la paral·lelització basada en rutines i ofereix una biblioteca estàndard extensa
  • Generació de fitxers executables molt compactes.
  • Suport per als models més comuns de plaques de microcontroladors.
  • La capacitat d'usar per a la Web i crear aplicacions WebAssembly independents utilitzant la interfície WASI (WebAssembly
  • System Interface) per treballar amb fitxers, sockets i altres funcions proporcionades pel sistema operatiu.
  • Compatibilitat amb CGo amb una sobrecàrrega mínima en cridar funcions en llenguatge C.
  • Compatibilitat amb la majoria dels paquets estàndard i la capacitat de compilar codi existent genèric sense canviar-lo.
  • A diferència del compilador similar en desús emgo, Tinygo conserva el model d'administració de memòria original de Go mitjançant un recol·lector d'escombraries i utilitza LLVM en lloc de compilar en una representació C per generar codi nadiu eficient.

Cal esmentar que fa poc Tinygo va rebre una nova versió, la qual és la 0.28 i en aquesta nova versió es destaca que es millora significativament el suport de reflexió i ofereix la seva pròpia implementació de la biblioteca de reflexió, fet que va fer possible aconseguir la compatibilitat amb molts paquets de la biblioteca estàndard que tenien problemes abans.

A més, la nova versió afegeix compatibilitat amb la directiva » //go:wasmimport» per importar funcions des de WebAssembly, a més que es va afegir suport per a noves targetes com Gopher Badge.

Finalment si estàs interessat en poder conèixer més a l'respecte, pots consultar els detalls al següent enllaç.

Com instal·lar Tinygo a Linux?

Per als que estiguin interessats en poder instal·lar Tinygo, a Debian, Raspbian, Ubuntu i derivats. Han obrir una terminal i en ella anem a executar la següent comanda:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.28.1/tinygo_0.28.1_amd64.deb sudo dpkg -i tinygo_0.28.1_amd64.deb

Per al cas especial dels sistemes per a dispositius ARM (Raspbian i versions d'Ubuntu)

Anem a teclejar el següent:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.28.1/tinygo_0.28.1_arm64.deb sudo dpkg -i tinygo_0.28.1_arm64.deb

En el cas dels que són usuaris d'Arch Linux i derivats, heu d'executar la següent ordre:

sudo pacman -S tinygo

Ara per al cas dels usuaris de Fedora:

sudo dnf install tinygo

Després d'haver realitzat la instal·lació, hauran d'assegurar-se que la ruta de l'tinygo estigui en el seu PATH.

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

finalment per verificar la instal·lació anem a teclejar la següent comanda:

tinygo version

I ens ha de donar una mica així

tinygo version 0.28.1 linux/amd64

Per conèixer més sobre això pots consultar el següent enllaç. 


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.