Size: a a a

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

2018 November 30

NK

ID:693357436 in WebAssembly — русскоговорящее сообщество
Есть где-нибудь объяснение про то, как составлять importObject? У Mozilla было сказано importObject = {imports: {}}, а на самом деле браузер хотел {env: {}} с функциями... Непонятно
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
покажи wat или wasm файл
источник

NK

ID:693357436 in WebAssembly — русскоговорящее сообщество
zig build-obj --release-fast --target-os freestanding --target-arch wasm32 --output test.wasm main.zig
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
wasm2wat /Users/pepyakin/Downloads/test\ \(1\).wasm
(module
 (type (;0;) (func))
 (type (;1;) (func (param i32)))
 (import "env" "__linear_memory" (memory (;0;) 1))
 (import "env" "__indirect_function_table" (table (;0;) 0 anyfunc))
 (import "env" "imported_func" (func (;0;) (type 1)))
 (func (;1;) (type 0)
   i32.const 0
   call 0)
 (data (i32.const 0) "Hello from Zig programming language\00"))
источник

NK

ID:693357436 in WebAssembly — русскоговорящее сообщество
поменял build-obj на build-exe и уже почти запустилось
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
var importObject = { "env": { "imported_func": function(addr) { ... } } };
источник

NK

ID:693357436 in WebAssembly — русскоговорящее сообщество
А можно еще вот это через wasm2wat?
источник

NK

ID:693357436 in WebAssembly — русскоговорящее сообщество
говорит LinkError: "import object field '__stack_pointer' is not a Number" localhost:8000:12:16
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
(module
 (type (;0;) (func (param i32)))
 (type (;1;) (func (param i32 i32)))
 (type (;2;) (func))
 (import "env" "__stack_pointer" (global (;0;) (mut i32)))
 (import "env" "imported_func" (func $imported_func (type 0)))
 (func $panic (type 1) (param i32 i32)
   (local i32 i32 i32)
   get_global 0
   set_local 2
   i32.const 16
   set_local 3
   get_local 2
   get_local 3
   i32.sub
   set_local 4
   get_local 4
   get_local 1
   i32.store offset=12
   loop  ;; label = @1
     br 0 (;@1;)
   end)
 (func $exportedf (type 2)
   (local i32)
   i32.const 8
   set_local 0
   get_local 0
   call $imported_func
   return)
 (table (;0;) 1 1 anyfunc)
 (memory (;0;) 1)
 (data (i32.const 0) "\00")
 (data (i32.const 4) "\08\00\00\00")
 (data (i32.const 😍 "Hello from Zig programming language\00"))
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
не надо благодарности
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
но в след раз можно попросить вот эту страницу сделать то же самое
источник

lp

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

NK

ID:693357436 in WebAssembly — русскоговорящее сообщество
ага! Тут моя exported_f появилась, но теперь разбираемся со stack_pointer
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
const imports = {
 env: {
   __stack_pointer: new WebAssembly.Global({value: 'i32', mutable: true}, 0),
 }
}
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Я уже вижу недостаток у zig. Он эмулирует swadow stack, а указатель еще и хранит в глобальной мутирующей переменной =)
источник

NK

ID:693357436 in WebAssembly — русскоговорящее сообщество
а у Rust по-другому?
источник

NK

ID:693357436 in WebAssembly — русскоговорящее сообщество
вообще насколько я понял за итоговый wasm отвечает llvm что там, что там
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
У раста по-другому да
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
starting in 5 mins (online)
Join me at Parity Substrate - Russian Q&A http://meetu.ps/e/G6cKt/pHMsY/a
источник

でゲソ in WebAssembly — русскоговорящее сообщество
ID:693357436
Ну вот игры уже отваливаются, рендер-то через web api идёт и цена вызова wasm из js или наоборот кусается
Чейта отваливаются. Уже можно.
источник