The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск Tinygo 0.34, компилятора языка Go на базе LLVM

27.10.2024 10:52

Опубликован выпуск проекта Tinygo 0.34, развивающего компилятор языка Go для маломощных систем, таких как микроконтроллеры и встраиваемые устройства, которым необходима генерация очень компактных исполняемых файлов и низкое потребление ресурсов. Компиляция для поддерживаемых целевых платформ реализована в tinygo при помощи LLVM, а библиотеки функций заимствованы из основного инструментария проекта Go. Код распространяется под лицензией BSD.

Скомпилированная программа напрямую может запускаться на микроконтроллерах, что позволяет применять подмножество языка Go для написания сценариев автоматизации. В текущем виде поддерживается более ста моделей микроконтроллеров, включая различные платы Adafruit, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary и Phytec. Для взаимодействия с датчиками и подключёнными внешними устройствами, а также для поддержки интерфейсов, таких как I2C, GPIO и SPI, предоставляются специальные драйверы.

В отличие от похожего компилятора emgo, не обновлявшегося последние три года, в tinygo сохранена оригинальная модель управления памятью Go с использованием сборщика мусора и вместо компиляции в представление на языке Си, задействован LLVM для генерации эффективного машинного кода. В программах может без изменений использоваться уже существующий типовой код на языке Go, а также большая часть стандартных пакетов. Помимо генерации машинного кода, в tinygo доступна поддержка генерации WebAssembly с возможностью создания обособленных WebAssembly-приложений, используя интерфейс WASI (WebAssembly System Interface).

В новой версии реализована поддержка архитектуры MIPS с порядком следования байтов big-endian, а также добавлена поддержка плат RAKwireless RAK4631 и WaveShare ESP-C3-32S-Kit. Для экспорта WebAssembly-функций добавлена директива "//go:wasmexport". Проведена оптимизация производительности сборщика мусора. Добавлены новые опции командной строки "-C DIR" и "-ldflags='-extldflags=...'".

  1. Главная ссылка к новости (https://github.com/tinygo-org/...)
  2. OpenNews: Выпуск языка программирования Go 1.23 с поддержкой телеметрии
  3. OpenNews: Лидер проекта Go принял решение покинуть пост
  4. OpenNews: В инструментарий для языка Go добавлена возможность отслеживания уязвимостей в модулях
  5. OpenNews: Доступен PikaScript 1.8, вариант языка Python для микроконтроллеров
  6. OpenNews: Опубликован набор компиляторов LLVM 19
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62115-tinygo
Ключевые слова: tinygo, golang
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (12) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Брат Анон (ok), 11:09, 27/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Развивается проект, это радует. Особенно удовлетворён упоминанием ESP32. Джва года ждал!)
     
     
  • 2.7, Аноним (7), 11:32, 27/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Сборщик мусора на ESP32, да…
     

  • 1.2, растист (?), 11:10, 27/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Это кем надо быть чтобы писать на Go код для микроконтроллеров... Хорошо что не Java.
     
     
  • 2.4, Аноним (4), 11:16, 27/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Уж всяко лучше, чем на Питоне
     
     
  • 3.6, Вася Пупкин (?), 11:30, 27/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Развивайте чувство прекрасного
     
     
  • 4.10, Аноним (10), 11:43, 27/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Василий, не могли бы вы более подробно раскрыть свою мысль?
     
  • 3.13, laindono (ok), 12:37, 27/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не всяко, на PHP хуже. И да, оно существует.
     
  • 2.5, Аноним (5), 11:17, 27/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Можешь выкидывать свою симку и банковскую карту, под них можно писать на жабе.
     
     
  • 3.8, Аноним (7), 11:32, 27/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Жавакард это не совсем то, о чём ты подумал.
     

  • 1.3, мяв (?), 11:10, 27/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    вот это реально интересно!
    грустно, правда, что куда ни посмотри - везде код на плюсах(спасибо llvm и gcc) и все +- одно и то же. даже идей каких-нибудь не подчерпнешь.
    Зы.
    >В отличие от не обновлявшегося последние три года похожего компилятора emgo в tinygo

    куда, автор, запятую дел? все люди, пишущие новости, на изучение пунктуации в школе забили???

     
  • 1.11, Аноним (11), 11:54, 27/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что-то я не понял. Ну допустим есть у меня какой-то контроллер и этот tinyGo. Я же не могу ни одну бибилотеку для Go использовать, они ведь памяти выделают с оглядом на PC. А без бибилотек, зачем нужен тут Go?
     
     
  • 2.12, Советский инженер (ok), 12:35, 27/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    так с Сишечекой такая же фигня.
    библиотеки для десктопа и бареметала практически не пересекаются.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру