看到OCaml编译器和js_of_ocaml都是用OCaml编写的,对我来说,我应该能够写一个使用的包装器似乎是合理的:
compilerlibs
将OCaml源代码编译成Instruct.instruction list
(使用Bytegen.compile_implementation
)和Parse_bytecode
。因此,我会将所有数据保存在内存中,避免写入然后读取cmo
文件。我希望我可以将cmo
写入缓冲区并使用js_of_ocaml进程,但它看起来效率最低。
这是现实的/之前是否已经完成,或者我只是想在错误的地方/方式加入这两个组件?
答案 0 :(得分:0)
我几乎肯定http://edit.ocamlpro.com/在浏览器中在线编译源代码到OCaml字节代码时会使用这种方法。
答案 1 :(得分:0)
他们说维护起来比较容易。
https://www.lri.fr/~conchon/TER/2012/3/js_of_ocaml.pdf
虚拟机提供非常稳定的API。 ... 因此,无需在每个语言版本中修改编译器以支持最新功能