Skip to content

Instantly share code, notes, and snippets.

@poppycocker
Last active December 27, 2017 18:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save poppycocker/9cba5f4e71f8e8e81f28d80c32ba723a to your computer and use it in GitHub Desktop.
Save poppycocker/9cba5f4e71f8e8e81f28d80c32ba723a to your computer and use it in GitHub Desktop.
WebAssembly,Emscripten

WebAssembly, Emscripten

概要

実践

デモ

フカシギの数え方 できるか

em++ fukashigi_dfs.cpp -s WASM=1 -o fukashigi_dfs.html -std=c++11 -O3

Emscriptenでできるはできた。 が、このテンプレートを変形して純粋にwasm内の関数呼んだりするのがめちゃくちゃハードル高い。 Emscriptenが魔術じみている。 main()を呼ぶコードを吐いているようだが、そこにコマンドライン引数を渡す方法が読み切れていない。 エクスポートした関数を呼び出したかったが時間切れ。 WebAssembly.instantiate()の第2引数がオプションかと思ったら必須で、これに渡すオブジェクトに何を詰めればいいか不明。 コンパイラ次第とか言われても… wasm内では「JSのこの値・関数を渡してくれ!」って待ち構えてるらしく、対応するものをwasmにインポートしてやらないといけない。 Emscriptenはコンパイル段階でそれを把握してて、自動生成したコード内で渡すものを構築してる。 中身何が入ってるのか見てみたら山ほどプロパティがあって人間には無理だと悟った。 (そこだけ構築するコード吐いてくれればいいのに)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment