2017-11-14 13 views
0

誰かが、静的に特定の要素を持つ表を作成して参照する構文を共有できますか? Webアセンブリコードが見つかりませんでした。WebAssemblyでテーブルを作成して参照するにはどうすればよいですか?

また、複数の列を持つこともできますが、インデックスがテーブルなどにないとどうなりますか?テキスト形式で

+0

質問から、どのようなテーブルが必要かは分かりません。それは一定のデータか動的か?また、Webアセンブリのソースにはどの言語を使用しますか?データベーステーブルをイメージングしているように見えますが、wasmではこの方法では動作しません。 – nzeemin

+0

@nzeeminソース言語の意味を正確には分かりません。私はウェブアセンブリs-expを書いています。テーブルには一定のデータがあります。私は実行時にそれを変更しません。私は実行時にインデックスに基づいて参照するだけです。 – abhishek

答えて

2

は、tableは、そのテーブル・タイプ、すなわち、(初期)サイズと要素型で宣言されている - 現在anyfuncのみサポートされるタイプである。

(table $name 100 anyfunc) 

テーブルが以内初期化することができます一つ以上のelement segmentsを提供することにより、モジュール:式オフセット表し、モジュールで定義された関数のリストが続く

(elem (i32.const 0) $f1 $f2 $f3) 

。あなたは、例えばWasmスペックのテストスイートでいくつかの簡単な例を見つけることができます

(call_indirect (type $t) (arg1) ... (argn) (index)) 

、このようなテーブルを使用するための唯一の方法は、call_indirect命令を介して行われここでは(将来的にWasmは、複数のテーブルを許可するかもしれませんが)

https://github.com/WebAssembly/spec/blob/master/test/core/elem.wast

テーブルには列がありません。 executionについては、初期化されていないインデックスや型の不一致にアクセスする場合と同様に、範囲外アクセスによってトラップが発生します。

関連する問題