Digamos que tengo un archivo de biblioteca OCaml foo.cma. ¿Hay una herramienta de línea de comandos para imprimir la firma de las funciones y otros tipos definidos allí? La utilidad ocamlbrowser parece estar basada en Windows (se queja de la variable de entorno $ DISPLAY). El caso de uso es que estoy haciendo un:examinar la firma de la biblioteca (.cma) desde la consola
ocamlc -c foo.cma main.ml
y sale:
File "main.ml", line 13, characters 33-47:
Error: Unbound value ListUtil.split
ListUtil.split debe residir en foo.cma pero no sé una herramienta basada en la consola para verificar eso.
Sí, eso es útil, sin embargo, se supone que uno conoce los nombres de los módulos compilados juntos en el archivo cma. Por ejemplo, si tengo un archivo foo.cma con dos módulos separados, digamos foo1 y foo2, compilado como: 'ocamlc -a foo1.cmo foo2.cmo -o foo.cma', entonces hay una manera de obtener un lista de todos los módulos que se encuentran en el archivo .cma o ¿uno tiene que saber sus nombres por adelantado? Parece extraño en cualquier caso que una utilidad de consola no se proporcione de fábrica. –
Con el método toplevel, puede ver todos los módulos en el archivo cma. Para conocer el módulo por adelantado, debe verificar el archivo mli o, en caso contrario, en el archivo fuente. De lo contrario, no sé realmente cómo hacerlo. – cago