- Выпущена версия 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 в сфере программирования микроконтроллеров и встроенных систем.
