#run-time #index #tree #up #token #token-tree

已删除 watt-runtime

WebAssembly 是否在您的令牌树中全面展开?

0.0.0 2019年10月14日

#15#token-tree

每月下载量 31 次

MIT/Apache

2KB

官方测试套件

由于这个 WebAssembly 的实现旨在符合官方规范,因此它针对官方测试套件进行测试。该 脚本 模块处理官方测试脚本格式的解析和执行。然而,此实现不支持在大多数脚本中使用的 WebAssembly 文本格式。因此,测试脚本必须转换为二进制格式。这需要两个步骤。

修补官方解释器

官方解释器以十进制格式打印浮点数,这会导致精度丢失并破坏一些测试。相反,浮点数应以十六进制格式打印以保留其精度。可以通过对官方解释器应用以下补丁来获得此效果

diff --git a/interpreter/exec/float.ml b/interpreter/exec/float.ml
index 3237959..d4274f7 100644
--- a/interpreter/exec/float.ml
+++ b/interpreter/exec/float.ml
@@ -237,7 +237,8 @@ struct
     (if x < Rep.zero then "-" else "") ^
     if is_nan x then
       "nan:0x" ^ Rep.to_hex_string (Rep.logand (abs x) (Rep.lognot bare_nan))
+    else if is_inf x then
+      "inf"
     else
-      (* TODO: use sprintf "%h" once we have upgraded to OCaml 4.03 *)
-      string_of_float (to_float (abs x))
+      Printf.sprintf "%h" (to_float (abs x))
 end

请注意,此补丁需要至少 OCaml 4.03。

转换测试

有了现在已修补的官方解释器,可以使用以下脚本来转换测试

for f in test/core/*.wast; do
	interpreter/wasm -d $f -o ${f%.wast}.bin.wast
done

无运行时依赖项