Выпуск Tinygo 0.28, компилятора языка Go на базе LLVM
Автор
Сообщение
news_bot ®
Стаж: 6 лет 11 месяцев
Сообщений: 27286
Доступен выпуск проекта Tinygo 0.28, развивающего компилятор языка Go для областей, в которых необходимо компактное представление результирующего кода и низкое потребление ресурсов, таких как микроконтроллеры и компактные однопроцессорные системы. Компиляция для различных целевых платформ реализована при помощи LLVM, а для поддержки языка применяются библиотеки, применяемые в основном инструментарии от проекта Go. Код распространяется под лицензией BSD.
Скомпилированная программа напрямую может запускаться на микроконтроллерах, что позволяет применять Go в качестве языка для написания сценариев автоматизации. В текущем виде поддерживается 94 модели микроконтроллеров, включая различные платы Adafruit, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary и Phytec. Для взаимодействия с датчиками и подключёнными внешними устройствами, а также для поддержки интерфейсов, таких как I2C, GPIO и SPI, предоставляются специальные драйверы.
Программы также могут быть собраны в формате WebAssembly (wasm/wasi) для запуска в браузере и в виде исполняемых файлов для Linux.
Ключевые цели проекта:
- Возможность использовать подмножество привычного для себя языка Go на компактных устройствах. Язык Go выбран вместо Rust так как он более прост в изучении, предоставляет независимую от реализаций потоков поддержку распараллеливания на основе сопрограмм и предлагает обширную стандартную библиотеку ("батарейки входят в комплект").
- Генерация очень компактных исполняемых файлов.
- Поддержка наиболее распространённых моделей плат микроконтроллеров.
- Возможность применения для Web и создания обособленных WebAssembly-приложений, используя интерфейс WASI (WebAssembly System Interface) для работы с файлами, сокетами и другими функциями, предоставляемыми операционной системой.
- Поддержка CGo с минимальными накладными расходами при вызове функций на языке Си.
- Поддержка большей части стандартных пакетов и возможность компиляции типового существующего кода без его изменения.
- В отличие от находящегося в заброшенном виде похожего компилятора emgo в Tinygo сохранена оригинальная модель управления памятью Go с использованием сборщика мусора и вместо компиляции в представление на языке Си задействован LLVM для генерации эффективного машинного кода.
В новой версии значительно улучшена поддержка
отражений и предложена собственная реализация библиотеки reflect, что позволило добиться совместимости со многими пакетами из стандартной библиотеки, с которыми до этого наблюдались проблемы. Кроме того, в новой версии
добавлена поддержка директивы "//go:wasmimport имя_модуля имя_функции" для импорта функций из WebAssembly. Добавлена поддержка новых плат, например, платы Gopher Badge.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://github.com/tinygo-org/...)
- OpenNews: Выпуск языка Go 1.20
- OpenNews: Проект elk развивает компактный JavaScript-движок для микроконтроллеров
- OpenNews: Доступен PikaScript 1.8, вариант языка Python для микроконтроллеров
- OpenNews: Для языка D представлен runtime для программирования микроконтроллеров
- OpenNews: Google намерен добавить телеметрию в инструментарий для языка Go
Похожие новости:
- Google намерен добавить телеметрию в инструментарий для языка Go
- Выпуск языка Go 1.20. SourceHut отменил блокировку зеркала модулей Go
- Выпуск фреймворка для создания сетевых приложений ErgoFramework 2.2
- В инструментарий для языка Go добавлена возможность отслеживания уязвимостей в модулях
- Выпуск языка программирования Go 1.19
- Выпуск языка программирования Go 1.18
- Релиз языка программирования Go 1.17
- Уязвимость в сетевых библиотеках языков Rust и Go, позволяющая обойти проверку IP-адресов
- [Go] Golang-дайджест № 6 (1 – 30 июня 2021)
- [Информационная безопасность, PostgreSQL, Go] Избавляемся от паролей в репе с кодом с помощью HashiCorp Vault Dynamic Secrets
Теги для поиска: #_tinygo, #_golang
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 03-Фев 12:11
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 11 месяцев |
|
Доступен выпуск проекта Tinygo 0.28, развивающего компилятор языка Go для областей, в которых необходимо компактное представление результирующего кода и низкое потребление ресурсов, таких как микроконтроллеры и компактные однопроцессорные системы. Компиляция для различных целевых платформ реализована при помощи LLVM, а для поддержки языка применяются библиотеки, применяемые в основном инструментарии от проекта Go. Код распространяется под лицензией BSD. Скомпилированная программа напрямую может запускаться на микроконтроллерах, что позволяет применять Go в качестве языка для написания сценариев автоматизации. В текущем виде поддерживается 94 модели микроконтроллеров, включая различные платы Adafruit, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary и Phytec. Для взаимодействия с датчиками и подключёнными внешними устройствами, а также для поддержки интерфейсов, таких как I2C, GPIO и SPI, предоставляются специальные драйверы. Программы также могут быть собраны в формате WebAssembly (wasm/wasi) для запуска в браузере и в виде исполняемых файлов для Linux. Ключевые цели проекта:
отражений и предложена собственная реализация библиотеки reflect, что позволило добиться совместимости со многими пакетами из стандартной библиотеки, с которыми до этого наблюдались проблемы. Кроме того, в новой версии добавлена поддержка директивы "//go:wasmimport имя_модуля имя_функции" для импорта функций из WebAssembly. Добавлена поддержка новых плат, например, платы Gopher Badge. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 03-Фев 12:11
Часовой пояс: UTC + 5