我想编写和编译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
.