[英]js_of_ocaml and Core
我对OCaml和js_of_ocaml编译器都很陌生。
有人设法使用js_of_ocaml编译使用Jane Street Core的应用程序吗? 在编译过程中我收到了很多“缺少原语”的警告,然后当我尝试用node
运行它时,它们变成了一个实际的异常。
我知道那些是原始的,无法从OCaml移植到JS
,并且它们的实现应该依赖于应用程序,但是对于核心,实际上有数千个,而我的程序只使用输出到stdout
。
另外,我甚至无法编译一个简单的“hello world”项目,因为JS函数没有在JS中实现。 是否有某个“标准”JS文件可以用于此目的? 例如,用console.log
和其他东西替换caml_ml_output_char
,这样模块可以编译成有用的东西,而无需编写任何自定义的javascript?
是的,可以用js_of_ocaml
编译Core_kernel
, js_of_ocaml
用它做了一个版本的Try-OCaml。 它需要修补其一些依赖项(sexplib,ounit等)并使用来自存储库的最新版本的js_of_ocaml
,其中包括一个bigarray
实现。
截至今天,core_kernel版本0.9,它的工作原理。
编译成字节码后。
运行js_of_ocaml
js_of_ocaml +weak.js +nat.js +base/runtime.js +core_kernel/runtime.js +bin_prot/runtime.js main.bc
或直接在jbuilder中添加js_of_ocaml。
(js_of_ocaml (
(flags (+weak.js +nat.js +base/runtime.js +core_kernel/runtime.js +bin_prot/runtime.js))))
是的,当使用带有js_of_ocaml
Core
时,缺少原语是个问题。 有core_kernel
库。 它是Core
一个子集,包含基本功能。 core
UNIX相关函数不包含在Core_kernel
。 如果我没记错的话,从Core
提取Core_kernel
主要原因就是你的问题。
更新 。 我失败了。 似乎开发人员试图允许将Core_kernel
与js_of_ocaml一起使用,但没有成功 。 看来你现在不能这样做。 他们正在等待OCaml名称空间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.