È stata pubblicata la versione Tinygo 0.32, il compilatore del linguaggio Go basato su LLVM

È disponibile il rilascio del progetto Tinygo 0.32, un compilatore del linguaggio Go sviluppato per aree in cui è necessario un formato compatto del codice risultante e un basso consumo di risorse, come microcontrollori e sistemi a singolo processore compatti. La compilazione per diverse piattaforme di destinazione è realizzata tramite LLVM, mentre per il supporto del linguaggio vengono utilizzate le librerie principalmente provenienti dagli strumenti del progetto Go. Il codice è distribuito con licenza BSD.

Il programma compilato può essere eseguito direttamente su microcontrollori, consentendo l'utilizzo di Go come linguaggio per scrivere script di automazione. Attualmente, sono supportati oltre cento modelli di microcontrollori, incluse varie schede Adafruit, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary e Phytec. Per interagire con sensori e dispositivi esterni collegati, nonché per supportare interfacce come I2C, GPIO e SPI, sono forniti driver speciali.

I programmi possono anche essere compilati nel formato WebAssembly (wasm/wasi) per l'esecuzione nel browser e come file eseguibili per Linux.

Obiettivi principali del progetto:

  • Possibilità di utilizzare un sottoinsieme del linguaggio Go, familiare ai programmatori, su dispositivi compatti. Il linguaggio Go è stato scelto al posto di Rust poiché è più semplice da apprendere, offre un supporto indipendente dalle implementazioni per il threading basato su coroutine e fornisce un ampio standard library ('le batterie sono incluse').
  • Generazione di eseguibili molto compatti.
  • Supporto per i modelli di schede più comuni dei microcontrollori.
  • Possibilità di utilizzo per applicazioni Web e per la creazione di isolati WebAssembly, utilizzando l'interfaccia WASI (WebAssembly System Interface) per l'accesso a file, socket e altre funzioni offerte dal sistema operativo.
  • Supporto per CGo con costi minimi per le chiamate a funzioni in C.
  • Supporto per la maggior parte dei pacchetti standard e possibilità di compilazione di codice esistente senza modifiche.
  • A differenza del compilatore emgo, ora abbandonato, in Tinygo è stata mantenuta l'originale gestione della memoria di Go tramite un garbage collector e, anziché compilare in codice C, si utilizza LLVM per generare codice macchina efficiente.

Nella nuova versione è stata aggiunta la compatibilità con schede e chip Pico W, Adafruit ESP32 Feather V2, M5 Paper, PCA10059, stm32 nucleol476rg e Pimoroni Badger2040-W. È stata garantita la compatibilità con LLVM 18. Implementata la possibilità di utilizzare spazi nei nomi delle unità in formato UF2. Per la piattaforma esp32 è stato aggiunto il supporto per il bus I2C. È stato ampliato il supporto per WebAssembly.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster