Вышла новая версия TinyGo 0.40 — компилятора Go для микроконтроллеров Обложка: Skyread

Вышла новая версия TinyGo 0.40 — компилятора Go для микроконтроллеров

Новости
Главное:

  • Выпущена версия 0.40 компилятора Tinygo для маломощных систем, поддерживающего язык Go.
  • Добавлена поддержка LLVM 20 и новых платформ, включая ESP32-S3 и Gopher ARCADE.
  • Оптимизирован сборщик мусора с приростом производительности до 10% и внедрены новые возможности компилятора.

В середине декабря 2025 года состоялся релиз версии 0.40 компилятора Tinygo — инструмента для компиляции языка Go, адаптированного для маломощных и встроенных систем, таких как микроконтроллеры. Tinygo ориентирован на создание компактных и энергоэффективных исполняемых файлов, что важно для устройств с ограниченными ресурсами.

Проект Tinygo использует LLVM для генерации машинного кода, при этом базовые библиотеки и модель управления памятью заимствованы из стандартного инструментария Go. Компилированные программы могут напрямую запускаться на широком спектре микроконтроллеров — на сегодняшний день поддерживается более 100 моделей популярных платформ: Adafruit, Arduino, BBC micro, ESP32, M5Stack, STM32, Raspberry Pi Pico и многих других.

Одним из ключевых преимуществ Tinygo является возможность повторного использования существующего кода на Go и стандартных пакетов без существенных изменений. Также Tinygo поддерживает генерацию приложений WebAssembly с использованием интерфейса WASI, расширяя сферу применения компилятора на современные веб-ориентированные среды.

В обновлённой версии 0.40 были реализованы значительные улучшения. Среди них — оптимизация сборщика мусора с повышением производительности до 10%, а также поддержка последней версии LLVM 20. Расширен список поддерживаемых устройств новыми платформами, включая ESP32-S3, Xiao ESP32-S3, Gopher ARCADE и Pico2-Ice.

Кроме того, в компилятор введены новые возможности и опции: флаг go-compatibility и переменная окружения для отключения проверки совместимости с версией языка Go, дополнительные pragma для глобальных переменных и функций, а также возможность помечать строковые параметры как доступные только для чтения. Для анализа кода и выявления циклов с использованием defer применяется алгоритм Тарьяна, обеспечивающий более надёжную детекцию связанных компонентов.

Таким образом, Tinygo 0.40 продолжает развитие в сторону повышения эффективности и расширения аппаратной поддержки, сохраняя удобство использования языка Go в сфере программирования микроконтроллеров и встроенных систем.

Tagged