Size: a a a

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

2020 December 16

でゲソ in WebAssembly — русскоговорящее сообщество
но вообще под такое дело неплохо иметь какой-то minimal repro code под этот кейс
источник

f

folex in WebAssembly — русскоговорящее сообщество
Это верно. Я думал может что-то вылезет в обсуждении. Буду дальше разбираться, если не разберусь – буду делать repro, и заводить ишьюсы куда-нибдь :)
источник

f

folex in WebAssembly — русскоговорящее сообщество
Кстати, wasm-pack предлагает поступать вот так с i64

const u32CvtShim = new Uint32Array(2);
const int64CvtShim = new BigInt64Array(u32CvtShim.buffer);
export const __wbg_callserviceimpl_7d3cf77a2722659e = function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {
   try {
       u32CvtShim[0] = arg7;
       u32CvtShim[1] = arg8;
       const n0 = int64CvtShim[0];
источник

AF

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

f

folex in WebAssembly — русскоговорящее сообщество
самое интересное это что коду выше соответствует вот такой wat

 (type (;23;) (func (param i32 i32 i32 i32 i32 i32 i32 i32 i32)))
 (import "./aquamarine_client_bg.js" "__wbg_callserviceimpl_7d3cf77a2722659e" (func (;2;) (type 23)))



но при этом вот такая функция в хроме работает отлично

(type (;28;) (func (param i32 i64 i32 i32)))
(import "host" "log_utf8_string" (func (;0;) (type 28)))
источник

f

folex in WebAssembly — русскоговорящее сообщество
меня тут напрягает 2 момента:
1. Почему биндген не проходится по log_utf8_string? это же некорректно?
2. Почему i64 работает в браузере?

магия какая-то
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
folex
меня тут напрягает 2 момента:
1. Почему биндген не проходится по log_utf8_string? это же некорректно?
2. Почему i64 работает в браузере?

магия какая-то
я думаю, проблема на стороне бандлера
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
именно во время сборки Wasm на хосте (я не имею ввиду сборку раста)
источник

f

folex in WebAssembly — русскоговорящее сообщество
Alexey F.
я думаю, проблема на стороне бандлера
какая именно проблема? и что такое бандлер?
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
folex
какая именно проблема? и что такое бандлер?
ну, у тебя же именно НЕ в браузере не работает
источник

AF

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

f

folex in WebAssembly — русскоговорящее сообщество
так. Не работает в тестах, которые запускаются чз mocha, как я понимаю на nodejs
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
тебе нужно просто собрать растом .wasm, не юзай wasm-pack
источник

f

folex in WebAssembly — русскоговорящее сообщество
Не работает 2 вещи.
1. passStringToWasm0 похоже не записывает наблюдаемого результата – это критично, я не знаю как поправить
2. TypeError на i64 – это не критично, но единственное, про что у меня вышло погуглить
источник

SR

Sergey Rubanov in WebAssembly — русскоговорящее сообщество
folex
Кстати, wasm-pack предлагает поступать вот так с i64

const u32CvtShim = new Uint32Array(2);
const int64CvtShim = new BigInt64Array(u32CvtShim.buffer);
export const __wbg_callserviceimpl_7d3cf77a2722659e = function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {
   try {
       u32CvtShim[0] = arg7;
       u32CvtShim[1] = arg8;
       const n0 = int64CvtShim[0];
не будет работать в сафари
источник

SR

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

SR

Sergey Rubanov in WebAssembly — русскоговорящее сообщество
folex
меня тут напрягает 2 момента:
1. Почему биндген не проходится по log_utf8_string? это же некорректно?
2. Почему i64 работает в браузере?

магия какая-то
i64 работает из-за i64 <-> BigInt, вероятно
источник

SR

Sergey Rubanov in WebAssembly — русскоговорящее сообщество
поддержка которого есть в V8 и SpiderMonkey
источник

f

folex in WebAssembly — русскоговорящее сообщество
А есть какое-то название для VM, что внутри nodejs используется? У него как с поддержкой всей этой истории?
источник

SR

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