
Релиз Tinygo 0.34 — компилятора языка Go для маломощных систем
В конце октября 2024 года состоялся релиз открытого проекта Tinygo 0.34. Это компилятор языка программирования Go для маломощных систем, таких как микроконтроллеры и встраиваемые устройства, которым необходима генерация очень компактных исполняемых файлов и низкое потребление ресурсов. В проекте Tinygo компиляция для поддерживаемых целевых платформ реализована при помощи LLVM, а библиотеки функций заимствованы из основного инструментария проекта Go. Исходный код решения опубликован на GitHub под лицензией BSD.
По информации OpenNET, скомпилированная с помощью Tinygo программа напрямую может запускаться на микроконтроллерах, что позволяет применять подмножество языка Go для написания сценариев автоматизации.
В текущем виде проектом Tinygo поддерживается более ста моделей микроконтроллеров, включая различные платы Adafruit, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary и Phytec. Для взаимодействия с датчиками и подключёнными внешними устройствами, а также для поддержки интерфейсов, таких как I2C, GPIO и SPI, предоставляются специальные драйверы.
В отличие от похожего проекта компилятора Еmgo, не обновлявшегося продолжительное время, в решении Tinygo сохранена оригинальная модель управления памятью Go с использованием сборщика мусора и вместо компиляции в представление на языке C, задействован LLVM для генерации эффективного машинного кода.
В программах с использованием Tinygo может без изменений использоваться уже существующий типовой код на языке Go, а также большая часть стандартных пакетов. Помимо генерации машинного кода, в Tinygo доступна поддержка генерации WebAssembly с возможностью создания обособленных WebAssembly-приложений,
Читать на habr.com