繁体   English   中英

js_of_ocaml和Core

[英]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_kerneljs_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM