Size: a a a

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

2021 February 02

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
Nikolay
я чисто про сценарий)
Так "чисто сценарий" — с точки зрения композиции, динамики, раскрытия персонажей и всего такого прочего — великолепный. Соркин совершенно заслуженно пользуется репутацией одного из лучших сценаристов Голливуда.
Вам не нравится что-то другое: история в целом, как она преподнесена, нессответствие фактическим событиям или что-то ещё. Это субъективщина, и Вы имеете полное право на собственное мнение. Мне, может, тоже не нравится, но я тут больше ценю "техническое совершенство". 😊
источник

N

Nikolay in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
Так "чисто сценарий" — с точки зрения композиции, динамики, раскрытия персонажей и всего такого прочего — великолепный. Соркин совершенно заслуженно пользуется репутацией одного из лучших сценаристов Голливуда.
Вам не нравится что-то другое: история в целом, как она преподнесена, нессответствие фактическим событиям или что-то ещё. Это субъективщина, и Вы имеете полное право на собственное мнение. Мне, может, тоже не нравится, но я тут больше ценю "техническое совершенство". 😊
тут чисто вкусовщина)
я не рассматривал с технической/музыкальной и прочих сторон, если честно)
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
народ, все это уж очень сильный оффтоп
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
интересно насколько сложно будет написать interop для своего языка
источник

VC

Vladimir Chebotarev in WebAssembly — русскоговорящее сообщество
which?
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
What about CSE, DCE, LICM, constant propagation, inlining, loop unrolling etc.?
Посмотрим) Я не пишу дженерик язык и у меня нет цели скрыть от пользователя (меня) код языка от васм-кода (с оптимизациями по-максимуму). Я пока пишу тонкую обертку поверх wasm для движка рендера-растеризации где я еще буду замерять и подбирать нужные опкоды или разные вариации компиляции базовых контрукций языка чтобы выжать максимальную производительность

А что касается высокоуровневых оптимизаций (CSE, DCE, LICM, constant propagation, inlining, loop unrolling) то есть подозрение что либо там не так сложно как кажется (не десятки тысяч строк кода а сотня-две) либо что все эти оптимизации можно решить проще если не пытаться скрыть их от юзера (хотя в общем случае для дженерик-языка они безусловно нужны)

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

Б

Богдан in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
Вы знаете байку про Моцарта, ученика и симфонии? Так вот, я бы не советовал Вам браться за собственный продакшен-компилятор — с очень высокой вероятностью получится совсем не то, на что Вы рассчитываете. 🤷‍♀️
Прежде всего у меня цель не язык написать (который будет подходить под все возможные юзкейсы) - у меня цель написать движок рендера-растеризации ui. А свой язык я пишу лишь потому что набирать васм руками неудобно. Можно даже воспринимать это не как язык а как wasm + макросы (+ операторы с приоритетами вместо s-выражений и различные другие удобства ну и конечно же фича структур-объектов вместо ручных смещений)
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Ох ёмоё
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
Просто ещё один программист, до сих пор уверненный, что может оптимизировать лучше, чем оптимизирующий компилятор. Это проходит со временем, ничего страшного. Зато жить интересно, есть чем заняться. 😊
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Я к этому пытался подвести, ну зачем ж так прямо.
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
@xbgnx а про Forth Вы слышали? Похоже, что Вы как бы его переизобретаете.
источник

n

night111 in WebAssembly — русскоговорящее сообщество
Оптимизирующие компиляторы тоже кто-то пишет. Для конкретного частного случая - может и имеет смысл изобрести велосипед
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
С другой стороны, Forth как он есть крайне плохо ложится на Wasm, как бы удивительно это ни звучало.
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
night111
Оптимизирующие компиляторы тоже кто-то пишет. Для конкретного частного случая - может и имеет смысл изобрести велосипед
Ага, кто-то пишет. Коллективы из десятков core contributors, имеющих опыт разработки и оптимизации компиляторов в десятки лет на протяжении десятков лет. Я вот не горю желанием с ними соревноваться.
источник

DM

Dmitry M in WebAssembly — русскоговорящее сообщество
а чем конкретный случай отличается от общего?
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Да ничем. Лучше просто контрибутить в какой-нибудь компилятор который больше всего нравится.
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
Dmitry M
а чем конкретный случай отличается от общего?
Для нетрадиционных архитектур (VLIW/DSP/etc) может очень сильно отличаться. Но тут случай не настолько "конкретный".
источник

M

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

А что касается высокоуровневых оптимизаций (CSE, DCE, LICM, constant propagation, inlining, loop unrolling) то есть подозрение что либо там не так сложно как кажется (не десятки тысяч строк кода а сотня-две) либо что все эти оптимизации можно решить проще если не пытаться скрыть их от юзера (хотя в общем случае для дженерик-языка они безусловно нужны)

В общем частные кейсы под задачу решить проще чем пытаться обобщать - это могут быть либо ручные оптимизации в пользовательском коде движка рендера-растеризации либо хинты компилятору ну либо какой-то несложный алгоритм траверса ast/cfg не больше сотни строк кода который будет решать конкретную практическую задачу (а не пытаться обобщать и учитывать всевозможные кейсы)
Автор walt тоже так думал, а потом появился вот этот простой бенчмарк от одного из энтузиаста walt-а который сравнивает C++/emscripten/clang, walt и AssemblyScript:
https://jtiscione.github.io/webassembly-wave/index.html

После этого walt (https://github.com/ballercat/walt) уже не развивается. Советую на него глянуть у него такая же философия и цели как у вас
источник

A

Anon in WebAssembly — русскоговорящее сообщество
Ля какой бенч. А почему AssemblyScript быстрей чем Emscripten ? Это аще легально ?
источник

К

Константин in WebAssembly — русскоговорящее сообщество
Потому что он там много хлама генерит иногда
источник