Size: a a a

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

2020 December 14

SR

Sergey Rubanov in WebAssembly — русскоговорящее сообщество
в смысле надо не собирать информацию о нем, которой вроде и нет, а просто делать
источник
2020 December 15

НС

Никита Сковорода... in WebAssembly — русскоговорящее сообщество
Никита Сковорода
https://chromium-wasm-hang.herokuapp.com/ — поднял на хероку
теперь надо проверить, что оно действительно хорошо воспроизводится и накатать багрепорт в хромиум
источник

MP

Michael Pavlovsky in WebAssembly — русскоговорящее сообщество
Кто знает есть ли что-то подобное wasm-bindgen для хостов отличных от js?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Michael Pavlovsky
Кто знает есть ли что-то подобное wasm-bindgen для хостов отличных от js?
В том то вся штука, что у других хостов  отличных от WebAssembly Web API совершенно нестандартное API. У wasmer свое, у wasmtime свое, у wasm3 - тоже свое.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Но я помню авторы wasm-bindgen говорили, что они спроектировали его так, что можно его кастомизировать и для других хотов. Но это лишь в теории. И я не представляю как это должно выглядеть если честно. Для JS понятно, что можно генерить - ведь js файл прилетает по сети и можно специализировать интероп под конкретную сборку, но в случае с wasmer или wasmtime это уже не получиться сделать. Для них специализированная кодогенераци не подойдет, если только вы не хотите что бы хост выполнял только этот wasm модуль и никакой другой)
источник

MP

Michael Pavlovsky in WebAssembly — русскоговорящее сообщество
Спасибо. Кстати, как обстоят дела с reference types в assembly script?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Michael Pavlovsky
Спасибо. Кстати, как обстоят дела с reference types в assembly script?
так же как и в binaryen) На самом деле они уже давно реализованы
https://github.com/AssemblyScript/assemblyscript/blob/master/tests/compiler/features/reference-types.ts

все ждут пока появятся в safari и wasmer
источник

DB

Dmitry Bezhetskov in WebAssembly — русскоговорящее сообщество
Sergey Rubanov
@dbezheckov привет, а планируется также memory.copy и memory.fill довезти в рамках работы на референс тайпс? если что могу их попробовать на себя взять
Привет, да, надеюсь до конца этой недели все реф типы в jsc будут готовы
источник

YJ

Yo Jla in WebAssembly — русскоговорящее сообщество
Если вдруг есть желающие помочь в вопросе (мопед не мой).

https://www.reddit.com/r/rust/comments/kd3h1z/could_cranelift_in_theory_support_nearinstant_web/
источник
2020 December 16

f

folex in WebAssembly — русскоговорящее сообщество
Подскажите, а в nodejs нормально работает WebAssembly?

У нас интерпретатор языка скомпилирован в .wasm, и в браузере запускается замечательно, а при попытке запуска на тестах в nodejs вылезают всякие странные ошибки, и не получается записать значения в память васм рантайма.

Например есть совершенно безобидно выглядящая функция в расте

#[cfg(target_arch = "wasm32")]
#[link(wasm_import_module = "host")]
extern "C" {
   // Writes a byte string of size bytes that starts from ptr to a logger
   #[link_name = "log_utf8_string"]
   fn log_utf8_string_impl(level: i32, target: i64, msg_ptr: i32, msg_size: i32);
}


которая в WAT выглядит вот так

(type $t26 (func (param i32 i64 i32 i32)))
(import "host" "log_utf8_string" (func $host.log_utf8_string (type $t26)))


И когда она вызывается из wasm модуля, вылетает ошибка

TypeError: wasm function signature contains illegal type

Пока что не удалось выяснить, что эта ошибка означает, и как это происходит.
источник

でゲソ in WebAssembly — русскоговорящее сообщество
Олег
т.е. мне странно что до сих пор майки не внедрили туда wasm при том что vscode лагает довольно серьезно порой
странно. у меня только с конфигами проблема обычно
источник

でゲソ in WebAssembly — русскоговорящее сообщество
folex
Подскажите, а в nodejs нормально работает WebAssembly?

У нас интерпретатор языка скомпилирован в .wasm, и в браузере запускается замечательно, а при попытке запуска на тестах в nodejs вылезают всякие странные ошибки, и не получается записать значения в память васм рантайма.

Например есть совершенно безобидно выглядящая функция в расте

#[cfg(target_arch = "wasm32")]
#[link(wasm_import_module = "host")]
extern "C" {
   // Writes a byte string of size bytes that starts from ptr to a logger
   #[link_name = "log_utf8_string"]
   fn log_utf8_string_impl(level: i32, target: i64, msg_ptr: i32, msg_size: i32);
}


которая в WAT выглядит вот так

(type $t26 (func (param i32 i64 i32 i32)))
(import "host" "log_utf8_string" (func $host.log_utf8_string (type $t26)))


И когда она вызывается из wasm модуля, вылетает ошибка

TypeError: wasm function signature contains illegal type

Пока что не удалось выяснить, что эта ошибка означает, и как это происходит.
а в модуле host сигнатура совпадает в параметрах? а то может он ожидает в какой-нибудь i32 i32 а у функции i32 i64
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
folex
Подскажите, а в nodejs нормально работает WebAssembly?

У нас интерпретатор языка скомпилирован в .wasm, и в браузере запускается замечательно, а при попытке запуска на тестах в nodejs вылезают всякие странные ошибки, и не получается записать значения в память васм рантайма.

Например есть совершенно безобидно выглядящая функция в расте

#[cfg(target_arch = "wasm32")]
#[link(wasm_import_module = "host")]
extern "C" {
   // Writes a byte string of size bytes that starts from ptr to a logger
   #[link_name = "log_utf8_string"]
   fn log_utf8_string_impl(level: i32, target: i64, msg_ptr: i32, msg_size: i32);
}


которая в WAT выглядит вот так

(type $t26 (func (param i32 i64 i32 i32)))
(import "host" "log_utf8_string" (func $host.log_utf8_string (type $t26)))


И когда она вызывается из wasm модуля, вылетает ошибка

TypeError: wasm function signature contains illegal type

Пока что не удалось выяснить, что эта ошибка означает, и как это происходит.
Видимо, импортируемая из хоста функция не соответствует той, что в модуле объявлена (по сигнатуре). Может такое быть?
источник

f

folex in WebAssembly — русскоговорящее сообщество
でゲソ
а в модуле host сигнатура совпадает в параметрах? а то может он ожидает в какой-нибудь i32 i32 а у функции i32 i64
Мхм, ну там на стороне TS/JS вообще any везде

type LogImport = {
   log_utf8_string: (level: any, target: any, offset: any, size: any) => void
}
источник

f

folex in WebAssembly — русскоговорящее сообщество
Но на браузере всё работает. Я подозреваю это дело в поддержке BigInt https://github.com/webpack/webpack/issues/8531

Там как-то всё подзависло с 2018го года, сразу в нескольких местах...
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
folex
Мхм, ну там на стороне TS/JS вообще any везде

type LogImport = {
   log_utf8_string: (level: any, target: any, offset: any, size: any) => void
}
типы должны быть четко указаны
источник

f

folex in WebAssembly — русскоговорящее сообщество
Alexey F.
типы должны быть четко указаны
:number ?
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
явно в твоём конкретном случае сборщик i64 не ожидает
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
потому что тип поинтера - i32
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
почему target: i64 , а не i32?
источник