从控制台检查库(.cma)签名

Mar*_*tus 6 ocaml

假设我有一个OCaml库文件foo.cma.是否有一个命令行工具来打印函数的签名和那里定义的其他类型?ocamlbrowser实用程序似乎是基于Windows的(抱怨$ DISPLAY环境变量).用例是我正在做的:

ocamlc -c foo.cma main.ml
Run Code Online (Sandbox Code Playgroud)

得到:

File "main.ml", line 13, characters 33-47:
Error: Unbound value ListUtil.split
Run Code Online (Sandbox Code Playgroud)

ListUtil.split应该驻留在foo.cma中,但我不知道一个基于控制台的工具来验证它.

Fab*_*ant 9

在Debian/Ubuntu上,你有"ocamlobjinfo":

ocamlobjinfo stdlib.cma
Run Code Online (Sandbox Code Playgroud)

将显示stdlib.cma中包含的所有单元名称.然后,您可以创建一个短文件:

include SomeModule
Run Code Online (Sandbox Code Playgroud)

并使用-i编译它以查看模块SomeModule中定义的内容.


cag*_*ago 5

在顶层,我只是加载cma文件:

#load "foo.cma";;
Run Code Online (Sandbox Code Playgroud)

然后我重新定义了一个模块,只是为了看到签名:

module Chunk = Foo;;
Run Code Online (Sandbox Code Playgroud)