全体に
コマンドを実演しながらやる
コード例もなるべく見せる
前回のCargo.tomlを表示してあげる
&'static str の説明は口頭で頑張る、ややおまじない風にはなるが... // Stringの方が結局いいか?
バイナリが一致しないこともあるが、opt-level = "s" かは確認
storeの第一引数 2 はalignmentだが多くの実装でまだ無視されている予感がする
動かない時
fetch("./string1.wasm") のファイル名を確認する
consoleのエラーを伝える(全部コピペすること/画面キャプチャでもOK
ポイント: 今回はHello, World以外のところで文字列を何も動的にアロケートしていない
WASMの中でメモリ確保をする可能性がある場合、WASMの内部でアロケータを経由して呼んだ領域を使わせるのがベター
(でないと、メモリ管理できてない状態になるはず、それはたまたま動いても不安)
TODO: 03をnaosu
ポイント: これも文字列を何もアロケートしていない
ポイント: from_raw_partsを使っているので新たに何もアロケートしていない
ポイント: from_raw_partsを使っているので新たに何もアロケートしていない
そのため、WASM外部で確保したメモリを使わせても問題が起きない
ポイント: 本講義のような、新たに何もアロケートしない方法を推奨する
内部で String::from(&str) すると意図しない挙動になるかも...
もしくはもう一つ関数をexportし、そこでslen長ののStringを作らせてもいいと思われる