Merge remote-tracking branch 'home/v4' into v4
All checks were successful
Build / build (push) Successful in 3m31s

This commit is contained in:
松浦 知也 Matsuura Tomoya 2024-10-21 11:39:10 +09:00
commit 5cc34240e5
2 changed files with 69 additions and 1 deletions

View File

@ -0,0 +1,68 @@
#mimium #memo
- std::path::canonicalize(std::fs::canonicalizeへのエイリアス)はプラットフォーム依存の挙動でwasmやWASIだとランタイムでErrを返して落ちるっぽい
## 環境構築
RustにWasiターゲットを追加する
```sh
rustup target add wasm32-wasip2
```
wasmtime(WASI用にビルドされたやつを動かすためのランタイム)のインストール
```sh
curl https://wasmtime.dev/install.sh -sSf | bash
```
なぜかMacだときちんと入らなかったので手動で落としてきて、`~/.wasmtime/bin/wasmtime`に配置しておく
## VSCodeでブレークポイントかけてデバッグする
launch.jsonにこういうのを追加する
```json
{
"type": "lldb",
"request": "launch",
"name": "Debug wasi executable",
"cargo": {
"args": [
"build",
"--bin=mimium-cli",
"--package=mimium-cli",
"--target=wasm32-wasip2"
],
"filter": {
"name": "mimium-cli",
"kind": "bin"
}
},
"program": "~/.wasmtime/bin/wasmtime",
"args": [
"run",
"--dir",
".",
"-D",
"debug-info",
"target/wasm32-wasip2/debug/mimium-cli.wasm",
"mimium-cli/examples/sinewave.mmm"
],
"cwd": "${workspaceFolder}",
"env": {
"_NO_DEBUG_HEAP": "1"
}
},
```
コマンドラインオプションとかはよしなにする。`_NO_DEBUG_HEAP`はWindows環境でデバッグすると極端に遅くなる時につける環境変数らしい。WSLだと関係ないのだろうか、よくわからん。
立ち上げてから動き始めるまで15秒くらいかかるので不安になるが、とりあえずブレークポイントは張れた。変数の中身とかきちんと覗けないのはあるが、落ちる原因の特定ぐらいまではできて便利。
## wasmtimeにはオーディオドライバがない当たり前
ここまでやってエラーで落ちることはなくなったが、Wasmtime上ではオーディオドライバをシステムとブリッジしてくれる仕組みがないので音が出ない。

@ -1 +1 @@
Subproject commit 60d5f4a80f7bc2ad2dda5cb366b3fc84c8dac7ea Subproject commit 3ca80b5f5a18b41571248d17befd612d91fa2ade