首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未实现的Javascript原语caml_pure_js_expr

未实现的Javascript原语caml_pure_js_expr
EN

Stack Overflow用户
提问于 2016-05-19 10:29:17
回答 1查看 762关注 0票数 2

我想编写和编译cubes.ml,以便它封装一个OCaml函数,使JS函数可以在web中调用;2) OCaml函数和字节码仍然可以在Linux下的命令行中进行测试。

cubes.ml如下:

代码语言:javascript
复制
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

代码语言:javascript
复制
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返回一个错误:

代码语言:javascript
复制
:testweb $ ./T
Unimplemented Javascript primitive caml_pure_js_expr!

虽然node cubes.js返回hello,但我确实需要能够直接测试./T,因为当出现错误时,它会很好地显示错误位置,而node cubes.js显示的信息是不可读的.

有人知道怎么解决这个问题吗?

PS:node --versionv6.1.0npm --version3.8.6ocaml -versionThe OCaml toplevel, version 4.02.3js_of_ocaml --version给了2.7

EN

回答 1

Stack Overflow用户

发布于 2018-10-30 13:39:30

无论如何,我不认为要避免使用node,但是您可以改进它返回的信息

  1. 用调试信息编译OCaml (向ocamlc添加-g选项)
  2. 将选项--debuginfo --sourcemap --pretty添加到js_of_ocaml调用中

在你的例子中,你必须

代码语言:javascript
复制
ocamlfind ocamlc -g -package js_of_ocaml.ppx -linkpkg cubes.ml -o T
js_of_ocaml --debuginfo --sourcemap --pretty T -o cubes.js
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37320532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档