サブモジュールの実行ファイルを --preload-file を用いずに、必要な時にネットからダウンロードしてコンパイルするような方式に変更していきます。
ネットからサブモジュールの実行ファイルをダウンロードするのは、SDLで画像ファイルの動的Load検証を行った時と同じく、emscripten_async_wget_data を使用していきます。
ただし今回はネットからメモリ上に取得したデータをそのまま使用することは出来ないので、一旦Emscriptenの仮想ファイルシステムに保存した後、dlopen を使う方式でやることにします。
少し脱線しますが、emscripten_async_wget_data を使用するので普通に書くとCALLBACK地獄に陥ってしまうため、JavascriptのPromiseのように使えるモジュールを作成しています。
作成したPromiseモジュールを用いて、メインモジュールを修正します。
nim.cfg から --preload-file のオプションも外しておきます。
先ほどと同じ結果ですが、成功です。