Size: a a a

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

2020 November 26

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Богдан
А что это за threaded code подход интерпретаторов? Я не в курсе. Просто как только думаешь про компиляцию в wasm сразу появляется диллема - использовать встроенную в wasm фичу функций и их вызова или скомпилировать в одну единственную функцию и передавать управление через goto или из-за его отсутствия через loop+switch. Кстати а какой вариант использует AssemblyScript?
AS полностью AOT. Там нет никаких измышлизмов с goto)
источник

Б

Богдан in WebAssembly — русскоговорящее сообщество
MaxGraey
Там нету computed goto. Но это можно эмулировать с задействованием хоста. Очень недешего эмулировать, поэтому если важна производительность то не стоит
Comluted goto это прыжок на адрес нужной инструкции в x64? А насколько тогда будет медленнее? Компиляторы wasm-a не умеют распознавать этот loop+switch паттерн для передачи управления чтобы скомпилировать в простые джампы?
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
Богдан
Ну да, а как иначе?
Жонглировать одновременно и растущим стеком, и растущей кучей в линейной памяти весьма геморройно. Просто учитывайте при выборе решения.
источник
2020 November 27

SR

Sergey Rubanov in WebAssembly — русскоговорящее сообщество
Сайт Internet Archive добавляет поддержку Flash через WebAssemblyСайт Internet Archive добавляет поддержку Flash через WebAssembly

Не смотря на то, что поддержка Flash заканчивается 31 декабря 2020 года, сайт Internet Archive будет поддерживать эту технологию и после этой даты. Поддержка сохраница за счёт Ruffle — эмулятора Flash плеера с помощью #WebAssembly.
источник
2020 November 30

M

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

ee

elias eliatto in WebAssembly — русскоговорящее сообщество
Привет! Пытаюсь в Windows отладить wasm в Chrome. Исходники в разных каталогах, map-файл содержит относительные пути. Для отладки используется HTTPServer (Python 3.x). Как настроить этот стек, чтобы в браузере отражались исходники?
источник

К

Константин in WebAssembly — русскоговорящее сообщество
elias eliatto
Привет! Пытаюсь в Windows отладить wasm в Chrome. Исходники в разных каталогах, map-файл содержит относительные пути. Для отладки используется HTTPServer (Python 3.x). Как настроить этот стек, чтобы в браузере отражались исходники?
Там будет только wat репрезентация.
Оригигальных сорцов не будет (и вроде никогд не будет)
источник

ee

elias eliatto in WebAssembly — русскоговорящее сообщество
Константин
Там будет только wat репрезентация.
Оригигальных сорцов не будет (и вроде никогд не будет)
я уже делал отладочные версии, получалось непосредственно с моей программой(но не со статич. библиотеками). Видимо, придется колдовать с символическими ссылками.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Константин
Там будет только wat репрезентация.
Оригигальных сорцов не будет (и вроде никогд не будет)
какие то очень сильные и категоричные заявления. к тому же еще и полностью неверные. Для wasm есть поддержка source maps и исходники прекрастино отображаются. Кроме того хром уже должен частино поддерживать DWARF секции. Ингвар там над этим давно работает
источник

К

Константин in WebAssembly — русскоговорящее сообщество
MaxGraey
какие то очень сильные и категоричные заявления. к тому же еще и полностью неверные. Для wasm есть поддержка source maps и исходники прекрастино отображаются. Кроме того хром уже должен частино поддерживать DWARF секции. Ингвар там над этим давно работает
Почему тогда для AS не работает?
И для раст, я тоже не смог это завести
источник

К

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

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Константин
Почему тогда для AS не работает?
И для раст, я тоже не смог это завести
для AS должно работать. Видимо ты как то неправильно отдаешь статику со стороны сервера
источник

Б

Борис in WebAssembly — русскоговорящее сообщество
Всем привет.

почему работает вот такое:
i32.load 1

хотя судя по спекам у i32.load нет возможности передать индекс памяти в качестве аргумента.
использую wasmtime
(module
 (type (;0;) (func (result i32)))
 (import "env" "memory" (memory (;0;) 1))
 (func (;0;) (type 0) (result i32)
   i32.const 1052
   i32.load 1
   i32.const 1
   i32.shr_u
   i32.const 65535
   i32.and)
 (memory (;1;) 1)
 (export "memory" (memory 0))
 (export "getU16Value" (func 0))
 (export "added_memory" (memory 1))
 (data (;0;)  (memory 1) (i32.const 1036) "\16\00\00\00\01\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00s\00o\00m\00e\00 \00s\00t\00r\00i\00n\00g\00"))
```
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
> хотя судя по спекам у i32.load нет возможности передать индекс памяти в качестве аргумента.

Это как это нету? Там как раз и передается индекс в линейной памяти и опциональные константные параметры (offset и align). Судя по всему это сокращение от

i32.const 1052
i32.load offset=1
источник

Б

Борис in WebAssembly — русскоговорящее сообщество
MaxGraey
> хотя судя по спекам у i32.load нет возможности передать индекс памяти в качестве аргумента.

Это как это нету? Там как раз и передается индекс в линейной памяти и опциональные константные параметры (offset и align). Судя по всему это сокращение от

i32.const 1052
i32.load offset=1
всё срослось после чтения документации )
источник

Б

Борис in WebAssembly — русскоговорящее сообщество
есть понимание, когда multi memory может появиться в assemblyscript?
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
Борис
есть понимание, когда multi memory может появиться в assemblyscript?
вопрос поддерживаю
источник

Б

Борис in WebAssembly — русскоговорящее сообщество
я конечно пропатчил что надо черезе walrus, но это такое решение )
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Борис
есть понимание, когда multi memory может появиться в assemblyscript?
Поддержка появиться ровно тогда, когда она появиться в Binaryen. Все просто) Со стороны фронтенда, там не так много изменений нужно сделать
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Там судя по спеке нужно добавить опциональный memidx для load и store, memory.size и memory.grow. Но я так же думаю что и для memory.init, memory.copy, memory.fill так же нужно, хотя в спеке об этом ничего не сказано, хм
источник