Tinygo 0.40, un compilateur pour le langage Go, est disponible.

Tinygo 0.40, un compilateur pour le langage Go, est disponible. Ce compilateur est idéal pour générer des exécutables compacts destinés aux systèmes basse consommation, tels que les microcontrôleurs et les systèmes embarqués, dont les programmes doivent consommer un minimum de mémoire et de ressources de calcul. La compilation pour les plateformes cibles prises en charge est implémentée à l'aide de LLVM, et les bibliothèques de fonctions sont issues de la chaîne d'outils Go. Le code est distribué sous licence BSD.

Le programme compilé peut s'exécuter directement sur les microcontrôleurs, permettant ainsi l'utilisation d'un sous-ensemble du langage Go pour l'écriture de scripts d'automatisation. Plus de 100 modèles de microcontrôleurs sont compatibles, notamment diverses cartes d'Adafruit, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary et Phytec. Des pilotes spécifiques sont fournis pour l'interaction avec les capteurs et les périphériques externes connectés, ainsi que pour la prise en charge d'interfaces telles que I2C, GPIO et SPI.

Contrairement au compilateur emgo, qui n'a pas été mis à jour depuis quatre ans, tinygo conserve le modèle de gestion de la mémoire avec ramasse-miettes d'origine de Go et, au lieu de compiler en C, utilise LLVM pour générer directement du code machine. Les programmes peuvent utiliser du code Go existant tel quel, ainsi que la plupart des packages standards. Outre la génération de code machine, tinygo prend en charge la génération de bytecode WebAssembly, permettant la création d'applications WebAssembly autonomes via WASI (WebAssembly System Interface).

Dans la nouvelle version:

  • Des optimisations ont été apportées au ramasse-miettes, ce qui a permis d'améliorer les performances jusqu'à 10 %.
  • La prise en charge de la chaîne d'outils LLVM 20 a été implémentée.
  • Ajout de la prise en charge de la plateforme ESP32-S3, ainsi que des cartes Xiao ESP32-S3, Gopher ARCADE et Pico2-Ice.
  • Ajout de l'indicateur go-compatibility et de la variable d'environnement TINYGO_GOCOMPATIBILITY pour désactiver la vérification de compatibilité avec la version du langage Go déclarée.
  • Pour les variables et fonctions globales, la directive pragma "//go:linkname" est activée en plus de "//go:extern".
  • Le compilateur prend désormais en charge le marquage des paramètres de type chaîne comme étant en lecture seule.
  • Pour détecter les cycles avec appels différés (opérateur defer), le compilateur utilise l'algorithme de recherche de composants étroitement couplés de Tarjan.

Source: opennet.ru

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster