Size: a a a

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

2020 December 09

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
Твит реально не понятный.
источник

SR

Sergey Rubanov in WebAssembly — русскоговорящее сообщество
понятный) в первом же комменте объяснение (в канале)
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
Sergey Rubanov
понятный) в первом же комменте объяснение (в канале)
Первый комент же твой)
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Кто знает что такое fixed point все понятно)
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
MaxGraey
Кто знает что такое fixed point все понятно)
А что такое? Я только с точки зрения функций знаю и еще fixed point arithmetic. Это термин копиляторов?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Pavel 🍣
А что такое? Я только с точки зрения функций знаю и еще fixed point arithmetic. Это термин копиляторов?
А про комбинатор неподвижной точки? Y-комбинатор? Как сделать рекурсию не ссылая на эту самую функцию?
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
MaxGraey
А про комбинатор неподвижной точки? Y-комбинатор? Как сделать рекурсию не ссылая на эту самую функцию?
Выходит то же самое.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Мат определение так же подходит
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
В следующем твите AS будет бутстрапиться с brainfuck
источник

DB

Dmitry Bezhetskov in WebAssembly — русскоговорящее сообщество
@maxgraey просто интересно, а есть где-нибудь сравнения Binarien vs LLVM? хватает ли оптимизаций в Binarien?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Dmitry Bezhetskov
@maxgraey просто интересно, а есть где-нибудь сравнения Binarien vs LLVM? хватает ли оптимизаций в Binarien?
а с какой целью интересуетесь?)
источник

DB

Dmitry Bezhetskov in WebAssembly — русскоговорящее сообщество
MaxGraey
а с какой целью интересуетесь?)
да вот думаю чего-бы такого в браузер перетащить, что-нибудь из тяжелых вычислений на c++. Я могу на AS написать и это будет приятно или могу скомпилировать из c++ и там возможно будет побыстрее, интересно насколько AS производимый код быстрый?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Dmitry Bezhetskov
да вот думаю чего-бы такого в браузер перетащить, что-нибудь из тяжелых вычислений на c++. Я могу на AS написать и это будет приятно или могу скомпилировать из c++ и там возможно будет побыстрее, интересно насколько AS производимый код быстрый?
Ну обычно не уступает C++. Вот например n-body (в сравнении с Rust/LLVM)
https://github.com/AssemblyScript/examples/tree/master/n-body#benchmark

Вот еще пример где сравнивается emscripten, clang и AS:
https://jtiscione.github.io/webassembly-wave/index.html

Советую поставить passes на 2 или 3
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Но все очень зависит от того как использовать AS. Если использовать unchecked для доступа к элементам массивов (когда все уже отлажено) и стараться использовать StaticArray, то разница с C++ особо не должна быть большой. Но если писать все в JS стиле например:
let a: i32 = 123;
let b: i32 = -3;
let divAandB = Math.abs(Math.floor(a as f64 / b as f64)) as i32

вместо:
le
t a: i32 = 123;
let b: i32 = -3;
let divAandB = abs(a / b);
К
ак я часто встречал, то результат может быть не столь приятным)
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Иными стовами, если писать на AS ближе к C/C++ парадигме скорость будет близка к ним, если к JS парадигме то соответственно к последней)
источник

DB

Dmitry Bezhetskov in WebAssembly — русскоговорящее сообщество
MaxGraey
Ну обычно не уступает C++. Вот например n-body (в сравнении с Rust/LLVM)
https://github.com/AssemblyScript/examples/tree/master/n-body#benchmark

Вот еще пример где сравнивается emscripten, clang и AS:
https://jtiscione.github.io/webassembly-wave/index.html

Советую поставить passes на 2 или 3
ага, спасибо
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Dmitry Bezhetskov
@maxgraey просто интересно, а есть где-нибудь сравнения Binarien vs LLVM? хватает ли оптимизаций в Binarien?
В дискуссии о произвольных переходах в программе упоминают relooper, который в binaryen есть, а в llvm - нет. Вне языка Go (где это используется для повседневных вещей) это можно попробовать проиллюстрировать программой с нетривиальным использованием goto, что далеко не самый распространённый стиль.
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Сама дискуссия (берегите мозг, уже 4 года идёт 😁): https://github.com/WebAssembly/design/issues/796
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Да Go там вообще кровавыми слезами умывается:
https://github.com/WebAssembly/design/issues/796#issuecomment-739257613

Там кто то решил предложить переименовать WebAssembly в WebEmscripten, так как только Binaryen с его релупером может более не менее адекватно эмулировать non-reducible CFG
источник