# follow `ruby.wasm` tutorial
curl -LO https://github.com/ruby/ruby.wasm/releases/latest/download/ruby-head-wasm32-unknown-wasi-full.tar.gz
tar xfz ruby-head-wasm32-unknown-wasi-full.tar.gz
mv head-wasm32-unknown-wasi-full/usr/local/bin/ruby ruby.wasm
echo "puts 'Hello'" > src/my_app.rb
wasi-vfs pack ruby.wasm --mapdir /src::./src --mapdir /usr::./head-wasm32-unknown-wasi-full/usr -o my-ruby-app.wasm
# embed default arguments with `wasi-preset-args`
wasi-preset-args my-rubyapp.wasm -o my-ruby-app.preset.wasm -- /src/my_app.rb
# pack single binary with `wasmer`
wasmer create-exe --enable-bulk-memory my-ruby-app.preset.wasm -o my-ruby-app
./my-ruby-app
Hello
https://github.com/wasmerio/wasmer/blob/master/lib/wasi/src/syscalls/windows.rs#L45-L48
上記の部分を以下のように書き換え、act を使用して GitHub Actions の
windows_gnu
job を流して Windows 用のlibwasmer.a
をビルドした。それを使って再度 Windows 向けバイナリのクロスコンパイルをしたところ、
puts
の実行ができた。