Size: a a a

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

2021 July 26

DB

Dmitry Bezhetskov in WebAssembly — русскоговорящее сообщество
Я бы послушал почему статья это hello-world на Wasm? Все таки боевую JavaScript VM не каждый день под Wasm портируют, да и молчу уже сколько это открывает возможностей для дальнейшего веселья
источник

DB

Dmitry Bezhetskov in WebAssembly — русскоговорящее сообщество
Что это говорит о хабре? Что там публикуют статьи? Почему статья очень вводная? тут же не хипстеры emcc запускают и получают готовую страничку с тредами и гуи или я чего-то не понимаю. Да, только в 2021 году SpiderMonkey зарелизилась под wasi поэтому и статья только в этом году вышла
источник

DB

Dmitry Bezhetskov in WebAssembly — русскоговорящее сообщество
хорошая тема, но почему вам так нравятся треды? Их в Wasm'е нет, запускайте Web Worker, разделяйте общую память и используйте API для чтения/записи, это в общем-то все что нужно знать про треды в Wasm. Если используете emcc, то и этого знать не надо
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
А, сорри я прочитал по диагонали.
Увидел int foo(int a, int b) {
 return a + b;
}
И мне показалось что это очередная статья о том, как скомпилировать C++ под wasi без emscripten
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Если бы заголовок был более информативным возможно я бы изучил статью более детально =)
источник

A

Alexandr Borisovich in WebAssembly — русскоговорящее сообщество
Да вы сэр, специалист по испанской и финской кухне, то у вас шафран, то селедка))) (Про финскую я выдумал, я не знаю что там с кухней)
источник

A

Alexandr Borisovich in WebAssembly — русскоговорящее сообщество
Там ограничения что нужно использовать код как приложение с необходимостью наличия  main()  функции. А у нас библиотека там переделывать надо. Но я не плюсах не пишу так только слухом. А треды должны у нас сократить работу OCR c 4 до 2 секунд и менее. И вообще многопоточность помоему ключевой момент в васме, это же про производительность ради чего собстна васм на половину и существует
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
Народ, а кто-нибудь знает - та часть v8 которая компилирует wasm в нативный код (вместе с оптимизациями) гвоздями прибита к v8 и джаваскрипту? Нельзя ли вытащить этот код чтобы создать легковестное решение для компиляции wasm в нативный код без огромного рантайма (кстати wasi не интересует - я готов самостоятельно прокидывать нужные мне системные вызовы ос) Может уже есть такие проекты/эксперименты?
источник

ZB

Zalim Bashorov in WebAssembly — русскоговорящее сообщество
Кажется Thomas Lively собирался продолжить эту работу.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Прибита гвоздями. Более того очень много чего переиспользуется от JS экосистемы. Напримре планировщик инструкций и graph IR (SEA of nodes)
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Можешь взглянуть на https://github.com/WebAssembly/wasm-c-api
Там не только v8 весь тянеться а еще и патчиться сборка что бы предоставить методы находящиеся в include/wasm-v8-lowlevel.hh
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
жаль, тогда может можно специальными флагами сказать v8 чтобы скомплировал wasm сразу с оптимизациями (турбофан) но не запускал а  сделал дамп машинного кода в файл? Чтобы дальше уже можно было поверх этого решения построить пайплайн для компиляции wasm-а в нативный код (с пробросом системных вызовов). Может кто-то уже занимался такими экспериментами?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Если тебе нужно скомпилировать wasm в натив то для этого есть wssm2c, InNative, WAVM (умеет дампить в obj файл)
источник

AC

Alexander Chichigin in WebAssembly — русскоговорящее сообщество
Lucet ещё, нет?
источник

Б

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

DM

Dmitry M in WebAssembly — русскоговорящее сообщество
так у тебя же ещё есть safari, уже невыполнимо
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Так такая уже есть DuckDB:
https://duckdb.org/demo/

Работает везде в том числе и в браузере
источник

AC

Alexander Chichigin in WebAssembly — русскоговорящее сообщество
А если я буду открывать приложение в Firefox, который используес SpiderMonkey, а не V8? А как будут пользоваться приложением бедолаги с iPad? 🤔
источник

AC

Alexander Chichigin in WebAssembly — русскоговорящее сообщество
Можно ещё CouchDB + PouchDB использовать.
источник

AC

Alexander Chichigin in WebAssembly — русскоговорящее сообщество
Ну и потом, на сервере-то вообще какая проблема тащить V8 целиком?
источник