問題タブ [webassembly]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - ホスト JS と Wasm モジュール間のメモリ アクセスを調整するにはどうすればよいですか?
現在、Webassemblyは少数のパラメータ タイプ、つまり固定サイズの整数と浮動小数点数のみをサポートしています。これは、数値を受け入れて返す C/Rust モジュールからのみ関数を定義してエクスポートできることを意味します。
ただし、Mozilla Developer Network によると、ホストの Javascript からモジュールのメモリを操作できます。
JavaScript または WebAssembly コードで作成された [M]emory は、JavaScript と WebAssembly の両方からアクセスおよび変更可能になります。
これは非常に有望に思えます。これは、メモリの一部を、言語の壁を越えてより複雑なデータをやり取りするためのバイト バッファーとして指定できることを示しています。モジュール内の関数は、ポインター (それ自体i32
は固定サイズの整数) を受け入れて返すことができるため、現在の制約内で機能します。
残念ながら、このメモリをどのように管理すればよいかは明確ではありません。JS から Wasm プロセスにデータを渡す必要がある場合、Memory オブジェクトに直接書き込む必要がありますが、Memory のどの領域が空いているかわかりません。
最も安全な戦略は何ですか?Wasm への呼び出しの前に JS がメモリを要求する方法を提供する -and- -style 関数malloc
のペアをエクスポートする必要がありますか? free
それとも、確立されたベストプラクティスはありますか?
python - emsdk がインストールされていない Web アセンブリ
トレースバック (最新の呼び出しが最後): ファイル "C:\emsdk\emsdk"、2199 行目、sys.exit(main()) ファイル "C:\emsdk\emsdk"、1853 行目、main if len(sys. argv) <= 1 または sys.argv[1] == 'help' または sys.argv[1] == '--help': TypeError: タイプ 'filter' のオブジェクトに len() がありません
以下のコマンドで emsdk をインストール中にエラーが発生しました
emsdk install --build=リリース sdk-incoming-64bit binaryen-master-64bit
webassembly - setjmp/longjmp は WebAssembly でどのように実装されますか?
WebAssembly MVP を見始めたところですが、スタックとスタック ポインター、または構造化された例外処理サポート (スロー/キャッチ) などへのアクセスがないことに気付きました。
C のコンパイル ターゲットであることが想定されているため、setjmp
andを実装することは確実に可能であるに違いありませんがlongjmp
、これがどのようにうまく行われるかはわかりません。この構造は無駄にどのように見えますか?