我想编写和编译cubes.ml这样1)它包装了一个OCaml函数来制作一个可以在Web中调用的JS函数;2)OCaml函数和字节码在Linux下仍然可以在命令行中测试。
cubes.ml如下:
let () =
let oneArgument (a: int) = a + 100 in
Js.Unsafe.global##.jsOneArgument := Js.wrap_callback oneArgument;
print_string "hello\n";
exit 0
以下 2 个命令生成一个字节码T,并转换T为cubes.js:
ocamlfind ocamlc -package js_of_ocaml.ppx -linkpkg cubes.ml -o T
js_of_ocaml T -o cubes.js
我测试过 的函数可以很好jsOneArgument的cubes.js被其他的JS或者HTML文件调用。所以我的 1) 目标得到了满足。
但是,我的 2) 目标无法满足:./T返回错误:
:testweb $ ./T
Unimplemented Javascript primitive caml_pure_js_expr!
虽然node cubes.js返回hello,但我确实需要能够./T直接测试,因为当出现错误时,它会很好地显示错误位置,而显示的信息node cubes.js是不可读的......
那么有谁知道如何解决这个问题?
PS:node --version给v6.1.0;npm --version给3.8.6; ocaml -version给The OCaml toplevel, version 4.02.3.
js_of_ocaml --version给2.7.