URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 136213
[ Назад ]

Исходное сообщение
"Выпуск Tinygo 0.36, компилятора для языка Go"

Отправлено opennews , 07-Мрт-25 10:35 
Опубликован выпуск проекта Tinygo 0.36, развивающего компилятор для языка Go. Компилятор подходит для генерации компактных исполняемых файлов для маломощных систем, таких как микроконтроллеры  и встраиваемые устройства, программы для которых должны минимально потреблять  память и вычислительные ресурсы.  Компиляция для поддерживаемых целевых платформ реализована при помощи LLVM, а  библиотеки функций заимствованы из основного инструментария проекта Go.  Код распространяется под лицензией BSD...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=62844


Содержание

Сообщения в этом обсуждении
"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено u235 , 07-Мрт-25 10:35 
Ого, даже для Atmega328 можно скомпилять. Надо попробовать.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Смузихлеб забывший пароль , 07-Мрт-25 10:43 
скомпилять-то можно, но вот сколько кода туда влезет

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 12:18 
При гошной статической линковке всего, пожалуй, собственно полезного кода и не влезет ни строчки в эти 20 кбайт.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 12:23 
за то немножко телеметрии влезет, все вперед!

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 22:31 
Я конечно не игого-люб, но телеметрия вроде пихается в компилятор от гугла, в сам бинарь вроде ничего (говорят) не пихают.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 16-Мрт-25 22:40 
А, ты ведись...

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 08-Мрт-25 00:54 
А в сишочке-то для микроконтроллеров динамически линуют, да. Особая сишная магия.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено зомбированный , 07-Мрт-25 17:39 
Под Atmega328 лучше AVR Studio 4.19 ничего не существует

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено u235 , 07-Мрт-25 18:22 
> Под Atmega328 лучше AVR Studio 4.19 ничего не существует

Это точно! И симулятор там зачётный!


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 21:46 
он только под винду?

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Смузихлеб забывший пароль , 08-Мрт-25 18:02 
Была же ещё гораздо более продвинутая Atmel Studio( ныне Микрочип студио ) - по сути, частично переделанная VS, года, эдак, 2015-го

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено зомбированный , 08-Мрт-25 21:47 
так она более тяжелая - а  эта просто идеально

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Facemaker , 07-Мрт-25 10:55 
Еретический проект. Одна из (немногих) сильных сторон Go — то, что его создатели отринули зависимость от LLVM и развивают собственный переносимый ассемблер.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 11:14 
А чем плох LLVM?

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Facemaker , 07-Мрт-25 11:23 
>А чем плох LLVM?

Огромный переусложнённый проект на C++. Подозрительно!


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 12:21 
А главное, что у него сомнительные кураторы.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено anonymous , 07-Мрт-25 14:58 
А у Go прямо вот несомнительные совсем.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 18:13 
Я этого не утверждал.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Bottle , 07-Мрт-25 13:52 
Тем, что его написал не Facemaker.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено laindono , 07-Мрт-25 17:30 
LLVM кушает много памяти и много проца. Но при этом генерирует более быстрый код.

Golang получает несколько более медленный код, но при этом компиляция происходит быстрее.

За счёт того, что golang достаточно простой язык сам по себе, он не очень много может дать дополнительной информации для оптимизатора. Соответственно выигрыш от LLVM для golang будет меньше, чем для Rust или C++.


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено funny.falcon , 08-Мрт-25 09:42 
Кроме скорости компиляции, компилятор Go может размечать стеки и регистры для точного сборщика мусора. А у LLVM с этим проблемы.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено pavel_simple. , 07-Мрт-25 11:16 
> Еретический проект. Одна из (немногих) сильных сторон Go — то, что его
> создатели отринули зависимость от LLVM и развивают собственный переносимый ассемблер.

поэтому гугловой гошки никогда не будет ни на ембедовке ни на wasm'е


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Facemaker , 07-Мрт-25 11:22 
>поэтому гугловой гошки никогда не будет ни на ембедовке ни на wasm'е

Естественно. Не для этого оно.


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 11:26 
Дык есть же на wasm'е вроде
GOOS=js GOARCH=wasm go build -o main.wasm

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Facemaker , 07-Мрт-25 11:32 
>Дык есть же на wasm'е вроде

Только им никто не пользуется: кому нужен wasm со сборщиком мусора внутри.


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено pavel_simple. , 07-Мрт-25 11:42 
>>Дык есть же на wasm'е вроде
> Только им никто не пользуется: кому нужен wasm со сборщиком мусора внутри.

им никто не пользуется потому-что хер дождёшся пока оно в бравзер загрузится на гигабитной скорости с сжатием zstd/brotli


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Самый Лучший Гусь , 07-Мрт-25 12:14 
Так кому нужно те и пользуются. Вон люди и питон и джаву запускают в васме и радуются производительности пока не которые думают.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 15:28 
гусь тоже думал, да в суп попал

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Соль земли , 07-Мрт-25 12:12 
Очередной лунапарк...

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 08-Мрт-25 10:33 
> создатели отринули зависимость от LLVM и развивают собственный переносимый ассемблер.

Пока не очень получилось - переносимый асм с неотключаемым GC это полнейший фэйспалмище. Фуксики проверяли - планы по захвату мира обламываются на отличненько!



"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено YetAnotherOnanym , 07-Мрт-25 11:17 
> c использованием сборщика мусора

И пусть весь мир подождёт


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено pavel_simple. , 07-Мрт-25 11:48 
>> c использованием сборщика мусора
> И пусть весь мир подождёт

не читай, сразу на амбразуру кидайся, главное рожу пострешнее сделать

>-gc=leaking disables the garbage collector, which can sometimes have a large effect >(especially on WebAssembly). Of course, memory will never be freed so this is only >appropriate for very short-lived programs.


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено 12yoexpert , 07-Мрт-25 14:16 
ну да, на МК же все проги short-lived

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено _ , 07-Мрт-25 17:55 
В Go очень быстрый gc даже по понятиям Java - быстрый.
Но это на моих многоголовых дракон^W серверах.
На МК - да, наверное это больно... Ну дык вроде классический Go туда и не суют?

А если кто и засунул ... ну и кто злейший враг Буратины ? :)


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 18:27 
> Ну дык вроде классический Go туда и не суют?

Хех, классический... Языку "без году неделя"... ладно 15 лет, а уже успел стать классическим.


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено _ , 08-Мрт-25 19:13 
По делам их судите!(С)

Go за это время стал чуть ли не основным языком в облаках. Только полностью и беспрекословно волшебные на всю голову это оспаривают :-р
И что характерно - на нём конечно есть немного "проект XYZ но на Go"(C) - ну как же совсем без этого! :) - но всё же в основном что то новое ... в отличии отЪ :-Р

А слово "классический" я применил к Go раздаваемому отседа: https://go.dev/? да и то - только для того чтобы как то отличать его от Go раздаваемого отседа: https://tinygo.org/ ...

Раз такое нужно объяснять ... будем завидовать(С) что некоторые сюда пишут уже употребляя Ылитный пивасик(С) :-)



"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено funny.falcon , 08-Мрт-25 10:02 
В tinygo не такой же GC, как в классическом Go. Он не может быть таким же по многим причинам, одна из которых - LLVM.

Garbage collection generally works fine, but may work not as well on very small chips (AVR) and on WebAssembly. It is also a lot slower than the usual Go garbage collector.


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено _ , 08-Мрт-25 19:18 
Ну дык и я ох.. ох.. ох и удивился! вот! что его на MK пиарят! :)
Правда тут существует два НО(С):
- НО для некоторых и Raspberry 5 - MK! 8-)
- НО пистон же к примеру на MK прут! А чего бы и Go не попереть? Как по мне оба там "как седло на корове"(С) - но ведь упираются люди, ПРУТ! ... значит это кому то надо(С) :)


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 08-Мрт-25 10:36 
> В Go очень быстрый gc даже по понятиям Java - быстрый.

В мк нет такого понятия как быстро или медленно. Там есть гарантированное успевание в реалтайм. И - все остальное. И вот ГАРАНТИИ - они какие? Не, реальный мир не ждет пока там кто-то мусор собирает и проч. Ему похрен. И в мк профаченый дедлайн довольно чреватая штука.

> На МК - да, наверное это больно... Ну дык вроде классический Go
> туда и не суют?

Так вот же - сабж тоже с gc вроде. А на серверах так то - хруст игогошку теснит в хайлоаде. Вот как раз поэтому.

> А если кто и засунул ... ну и кто злейший враг Буратины? :)

Сабж!


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено _ , 08-Мрт-25 19:41 
> В мк нет такого понятия как быстро или медленно. Там есть гарантированное успевание в реалтайм. И - все остальное.

Тебя послушать так авиация - это только гиперзвуковые квази-космические стЭлсы! И - все остальное. (С) :)
А в 21 веке MK даже в рамке с фоткой твоего кота стоит - логично подумать что --> cмотря для чего! Если ты МК-хой не обмотки в актуаторах щелкаешь, а к примеру температуру на люму выводишь - тебе тоже RT нужен? Наверное вот для такого Tiny-пистоны и TinyGo и делаются...

Ну логика _наверное_ такая:
ну не тратить же целый день спеца чтоб на асме всё это сделать, вон дай пистон \ Го жуниору студенту, он за неделю напишет и даже будет работать :)
У нас 32-bit STM можно за 21 цент/штука купить (самый низ), приличный - где то 70 центов. Один день работы спеца будет сильно влиять на цену проекта :)


> Так вот же - сабж тоже с gc вроде.

НЯП - сделать Go совсем без gc ... ну скажем - соооовсем не тривиально :)

> А на серверах так то - хруст игогошку теснит в хайлоаде. Вот как раз поэтому.

В теории - да, у ржавчика есть такое приимушество...
А вот на практике... На практике - пока не встречал. :)
Они обещают много но ... ео уже я суперстар - я к примеру помню как в этот мир приходила Java :-)  --> мы в цЫрке не смеёмся (C) :-)


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 09-Мрт-25 17:14 
> В Go очень быстрый gc даже по понятиям Java - быстрый.

да на самом деле все быстрее чем JVM из коробки, пока не пропишешь 100+ аргументов:)


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 18:00 
Да мне так-то без разницы начнётся полив в парнике ровно в 7:30 или на сто миллисекунд позже. Мне надо написать по быстрому, залить герметиком и пусть там гниёт следующие лет пять. Правда, я для этой цели взял питон, но суть ясна. Я не боинг строю, я просто утром люблю и не люблю когда огурчики горчат.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 18:00 
* утром поспать люблю

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено _ , 08-Мрт-25 23:09 
Ну тогда для тебя наверное...
У них на сайте стрипнутый хеловрот ~10KB - если в твой MK влазиит ... дык и присунь ;-)

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 15:40 
Ну здесь хоть альтернативный компиль развивают. Для языка от корпов, на минуточку!
А у другого корпязычка даже такого нет. Делайте выводы.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено _ , 07-Мрт-25 18:05 
Ух дождешься - они Tinygo на Ём начнут переписывать! :-р

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено funny.falcon , 08-Мрт-25 10:04 
Если ты про Rust, то уже есть реализация в GCC.

Так же есть mrust.


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено _ , 08-Мрт-25 19:44 
В мире много чего есть, мой друг Горацио(С) Шык_с_Пир

А толку? :)


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Ддд , 07-Мрт-25 16:40 
С сетью не работает так что смысла в нем не больше бейсика

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено _ , 07-Мрт-25 18:10 
Для Ддд***ов :
1) Бейсик работает с сетю так же как (к примеру) Си или <вписать ваш любимый ЁзыгЪ>
2) Дааааалееееекоооо не на всех МК есть Ethernet или WiFi ... там иногда вообще мало что есть :)


Домохозяйки от ИТ доставляли, доставляют и будут доставлять! Я сказал! :)


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Брат Анон , 08-Мрт-25 20:12 
Т.е. на их сайт ты не заходил, по факту поддержку сети (соответственно) не видел, но осуждаешь. Ясно, понятно.

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 17:00 
> Обеспечена совместимость с новыми ветками Ubuntu

А что там в убунту накостылили, что нужно для нее отдельно делать совместимость?


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 07-Мрт-25 17:33 
Зато если им компилировать для linux, то со старта hello world сжирает 1 Гб виртуальной памяти, а если её нет, то падает. Hello world!

"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 08-Мрт-25 15:02 
> а если её нет, то падает

Ты зачем overcommit выключил?


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 08-Мрт-25 16:09 
>Ты зачем overcommit выключил?

Ограничение размера виртуальной памяти - первый шаг для обработки OOM.


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 08-Мрт-25 08:44 
> Компилятор подходит для генерации компактных исполняемых файлов для маломощных систем, таких как микроконтроллеры и встраиваемые устройства

Уже есть Nim. Для всего.


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено _ , 08-Мрт-25 23:03 
Хороший анек бро! :)

А по факту - для хоть чего бы :)
Не надо в доказательство перечислять все три васяноподелки на нём, я в курсе. У него всё было, чтобы взлететь... но не судьба. Не расстраивайся бро - вон целый D не взлетел, а уж тут то...


"Выпуск Tinygo 0.36, компилятора для языка Go"
Отправлено Аноним , 08-Мрт-25 23:52 
Основная проблема tinygo в первую очередь в отсутствии нативной поддержки многопоточности используя горутины. Это ощутимо при работе с многоядерными микроконтроллерами (как например raspberry pico).