diff options
Diffstat (limited to 'examples/rubyvm-on-php-on-wasm')
| -rw-r--r-- | examples/rubyvm-on-php-on-wasm/php-wasm.php | 75 |
1 files changed, 41 insertions, 34 deletions
diff --git a/examples/rubyvm-on-php-on-wasm/php-wasm.php b/examples/rubyvm-on-php-on-wasm/php-wasm.php index 723e210..e0c3a77 100644 --- a/examples/rubyvm-on-php-on-wasm/php-wasm.php +++ b/examples/rubyvm-on-php-on-wasm/php-wasm.php @@ -30,7 +30,7 @@ $imports = [ 'invoke_iiiii' => makeHostFunc('(i32, i32, i32, i32, i32) -> (i32)', hostFunc__env__invoke_iiiii(...)), 'invoke_v' => makeHostFunc('(i32) -> ()', hostFunc__env__invoke_v(...)), 'invoke_ii' => makeHostFunc('(i32, i32) -> (i32)', hostFunc__env__invoke_ii(...)), - 'abort' => makeHostFunc('() -> ()', hostFunc__env__abort(...)), + '_abort_js' => makeHostFunc('() -> ()', hostFunc__env___abort_js(...)), 'exit' => makeHostFunc('(i32) -> ()', hostFunc__env__exit(...)), 'invoke_viii' => makeHostFunc('(i32, i32, i32, i32) -> ()', hostFunc__env__invoke_viii(...)), 'invoke_vii' => makeHostFunc('(i32, i32, i32) -> ()', hostFunc__env__invoke_vii(...)), @@ -45,7 +45,6 @@ $imports = [ 'invoke_iiiiiiiiii' => makeHostFunc('(i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> (i32)', hostFunc__env__invoke_iiiiiiiiii(...)), 'strftime' => makeHostFunc('(i32, i32, i32, i32) -> (i32)', hostFunc__env__strftime(...)), 'getaddrinfo' => makeHostFunc('(i32, i32, i32, i32) -> (i32)', hostFunc__env__getaddrinfo(...)), - 'gethostbyname_r' => makeHostFunc('(i32, i32, i32, i32, i32, i32) -> (i32)', hostFunc__env__gethostbyname_r(...)), 'getdtablesize' => makeHostFunc('() -> (i32)', hostFunc__env__getdtablesize(...)), 'getprotobyname' => makeHostFunc('(i32) -> (i32)', hostFunc__env__getprotobyname(...)), 'getprotobynumber' => makeHostFunc('(i32) -> (i32)', hostFunc__env__getprotobynumber(...)), @@ -64,7 +63,7 @@ $imports = [ '__syscall_fchownat' => makeHostFunc('(i32, i32, i32, i32, i32) -> (i32)', hostFunc__env____syscall_fchownat(...)), '__syscall_dup' => makeHostFunc('(i32) -> (i32)', hostFunc__env____syscall_dup(...)), '__syscall_dup3' => makeHostFunc('(i32, i32, i32) -> (i32)', hostFunc__env____syscall_dup3(...)), - 'emscripten_memcpy_js' => makeHostFunc('(i32, i32, i32) -> ()', hostFunc__env__emscripten_memcpy_js(...)), + '_emscripten_memcpy_js' => makeHostFunc('(i32, i32, i32) -> ()', hostFunc__env___emscripten_memcpy_js(...)), 'emscripten_date_now' => makeHostFunc('() -> (f64)', hostFunc__env__emscripten_date_now(...)), '_emscripten_get_now_is_monotonic' => makeHostFunc('() -> (i32)', hostFunc__env___emscripten_get_now_is_monotonic(...)), 'emscripten_get_now' => makeHostFunc('() -> (f64)', hostFunc__env__emscripten_get_now(...)), @@ -79,6 +78,7 @@ $imports = [ '__syscall_mkdirat' => makeHostFunc('(i32, i32, i32) -> (i32)', hostFunc__env____syscall_mkdirat(...)), '__syscall_pipe' => makeHostFunc('(i32) -> (i32)', hostFunc__env____syscall_pipe(...)), '__syscall_poll' => makeHostFunc('(i32, i32, i32) -> (i32)', hostFunc__env____syscall_poll(...)), + '_emscripten_runtime_keepalive_clear' => makeHostFunc('() -> ()', hostFunc__env___emscripten_runtime_keepalive_clear(...)), '__call_sighandler' => makeHostFunc('(i32, i32) -> ()', hostFunc__env____call_sighandler(...)), '__syscall_getdents64' => makeHostFunc('(i32, i32, i32) -> (i32)', hostFunc__env____syscall_getdents64(...)), '__syscall_readlinkat' => makeHostFunc('(i32, i32, i32, i32) -> (i32)', hostFunc__env____syscall_readlinkat(...)), @@ -97,6 +97,7 @@ $imports = [ '__syscall_accept4' => makeHostFunc('(i32, i32, i32, i32, i32, i32) -> (i32)', hostFunc__env____syscall_accept4(...)), '__syscall_bind' => makeHostFunc('(i32, i32, i32, i32, i32, i32) -> (i32)', hostFunc__env____syscall_bind(...)), '__syscall_connect' => makeHostFunc('(i32, i32, i32, i32, i32, i32) -> (i32)', hostFunc__env____syscall_connect(...)), + '_emscripten_lookup_name' => makeHostFunc('(i32) -> (i32)', hostFunc__env___emscripten_lookup_name(...)), '__syscall_getpeername' => makeHostFunc('(i32, i32, i32, i32, i32, i32) -> (i32)', hostFunc__env____syscall_getpeername(...)), '__syscall_getsockname' => makeHostFunc('(i32, i32, i32, i32, i32, i32) -> (i32)', hostFunc__env____syscall_getsockname(...)), '__syscall_getsockopt' => makeHostFunc('(i32, i32, i32, i32, i32, i32) -> (i32)', hostFunc__env____syscall_getsockopt(...)), @@ -136,23 +137,23 @@ function allocateStringOnWasmMemory(Runtime $runtime, string $str): int { // Plus 1 for the null terminator in C. $size = \strlen($str) + 1; - $outPtr = wasm_stackAlloc($runtime, $size); + $outPtr = _emscripten_stack_alloc($runtime, $size); copyStringToWasmMemory($runtime, $outPtr, $str); return $outPtr; } -function wasm_stackAlloc(Runtime $runtime, int $size): int +function _emscripten_stack_alloc(Runtime $runtime, int $size): int { - $results = $runtime->invoke("stackAlloc", [$size]); + $results = $runtime->invoke("_emscripten_stack_alloc", [$size]); \assert(\count($results) === 1); $result = $results[0]; \assert(\is_int($result)); return $result; } -function wasm_stackSave(Runtime $runtime): int +function emscripten_stack_get_current(Runtime $runtime): int { - $results = $runtime->invoke("stackSave", []); + $results = $runtime->invoke("emscripten_stack_get_current", []); \assert(\count($results) === 1); $result = $results[0]; \assert(\is_int($result)); @@ -584,7 +585,7 @@ function fsMmap(Runtime $runtime, int $fd, int $len, int $offset, int $prot, int // Type: (i32, i32, i32) -> (i32) function hostFunc__env__invoke_iii(Runtime $runtime, int $index, int $a1, int $a2): int { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -595,7 +596,7 @@ function hostFunc__env__invoke_iii(Runtime $runtime, int $index, int $a1, int $a // Type: (i32, i32, i32, i32, i32) -> (i32) function hostFunc__env__invoke_iiiii(Runtime $runtime, int $index, int $a1, int $a2, int $a3, int $a4): int { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -608,7 +609,7 @@ function hostFunc__env__invoke_iiiii(Runtime $runtime, int $index, int $a1, int // Type: (i32) -> () function hostFunc__env__invoke_v(Runtime $runtime, int $index): void { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->invokeByFuncAddr($func); } @@ -616,7 +617,7 @@ function hostFunc__env__invoke_v(Runtime $runtime, int $index): void // Type: (i32, i32, i32, i32) -> (i32) function hostFunc__env__invoke_iiii(Runtime $runtime, int $index, int $a1, int $a2, int $a3): int { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -628,7 +629,7 @@ function hostFunc__env__invoke_iiii(Runtime $runtime, int $index, int $a1, int $ // Type: (i32, i32) -> (i32) function hostFunc__env__invoke_ii(Runtime $runtime, int $index, int $a1): int { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->invokeByFuncAddr($func); @@ -636,9 +637,9 @@ function hostFunc__env__invoke_ii(Runtime $runtime, int $index, int $a1): int } // Type: () -> () -function hostFunc__env__abort(Runtime $runtime): void +function hostFunc__env___abort_js(Runtime $runtime): void { - throw new \RuntimeException('env::abort: not implemented'); + throw new \RuntimeException('env::_abort_js: not implemented'); } // Type: (i32) -> () @@ -650,7 +651,7 @@ function hostFunc__env__exit(Runtime $runtime): void // Type: (i32, i32, i32, i32) -> () function hostFunc__env__invoke_viii(Runtime $runtime, int $index, int $a1, int $a2, int $a3): void { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -661,7 +662,7 @@ function hostFunc__env__invoke_viii(Runtime $runtime, int $index, int $a1, int $ // Type: (i32, i32, i32) -> () function hostFunc__env__invoke_vii(Runtime $runtime, int $index, int $a1, int $a2): void { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -671,7 +672,7 @@ function hostFunc__env__invoke_vii(Runtime $runtime, int $index, int $a1, int $a // Type: (i32, i32) -> () function hostFunc__env__invoke_vi(Runtime $runtime, int $index, int $a1): void { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->invokeByFuncAddr($func); @@ -680,7 +681,7 @@ function hostFunc__env__invoke_vi(Runtime $runtime, int $index, int $a1): void // Type: (i32) -> (i32) function hostFunc__env__invoke_i(Runtime $runtime, int $index): int { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->invokeByFuncAddr($func); return $runtime->stack->popInt(); @@ -689,7 +690,7 @@ function hostFunc__env__invoke_i(Runtime $runtime, int $index): int // Type: (i32, i32, i32, i32, i32, i32, i32) -> (i32) function hostFunc__env__invoke_iiiiiii(Runtime $runtime, int $index, int $a1, int $a2, int $a3, int $a4, int $a5, int $a6): int { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -704,7 +705,7 @@ function hostFunc__env__invoke_iiiiiii(Runtime $runtime, int $index, int $a1, in // Type: (i32, i32, i32, i32) -> () function hostFunc__env____assert_fail(Runtime $runtime, int $index, int $a1, int $a2, int $a3): void { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -715,7 +716,7 @@ function hostFunc__env____assert_fail(Runtime $runtime, int $index, int $a1, int // Type: (i32, i32, i32, i32, i32) -> () function hostFunc__env__invoke_viiii(Runtime $runtime, int $index, int $a1, int $a2, int $a3, int $a4): void { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -727,7 +728,7 @@ function hostFunc__env__invoke_viiii(Runtime $runtime, int $index, int $a1, int // Type: (i32, i32, i32, i32, i32, i32) -> () function hostFunc__env__invoke_viiiii(Runtime $runtime, int $index, int $a1, int $a2, int $a3, int $a4, int $a5): void { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -740,7 +741,7 @@ function hostFunc__env__invoke_viiiii(Runtime $runtime, int $index, int $a1, int // Type: (i32, i32, i32, i32, i32, i32) -> (i32) function hostFunc__env__invoke_iiiiii(Runtime $runtime, int $index, int $a1, int $a2, int $a3, int $a4, int $a5): int { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -754,7 +755,7 @@ function hostFunc__env__invoke_iiiiii(Runtime $runtime, int $index, int $a1, int // Type: (i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) -> (i32) function hostFunc__env__invoke_iiiiiiiiii(Runtime $runtime, int $index, int $a1, int $a2, int $a3, int $a4, int $a5, int $a6, int $a7, int $a8, int $a9): int { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -781,12 +782,6 @@ function hostFunc__env__getaddrinfo(Runtime $runtime): void throw new \RuntimeException('env::getaddrinfo: not implemented'); } -// Type: (i32, i32, i32, i32, i32, i32) -> (i32) -function hostFunc__env__gethostbyname_r(Runtime $runtime): void -{ - throw new \RuntimeException('env::gethostbyname_r: not implemented'); -} - // Type: () -> (i32) function hostFunc__env__getdtablesize(Runtime $runtime): void { @@ -820,7 +815,7 @@ function hostFunc__env__getnameinfo(Runtime $runtime): void // Type: (i32, i32, i32, i32, i32, i32, i32) -> () function hostFunc__env__invoke_viiiiii(Runtime $runtime, int $index, int $a1, int $a2, int $a3, int $a4, int $a5, int $a6): void { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -834,7 +829,7 @@ function hostFunc__env__invoke_viiiiii(Runtime $runtime, int $index, int $a1, in // Type: (i32, i32, i32, f64, i32, i32) -> () function hostFunc__env__invoke_viidii(Runtime $runtime, int $index, int $a1, int $a2, float $a3, int $a4, int $a5): void { - $sp = wasm_stackSave($runtime); + $sp = emscripten_stack_get_current($runtime); $func = getWasmTableEntry($runtime, $index); $runtime->stack->pushValue($a1); $runtime->stack->pushValue($a2); @@ -1045,7 +1040,7 @@ function hostFunc__env____syscall_dup3(Runtime $runtime): void } // Type: (i32, i32, i32) -> () -function hostFunc__env__emscripten_memcpy_js(Runtime $runtime, int $dest, int $src, int $num): void +function hostFunc__env___emscripten_memcpy_js(Runtime $runtime, int $dest, int $src, int $num): void { $mem = $runtime->getExportedMemory('memory'); \assert($mem !== null); @@ -1188,6 +1183,12 @@ function hostFunc__env____syscall_poll(Runtime $runtime): void throw new \RuntimeException('env::__syscall_poll: not implemented'); } +// Type: () -> () +function hostFunc__env___emscripten_runtime_keepalive_clear(Runtime $runtime): void +{ + throw new \RuntimeException('env::_emscripten_runtime_keepalive_clear: not implemented'); +} + // Type: (i32, i32) -> () function hostFunc__env____call_sighandler(Runtime $runtime): void { @@ -1332,6 +1333,12 @@ function hostFunc__env____syscall_connect(Runtime $runtime): void throw new \RuntimeException('env::__syscall_connect: not implemented'); } +// Type: (i32) -> (i32) +function hostFunc__env___emscripten_lookup_name(Runtime $runtime): void +{ + throw new \RuntimeException('env::_emscripten_lookup_name: not implemented'); +} + // Type: (i32, i32, i32, i32, i32, i32) -> (i32) function hostFunc__env____syscall_getpeername(Runtime $runtime): void { |
