2014-10-16 55 views
0

我使用ocamljava,它的工作很好。这很自然,在大多数情况下,承认整个ocaml语言的编译器名称交换是编译为java字节码所需的全部内容,然后生成一个可用的jar。如何促进Ocaml库与C函数调用的OCamljava编译?

因此,我需要使用java的库,它有,但ocaml有一个非常可敬的库,我想利用。我根本不想重做任何工作。问题是,据我所知,ocamljava不支持ocaml使用每个ocamlc和ocamlopt编译器都承认的简单进程对C代码进行回调。所以编辑是卡住的;但我错了 - 是不是真的ocamljava没有这种支持呢?在我看来很清楚,java可以调用C,应该可以生成使这个调用等价的java字节码。

回答

0

事实证明,ocamlc和ocamlopt编译器利用ctypes后端,这有助于语言运行时差异,其中可以调用C函数。但是C类型并没有考虑到在ocaml中从JVM的上下文中调用C函数的问题,或者就此而言,如何强制ocaml编译器在编译时选择正确的委托给C函数的方法。

因此,需要为ctypes提供一个新的“后端”,这可以通过使用JNA来实现上述目的。这很大程度上是由泽维尔自己提出的,因为我已经直接与他讨论过了。它在地图上,但不一定优先。