Tinygo, компилятор Go на основе LLVM

Тиниго

TinyGo: компилятор Go для небольших мест

Если вы работаете с микроконтроллерами и любите Go, Tinygo может быть для вас, с тех пор разработан компилятор Go pДля областей, требующих компактного представления результирующего кода и низкого потребления ресурсов, таких как микроконтроллеры встроенных систем и WebAssembly.

TinyGo — это компилятор, который стремится вывести сборку Go на различные целевые платформы. который реализован с помощью LLVM, а библиотеки, используемые в основном наборе инструментов проекта Go, используются для поддержки языка.



На сайте Tinygo описано, что:



Вы можете компилировать и запускать программы TinyGo на более чем 94 различных платах микроконтроллеров, включая BBC micro:bit и Arduino Uno.

TinyGo также может создавать очень компактный код WebAssembly (WASM). Вы можете создавать программы для веб-браузеров, а также для серверов и пограничных вычислительных сред, которые поддерживают семейство интерфейсов WebAssembly System Interface (WASI).

Причиной создания проекта TinyGO стало желание использовать язык Go, распространенный в компактных устройствах.— Разработчики рассудили, что если есть версия Python для микроконтроллеров, то почему бы не создать аналогичную для языка Go?

В ТайниГо, скомпилированную программу можно запускать непосредственно на микроконтроллерах, lили что это позволяет использовать Go в качестве языка для написания скриптов автоматизации. В настоящее время TinyGo поддерживает 94 модели микроконтроллеров., включая различные платы, такие как Raspberry Pi Pico, Nordic, SiFive и другие.



TinyGo предоставляет специальные драйверы для взаимодействия с подключенными внешними устройствами и датчиками, а также для поддержки таких интерфейсов, как I2C, GPIO и SPI. Программы также могут быть скомпилированы в формате WebAssembly (wasm/wasi) для запуска в браузере и в виде двоичных файлов Linux.

Ключевые задачи проекта:

  • Возможность использовать подмножество знакомого языка Go на компактных устройствах. Go был выбран вместо Rust, потому что его легче освоить, он обеспечивает независимую от потоков поддержку распараллеливания на основе подпрограмм и предлагает обширную стандартную библиотеку.
  • Генерация очень компактных исполняемых файлов.
  • Поддержка наиболее распространенных моделей плат микроконтроллеров.
  • Возможность использовать для Интернета и создавать автономные приложения WebAssembly с помощью WASI (WebAssembly
  • Системный интерфейс) для работы с файлами, сокетами и другими функциями, предоставляемыми операционной системой.
  • Поддержка CGo с минимальными накладными расходами при вызове функций языка C.
  • Совместимость с большинством стандартных пакетов и возможность компилировать общий существующий код без его изменения.
  • В отличие от аналогичного устаревшего компилятора emgo, Tinygo сохраняет исходную модель управления памятью Go через сборщик мусора и использует LLVM вместо компиляции в представление C для создания эффективного машинного кода.


Стоит отметить, что Tinygo недавно получил новую версию, а именно 0.28 и в этой новой версии выделяется тем, что значительно улучшена поддержка отражения и предлагается собственная реализация библиотеки отражения, что позволило добиться совместимости со многими стандартными библиотеками. пакеты, с которыми раньше были проблемы.

Кроме того, в новой версии добавлена ​​поддержка директивы «//go:wasmimport» для импорта функций из WebAssembly, а также поддержка новых карт, таких как значки Gopher.



В конце концов Если вам интересно узнать об этом больше, вы можете проверить детали в по следующей ссылке.

Как установить Tinygo на Linux?

Для тех, кто интересует возможность установки Tinygo, на Debian, Raspbian, Ubuntu и производных. Они должны открыть терминал, и в нем мы собираемся выполнить следующую команду:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.28.1/tinygo_0.28.1_amd64.deb sudo dpkg -i tinygo_0.28.1_amd64.deb

Для частного случая систем для устройств ARM (Версии Raspbian и Ubuntu)

Мы собираемся набрать следующее:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.28.1/tinygo_0.28.1_arm64.deb sudo dpkg -i tinygo_0.28.1_arm64.deb

В случае тех, кто является пользователем Arch Linux и его производных, они должны выполнить следующую команду:

sudo pacman -S tinygo

Теперь для пользователей Fedora:

sudo dnf install tinygo

После того, как вы завершили установку, они должны убедиться, что путь крошечного го находится в их ПУТЬ.

экспорт PATH=$PATH:/usr/local/tinygo/bin

Наконец-то для проверить установку мы собираемся ввести следующую команду:

версия тиниго

И он должен бросить нам что-то подобное

тиниго версия 0.28.1 линукс/амд64

Чтобы узнать больше об этом, вы можете проконсультироваться по следующей ссылке. 




2023-06-13T10:27:20
приложений