The OpenNET Project / Index page

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

Опубликован Tinygo 0.32, компилятор языка Go на базе LLVM

18.06.2024 22:37

Доступен выпуск проекта Tinygo 0.32, развивающего компилятор языка Go для областей, в которых необходимо компактное представление результирующего кода и низкое потребление ресурсов, таких как микроконтроллеры и компактные однопроцессорные системы. Компиляция для различных целевых платформ реализована при помощи 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, предоставляются специальные драйверы. Программы также могут быть собраны в формате WebAssembly (wasm/wasi) для запуска в браузере и в виде исполняемых файлов для Linux.

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

  • Возможность использовать подмножество привычного для себя языка Go на компактных устройствах. Язык Go выбран вместо Rust так как он более прост в изучении, предоставляет независимую от реализаций потоков поддержку распараллеливания на основе сопрограмм и предлагает обширную стандартную библиотеку ("батарейки входят в комплект").

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

В новой версии добавлена поддержка плат и чипов Pico W, Adafruit ESP32 Feather V2, M5 Paper, PCA10059, stm32 nucleol476rg и Pimoroni Badger2040-W. Обеспечена совместимость с LLVM 18. Реализована возможность использования пробелов в именах накопителей в формате UF2. Для платформы esp32 добавлена поддержка шины I2C. Расширена поддержка WebAssembly.

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


Обсуждение (47) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 23:35, 18/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Сборщику мусора на устройствах жёсткого реального времени самое место.
     
     
  • 2.3, голос из леса (?), 00:03, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Куча приборов где реальное время не упало никому. Для каких нибудь кондиционеров реакции вообще минутами измеряется и тащить туда переоценных и вечно делающих баги сишников просто смысла нет.
     
     
  • 3.9, Аноним (9), 02:51, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > переоценных и вечно делающих баги сишников просто смысла нет

    1. Зарплаты переоцененных сишников ниже срежднего мидла фронтендеров на JavaScript
    2. а про баги обидно - можно и вычистить и покрыть тестами

     
     
  • 4.26, Аноним (26), 09:18, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Разработчики невоенных встроенных систем в целом мало получают. Да и военных тоже, но не все.
     
     
  • 5.51, Аноним (51), 13:45, 22/06/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Разработчики невоенных встроенных систем в целом мало получают. Да и военных тоже,
    > но не все.

    Да это в РФии так. Ну РФия и стала светочем инноваций... правда, с другой стороны списка. Может заспорить с каким-нибудь Лесото.

     
     
  • 6.54, uchiya (ok), 17:50, 22/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    То ли дело другие места, истинные светочки инноваций, за которые правда приходится платить зачастую чеками как в 18 веке.
     
     
  • 7.55, Аноним (-), 07:30, 23/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > То ли дело другие места, истинные светочки инноваций, за которые правда приходится
    > платить зачастую чеками как в 18 веке.

    В более приличных странах понимают что нормальные специалисты не собираются работать за еду.

     
     
  • 8.57, Эдди (?), 10:53, 26/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    не собираются работать за еду а только за вкусную еду ... текст свёрнут, показать
     
  • 6.56, Эдди (?), 10:52, 26/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Какого списка? Кто его составлял?
     
  • 3.10, Аноним (10), 02:58, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Куча приборов где реальное время не упало никому.

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

     
  • 3.12, Аноним (-), 04:56, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Куча приборов где реальное время не упало никому. Для каких нибудь кондиционеров
    > реакции вообще минутами измеряется и тащить туда переоценных и вечно делающих
    > баги сишников просто смысла нет.

    Да как сказать? Для какой-нибудь защиты от превышения напряжения/тока, декодирования сигнала пультика и проч - реалтайм таки весьма пригодится. Не, простите, пультик не будет ждать пока у вас там GC мусор соберет, вы либо успеете собрать пакет как он летел в эфир, либо уж упс и пульт не сработает.

    А ставить что-то отдельное для более жесткого реалтайма это отдельные деньги и канитель. Все обычно вешается на 1 камень по возможности. И там GC таки будет не подарок.

     
     
  • 4.16, User (??), 07:54, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    И... И... Ииииии... Пользователь просто нажмет кнопку на пультике ещё раз - даже и не матюкнется при этом. А общая стоимость обслуживания игогошницы по сравнению с сями выйдет раз в 8-10 меньше - в хорошем для цэшников случае. Такие вот дела.
     
     
  • 5.24, 111 (??), 09:14, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Идите нафиг с таким предложением! Я хочу один раз нажать кнопку и чтобы всё работало!
     
     
  • 6.25, Аноним (26), 09:17, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А ещё ты хочешь более быструю лошадь вместо машины. Как же ты не поймёшь что производителю лучше знать чего ты хочешь.  
     
  • 6.28, User (??), 09:32, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но купишь по местной привычке - вот самое дишманское из всех решений, да?
     
     
  • 7.35, Аноним (-), 10:47, 19/06/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 8.36, User (??), 10:55, 19/06/2024 Скрыто ботом-модератором     [к модератору]
  • +2 +/
     
  • 6.42, Аноним (42), 13:40, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как Как можно гарантировать, что в пульте не села батарейка, что он не обернут ... большой текст свёрнут, показать
     
  • 4.32, Советский инженер (ok), 10:12, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Для какой-нибудь защиты от превышения напряжения/тока, декодирования сигнала пультика и проч - реалтайм

    со всякими защитами по току/напряжению почти согласен, но пультик. вот не смеши.
    сигнал приемника заводиться на апаратуру с прерыванием (или таймер или GPIO), данные в прерывание складываются в буфер и затем спокойно обрабатываюися в основном цикле.

     
     
  • 5.50, Аноним (51), 13:43, 22/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > сигнал приемника заводиться на апаратуру с прерыванием (или таймер или GPIO),
    > данные в прерывание складываются в буфер и затем спокойно обрабатываюися в основном цикле.

    Заводить сигналы контролируемые внешним миром на IRQ как бы несколько моветон ибо так вам в результате можно всю систему жесточайше положить ремотной активностью - устроив "interrupt storm" в самом брутальном и лобовом виде. При том в энных условиях это даже само может получиться, даже не злонамеренно.

    Алсо до того как это рассказывать нехило бы позырить на формат пакетов пультов. Ну вот нет в МК железок таких - и даже подпор измерений таймером все равно не отменяет нужду быстро вертеться на все это дело, на каждый бит.

     
  • 3.33, slamming brutal death metal (?), 10:14, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > вечно делающих баги сишников просто смысла нет

    Глупости пишешь.

     
  • 2.13, Аоаососооа (?), 05:52, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    GC можно выключить.
     
  • 2.29, Аноним (29), 09:34, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    https://news.ycombinator.com/item?id=27117777

     
  • 2.41, Асян (?), 13:10, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так выключи её, Go отлично работает и без, просто код должен быть написан соответсвующе.
     

  • 1.8, _kp (ok), 01:08, 19/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Если компилировать вне контроллера, то и смысла нет, уже все равно чем компилировать.

    >>Скомпилированная программа напрямую может >>запускаться на микроконтроллерах,

    Речь о обычном бинарнике.

    Судя по фразе, что для датчиков и интерфейсов
    предоставляются "специальные драйверы",
    (то есть вместо протестированных кот в мешке), предположу что это плохо уживается с остальным ПО контроллера.
    Об обработке ошибок и блокировках слышали?
    Действия например при зависании одного из устройств на i2c шине? ;)
    Тут сборщиком мусора сыт не будешь.

    >> что позволяет применять Go в качестве >>языка для написания сценариев автоматизации

    Да ну? А если в скрипте ошибка, всё ПО контроллера полетит к чертям?
    И как обновлять отдельный из "скриптов автоматизации"? ;)

    В общем, игрушка для АЭС.

     
     
  • 2.31, Аноним (26), 10:07, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так же как на сименсе.
     

  • 1.11, Аноним (-), 04:53, 19/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > Скомпилированная программа напрямую может запускаться
    > на микроконтроллерах, что позволяет применять Go

    А что они с GC там сделали? С ним видите ли реалтайм получается - "не очень". Или это так, на правах "дадим микропитону пинка не только в вебе"?! Ринать трупы - некультурно! :)

     
     
  • 2.18, User (??), 08:12, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, во-один - задач, для которых критичен именно строгий риалтайм в мире сильно не 100%. И в мире эмбеддовки - не 50% даже. Во-два если уж лезть в эту кроличью нору, быстро выясняется, что generic linux для таких задач подходит не очень-то. И не-generic тоже не предел мечтаний. Но почему-то толпу топильщиков "за rtos" мы не видим... А вот цэшников наблюдаем.
    Может дело не в инструменте и не в особенностях предметной области - а в давлении на чюйство илитарности и, одновременно, карман?
    Да не... Быть такого не может, ерунда какая-то.
     
     
  • 3.20, Аноним (26), 08:27, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ты это сейчас раст так решил захейтить? Зря ты так, тут пацаны такое не любят.
     
     
  • 4.22, tty0 (?), 08:38, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Расту место в исследовательских проектах. Проблема утечек памяти и выхода за границы сильно переоценена: зачастую, в приложении таких ситуаций бывает очень много, но они не к чему не приводят, потому сишникам и нас****.
    А если серьезно - те, кто тянут Раст и на си бы написали без косяков, а вот как учебный язык, который приведет понимание работы с памятью - это отличное решение
     
     
  • 5.27, Аноним (27), 09:23, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > если серьезно - те, кто тянут Раст и на си бы написали без косяков

    О, святая простота

     
  • 5.44, Аноним (44), 14:28, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Проблема утечек памяти и выхода за границы сильно переоценена

    Всего лишь 70% всех cve

     
  • 3.34, Аноним (34), 10:32, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >в мире эмбеддовки - не 50% даже

    В embedded таких большинство. Без точного тайминга с учётом инерции ротора и резонансов ты даже шаговым двигателем нормально не покрутишь, он будет сильно вибрировать, трещать, греться и проскальзывать, и ни о какой точности позиционирования даже речи не будет идти.

     
     
  • 4.37, User (??), 11:01, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >>в мире эмбеддовки - не 50% даже
    > В embedded таких большинство. Без точного тайминга с учётом инерции ротора и
    > резонансов ты даже шаговым двигателем нормально не покрутишь, он будет сильно
    > вибрировать, трещать, греться и проскальзывать, и ни о какой точности позиционирования
    > даже речи не будет идти.

    Ну, если вы так говорите... То всякому I(ди)OT'у в этот момент становится очень удивительно узнать, что они, оказывается, "строгий real-time" обеспечивают.

     
  • 4.38, Советский инженер (ok), 12:06, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    щас бы заниматься всякой фигней типа рулить шаговиком силами МК вместо того что б взять готовы
     
     
  • 5.39, Советский инженер (ok), 12:07, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    * что бы взять готовый драйвер у того же ТI.
     
     
  • 6.46, Аноним (46), 12:07, 20/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >у того же ТI

    А как же импортозамещение, Советский инженер? ;)

     
     
  • 7.47, Советский инженер (ok), 16:02, 20/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А как же импортозамещение

    если надо, то импортозамещай.
    я не против. или что? подсказать как это сделать?

     
  • 4.52, Аноним (-), 13:50, 22/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >>в мире эмбеддовки - не 50% даже
    > В embedded таких большинство. Без точного тайминга с учётом инерции ротора и
    > резонансов ты даже шаговым двигателем нормально не покрутишь, он будет сильно
    > вибрировать, трещать, греться и проскальзывать, и ни о какой точности позиционирования
    > даже речи не будет идти.

    Да вон какой-то тип на ESP с микропитоном - попробовал софтварно, микропитоном, "частотник" мотору изобразить. В принципе - оно даже сколько-то как-то работало даже. Но, правда, потом оказалось что если его предоставить себе надолго, иногда силовые ключи бабахают, лол.

     

  • 1.15, Аноним (15), 07:42, 19/06/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

  • 1.40, Аноним (40), 12:54, 19/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Tiny
    > LLVM

    Можно выбрать только одно.

     
     
  • 2.43, _kp (ok), 14:16, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Картошку перевели в очистки на 99%
     

  • 1.45, Bottle (?), 15:16, 19/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С одной стороны здорово, что развивают альтернативные компиляторы, а с другой стороны, это дополнительное распыление сил сообщества на разные фронты.
     
  • 1.48, Илья (??), 17:40, 20/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ждём микродотнет
     
     
  • 2.49, Советский инженер (ok), 18:29, 20/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    да пожалуйста - https://github.com/nanoframework
     
  • 2.53, Аноним (-), 13:51, 22/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ждём микродотнет

    Сто лет как есть - одно время даже пытались агрессивно впаривать. Но что-то никому не надо оказалось.

     

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



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

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