我想编写和编译cubes.ml,以便它封装一个OCaml函数,使JS函数可以在web中调用;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以下两个命令生成字节码T,并将T转换为cubes.js
ocamlfind ocamlc -package js_of_ocaml.ppx -linkpkg cubes.ml -o T
js_of_ocaml T -o cubes.js我已经测试过其他JS或cubes.js文件可以很好地调用cubes.js的函数。所以我的目标已经实现了。
但是,我的目标无法实现:./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。
发布于 2018-10-30 13:39:30
无论如何,我不认为要避免使用node,但是您可以改进它返回的信息
ocamlc添加-g选项)--debuginfo --sourcemap --pretty添加到js_of_ocaml调用中在你的例子中,你必须
ocamlfind ocamlc -g -package js_of_ocaml.ppx -linkpkg cubes.ml -o T
js_of_ocaml --debuginfo --sourcemap --pretty T -o cubes.jshttps://stackoverflow.com/questions/37320532
复制相似问题