Tinygo a Go language compilatore basato su LLVM

tinyGO È un progetto in cui viene sviluppato un compilatore di linguaggio "Go" di aree che richiedono una rappresentazione compatta del codice risultante e un basso consumo di risorsecome microcontrollori e sistema compatto a processore singolo. Il codice è distribuito sotto la licenza BSD.

Crea per più piattaforme di destinazione È implementato utilizzando LLVM e per supportare il linguaggio vengono utilizzate librerie utilizzate principalmente dagli strumenti del progetto Go. Il programma compilato può essere eseguito direttamente su microcontrollori, consentendo di utilizzare Go come linguaggio per la scrittura di script di automazione.

A proposito di Tinygo

La ragione per la creazione del progetto TinyGO era il desiderio di utilizzare il linguaggio Go comune nei dispositivi compatti- Gli sviluppatori hanno pensato che se esiste una versione di Python per microcontrollori, perché non crearne una simile per il linguaggio Go?

Go è selezionato al posto di Rust in quanto è più facile da imparare, fornisce supporto basato sull'ondulazione per il supporto indipendente dai thread e offre un'ampia libreria standard ("batterie incluse").

Nella forma attuale, Sono supportati 15 modelli di microcontrollori, tra cui varie schede Adafruit, Arduino, BBC micro, bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary e Phytec.

I programmi possono anche essere creati per essere eseguiti in un browser in formato versione web e come file eseguibili per Linux.

Non esiste ancora il supporto per i controller ESP8266 / ESP32, ma è in fase di sviluppo un progetto per aggiungere il supporto per il chip Xtensa in LLVM, che è ancora contrassegnato come instabile e non pronto per l'integrazione con TinyGo.

Obiettivi chiave del progetto:

  • Generazione di eseguibili molto compatti
  • Supporto per i modelli più comuni di schede a microcontrollore
  • Possibilità di utilizzo per il web
  • CGo supporto con un sovraccarico minimo quando si chiamano funzioni C.
  • Supporto per la maggior parte dei pacchetti standard e la possibilità di compilare il codice tipico esistente senza modificarlo.

Il supporto per sistemi multi-core non è uno degli obiettivi principali, il rilascio effettivo di un gran numero di coroutine (la versione forense stessa è completamente supportata), raggiungere il livello di prestazioni del compilatore benchmark gc (l'ottimizzazione è relegata a LLVM e in alcune applicazioni Tinygo può essere più veloce di gc) e piena compatibilità con tutte le applicazioni in Go.

La differenza principale rispetto al compilatore emgo è il tentativo di salvare il modello di gestione della memoria originale di Go utilizzando il garbage collector e utilizzare LLVM per generare codice efficiente invece di compilarlo in una rappresentazione C.

Tinygo offre anche una nuova libreria runtime che implementa uno scheduler ottimizzato per sistemi compatti., un sistema di allocazione della memoria e controller di stringa. Sulla base del nuovo runtime, alcuni pacchetti sono stati ricreati, come la sincronizzazione e il mirroring.

Informazioni sulla versione 0.7 di Tinygo

Attualmente Tinygo è nella sua versione 0.7 e di questa versione le principali modifiche che possono essere menzionate c'è l'implementazione del comando "tinygo test", che fornisce il supporto per la garbage collection per la maggior parte delle schede di destinazione (basate su ARM Cortex-M) e WebAssembly, che Supporta HiFive1 rev B basato su architettura RISC-V e scheda Arduino nano33, Migliora la compatibilità del linguaggio (supporto per campi di bit che utilizzano getter e setter, supporto per strutture anonime).

Come installare Tinygo su Ubuntu e derivati?

Per coloro che sono interessati a poter installare Tinygo, su Debian, Raspbian, Ubuntu e derivati. Dovrebbero aprire un terminale e in esso eseguiremo il seguente comando:

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

Per il caso speciale di sistemi per dispositivi ARM (Versioni Raspbian e Ubuntu)

Stiamo per digitare quanto segue:

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

Dopo aver completato l'installazione, dovrebbero assicurarsi che il percorso del tinygo sia nel loro PERCORSO.

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

Infine, per verificare l'installazione, digiteremo il seguente comando:

tinygo versión

E deve lanciarci qualcosa del genere

tinygo version 0.7.0 linux/amd64

Per saperne di più puoi consultare il seguente collegamento. 


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.