diff options
| author | nsfisis <nsfisis@gmail.com> | 2024-07-07 12:54:36 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2024-07-07 12:54:36 +0900 |
| commit | 378a315f15a26158885d4e1b14cb97cf04676ba9 (patch) | |
| tree | 198c35341cef2aa1a1580bf354c8418fd09622ea | |
| parent | 6f6edf66a7ab9dcea07a34c66b459958376796a9 (diff) | |
| download | php-waddiwasi-378a315f15a26158885d4e1b14cb97cf04676ba9.tar.gz php-waddiwasi-378a315f15a26158885d4e1b14cb97cf04676ba9.tar.zst php-waddiwasi-378a315f15a26158885d4e1b14cb97cf04676ba9.zip | |
chore: update README
| -rw-r--r-- | README.md | 11 | ||||
| -rw-r--r-- | composer.json | 2 | ||||
| -rwxr-xr-x | examples/rubyvm-on-php-on-wasm/HelloWorld.sh | 1 | ||||
| -rw-r--r-- | examples/rubyvm-on-php-on-wasm/php-wasm.php | 4 |
4 files changed, 12 insertions, 6 deletions
@@ -13,7 +13,7 @@ It is partially compatible with the WebAssembly specification version 2.0. The PHP runtime can be compiled to WebAssembly binary. This Wasm runtime can execute it. Currently, "Hello, World!" program works on the PHP runtime on the Wasm runtime. ``` -$ php -d zend.assertions=-1 -d memory_limit=512M -d opcache.enable_cli=on -d opcache.jit=on -d opcache.jit_buffer_size=1G examples/php-on-wasm/php-wasm.php +$ composer example:php-on-wasm ``` ### RubyVM on PHP on Wasm @@ -23,8 +23,7 @@ https://github.com/m3m0r7/rubyvm-on-php is a RubyVM written in pure PHP. It works on the PHP runtime on my Wasm runtime. ``` -$ cd examples/rubyvm-on-php-on-wasm -$ ./HelloWorld.sh +$ composer example:rubyvm-on-php-on-wasm ``` NOTE: there is a known bug where `munmap()`-related errors are reported. @@ -37,6 +36,12 @@ NOTE: there is a known bug where `munmap()`-related errors are reported. +## Known Bugs + +See [BUGS.txt](./BUGS.txt). + + + ## License See [LICENSE](./LICENSE). diff --git a/composer.json b/composer.json index 86e23eb..f4defbd 100644 --- a/composer.json +++ b/composer.json @@ -33,6 +33,8 @@ ], "ecs": "ecs check", "ecsfix": "ecs --memory-limit=1G check --fix", + "example:php-on-wasm": "@php -d memory_limit=512M -d opcache.enable_cli=on -d opcache.jit=on -d opcache.jit_buffer_size=1G examples/php-on-wasm/php-wasm.php", + "example:rubyvm-on-php-on-wasm": "@php -d memory_limit=-1 -d opcache.enable_cli=on -d opcache.jit=on -d opcache.jit_buffer_size=1G examples/rubyvm-on-php-on-wasm/php-wasm.php", "lint": [ "@ecs", "@phpstan" diff --git a/examples/rubyvm-on-php-on-wasm/HelloWorld.sh b/examples/rubyvm-on-php-on-wasm/HelloWorld.sh deleted file mode 100755 index c5fc8ae..0000000 --- a/examples/rubyvm-on-php-on-wasm/HelloWorld.sh +++ /dev/null @@ -1 +0,0 @@ -php -d memory_limit=-1 -d opcache.enable_cli=on -d opcache.jit=on -d opcache.jit_buffer_size=1G ./php-wasm.php diff --git a/examples/rubyvm-on-php-on-wasm/php-wasm.php b/examples/rubyvm-on-php-on-wasm/php-wasm.php index beb854f..704254f 100644 --- a/examples/rubyvm-on-php-on-wasm/php-wasm.php +++ b/examples/rubyvm-on-php-on-wasm/php-wasm.php @@ -20,7 +20,7 @@ use Nsfisis\Waddiwasi\Structure\Types\ValType; const PHP_EMPTY = ''; const PHP_HELLO_WORLD = <<<'EOS' -require_once __DIR__ . '/HelloWorld.php'; +require_once '%DIR%/HelloWorld.php'; EOS; $wasmBinary = file_get_contents(__DIR__ . '/php-wasm.wasm'); @@ -135,7 +135,7 @@ foreach ($hostFuncs as $hostFunc) { $externVals[] = ExternVal::Func(\count($store->funcs) - 1); } $runtime = Runtime::instantiate($store, $module, $externVals); -$codePtr = allocateStringOnWasmMemory($runtime, PHP_HELLO_WORLD); +$codePtr = allocateStringOnWasmMemory($runtime, strtr(PHP_HELLO_WORLD, ['%DIR%' => __DIR__])); $results = $runtime->invoke("php_wasm_run", [$codePtr]); \assert(\count($results) === 1); |
