Size: a a a

WebAssembly — русскоговорящее сообщество

2021 February 02

N

Nikolay in WebAssembly — русскоговорящее сообщество
Богдан
Народ, а накидайте пожалуйста ссылок на репозитории мини-языков (и возможно на статьи/книги/курсы если есть) которые компилируются в wasm и компилятор умеет сам себя компилировать (то есть написан на самом языке) и занимает не больше 1-3к строк (вместе с парсером и сериализацией в васм-бинарник). Заранее благодарю
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Чет я там bootstrap не вижу.
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Но всё равно впечатляюще.
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Anon
Чет я там bootstrap не вижу.
там написано self-hosted, плюс есть демка - https://pierrerossouw.github.io/wats/
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Вот бы еще отсортировать по количеству строк кода. Проблема большинства языков которые компилируются в wasm в том что их компилятор занимает десятки если не сотни тысяч строк кода и когда нужно затюнить язык под свои требования то в таком количестве кода практически невозможно разобраться.

Я вот сейчас тоже пишу свой мини-язык поверх wasm и из-за требований максимальной производительности (так как дальше я буду писать на нем движок для рендера-растеризации ui/вектора/текста в массив пикселей) мне в первую очередь мне нужна гибкость и возможность контролировать в какие васм-инструкции будет компилироваться код
источник

DM

Dmitry M in WebAssembly — русскоговорящее сообщество
С++ же?
источник

N

Nikolay in WebAssembly — русскоговорящее сообщество
Богдан
Вот бы еще отсортировать по количеству строк кода. Проблема большинства языков которые компилируются в wasm в том что их компилятор занимает десятки если не сотни тысяч строк кода и когда нужно затюнить язык под свои требования то в таком количестве кода практически невозможно разобраться.

Я вот сейчас тоже пишу свой мини-язык поверх wasm и из-за требований максимальной производительности (так как дальше я буду писать на нем движок для рендера-растеризации ui/вектора/текста в массив пикселей) мне в первую очередь мне нужна гибкость и возможность контролировать в какие васм-инструкции будет компилироваться код
я писал свой, не дописал, нет времени закончить, я думаю свой язык влезет в 2-3к строк, плюс библиотека к нему
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Какое-то мученичество, дед на перфокартах терпел и нам велел. Мне не понять походу. Люблю когда кто-то всё за меня пережёвывет, сплёвывает и в удобную обертку кладет.
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Но трогать последние фичи из пропозалов чувствую прямо удобно с таким раскладом.
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Но есть же тот же .wat
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Dmitry M
С++ же?
Сколько строк кода занимает парсер и компилятор с++? Да что там компилятор - одна только спека занимает больше тысячи страниц. Точно не вариант когда нужно затюнить язык/компилятор под свои нужны. То же самое касается rust и assemblyscript
источник

N

Nikolay in WebAssembly — русскоговорящее сообщество
Anon
Но есть же тот же .wat
я не парюсь и просто в wat транспилю это все😂
источник

DM

Dmitry M in WebAssembly — русскоговорящее сообщество
Прям так настолько не удовлетворены качеством кода компиляторов C++, Rust, AS?
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Да и тем более всё равно всё через Binaryen пропускать надо...
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Nikolay
я писал свой, не дописал, нет времени закончить, я думаю свой язык влезет в 2-3к строк, плюс библиотека к нему
Ну у меня другая ситуация - я пишу язык под нужны низкоурвневого движка для рендера-растеризации (хотя предположу что дальше буду добавлять и все остальные удобства для высокоуровневой разработки приложений). Соотвественно я могу реализовать минимально возможную абстракцию поверх васма чтобы уже можно было без мучений писать какой-то полезный код. В первую очередь это привычные операторы с приоритетами вместо s-выражений дальше объекты вместо возни со смещениями а дальше посмотрим) и я не вижу никаких причин почему реализация этого мини-языка не может уместиться в 1-2к строк кода
источник

N

Nikolay in WebAssembly — русскоговорящее сообщество
Богдан
Ну у меня другая ситуация - я пишу язык под нужны низкоурвневого движка для рендера-растеризации (хотя предположу что дальше буду добавлять и все остальные удобства для высокоуровневой разработки приложений). Соотвественно я могу реализовать минимально возможную абстракцию поверх васма чтобы уже можно было без мучений писать какой-то полезный код. В первую очередь это привычные операторы с приоритетами вместо s-выражений дальше объекты вместо возни со смещениями а дальше посмотрим) и я не вижу никаких причин почему реализация этого мини-языка не может уместиться в 1-2к строк кода
ну я так и делаю, просто более удобный формат, на котором чуть легче писать, но опять же это все субъективно
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
Богдан
Ну у меня другая ситуация - я пишу язык под нужны низкоурвневого движка для рендера-растеризации (хотя предположу что дальше буду добавлять и все остальные удобства для высокоуровневой разработки приложений). Соотвественно я могу реализовать минимально возможную абстракцию поверх васма чтобы уже можно было без мучений писать какой-то полезный код. В первую очередь это привычные операторы с приоритетами вместо s-выражений дальше объекты вместо возни со смещениями а дальше посмотрим) и я не вижу никаких причин почему реализация этого мини-языка не может уместиться в 1-2к строк кода
Вы же знаете про генераторы парсеров, да? Не говоря уже про language workbenches? 😊
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Dmitry M
Прям так настолько не удовлетворены качеством кода компиляторов C++, Rust, AS?
Не качеством а их сложностью кода компилятора. Я хочу контролировать какие оптимизации и в какие ассемблерные инструкции будет компилироваться код чтобы можно было поменять при необходимости
источник

N

Nikolay in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
Вы же знаете про генераторы парсеров, да? Не говоря уже про language workbenches? 😊
Я не знал, надо посмотреть🤪
источник

N

Nikolay in WebAssembly — русскоговорящее сообщество
Хотя сам парсер то я уже написал
источник