Я бы послушал почему статья это hello-world на Wasm? Все таки боевую JavaScript VM не каждый день под Wasm портируют, да и молчу уже сколько это открывает возможностей для дальнейшего веселья
Что это говорит о хабре? Что там публикуют статьи? Почему статья очень вводная? тут же не хипстеры emcc запускают и получают готовую страничку с тредами и гуи или я чего-то не понимаю. Да, только в 2021 году SpiderMonkey зарелизилась под wasi поэтому и статья только в этом году вышла
хорошая тема, но почему вам так нравятся треды? Их в Wasm'е нет, запускайте Web Worker, разделяйте общую память и используйте API для чтения/записи, это в общем-то все что нужно знать про треды в Wasm. Если используете emcc, то и этого знать не надо
А, сорри я прочитал по диагонали. Увидел int foo(int a, int b) { return a + b; } И мне показалось что это очередная статья о том, как скомпилировать C++ под wasi без emscripten
Там ограничения что нужно использовать код как приложение с необходимостью наличия main() функции. А у нас библиотека там переделывать надо. Но я не плюсах не пишу так только слухом. А треды должны у нас сократить работу OCR c 4 до 2 секунд и менее. И вообще многопоточность помоему ключевой момент в васме, это же про производительность ради чего собстна васм на половину и существует
Народ, а кто-нибудь знает - та часть v8 которая компилирует wasm в нативный код (вместе с оптимизациями) гвоздями прибита к v8 и джаваскрипту? Нельзя ли вытащить этот код чтобы создать легковестное решение для компиляции wasm в нативный код без огромного рантайма (кстати wasi не интересует - я готов самостоятельно прокидывать нужные мне системные вызовы ос) Может уже есть такие проекты/эксперименты?
Можешь взглянуть на https://github.com/WebAssembly/wasm-c-api Там не только v8 весь тянеться а еще и патчиться сборка что бы предоставить методы находящиеся в include/wasm-v8-lowlevel.hh
жаль, тогда может можно специальными флагами сказать v8 чтобы скомплировал wasm сразу с оптимизациями (турбофан) но не запускал а сделал дамп машинного кода в файл? Чтобы дальше уже можно было поверх этого решения построить пайплайн для компиляции wasm-а в нативный код (с пробросом системных вызовов). Может кто-то уже занимался такими экспериментами?
Я планирую написать базу данных которая будет работать и на сервере и на клиенте в браузере (и будет автоматически синхронизироваться с серверной бд) и мне не хотелось бы потом разбираться почему код работает с разной производительностью (разные движки с разными отпимизациямии которые генерируют нативный код) поэтому я хочу использовать именно v8/турбофан на сервере а не другой wasm-рантайм чтобы не задумываться о различиях когда дело дойдет до производителньости/оптимизаций