Excerpts from Ashish Agarwal's message of Mon Oct 06 19:49:16 +0200 2008:
> Ocamlbuild seems to not include dependent modules when building a library,
> when that library is defined by an mlpack file. However, it works fine if I
> manually pack, i.e. define an ml file instead of an mlpack file. Here's a
> summary:
> 
> --- mylib.mlpack ---
> A
> B
> 
> $ ocamlbuild mylib.cma
> $ cat _build/_log  #just showing relevant line
> ocamlfind ocamlc -a -linkpkg mylib.cmo -o mylib.cma
> 
> I was expecting a.cmo and b.cmo to get included in the library but they are
> not.
> Now if a replace the mylib.mlpack with mylib.ml as follows, I get what I
> want.
> 
> --- mylib.ml ---
> module A = A
> module B = B
> 
> $ ocamlbuild mylib.cma
> $ cat _build/_log  #just showing relevant line
> ocamlfind ocamlc -a -linkpkg a.cmo b.cmo mylib.cmo -o mylib.cma
> 
> How can I get the latter behavior with mlpack? Thank you.

The concept of package is precisely to get rid of a.cmo and b.cmo, since
mylib.cmo (in your first example) contains all the code of A and B.
In the second example mylib.cmo does not contains the code of A and B but
merely a bunch of 'let' definitions.

In your case, if you want to avoid name-space pollution by using packs, then
the first option is the right one.

Best regards,

-- 
Nicolas Pouillard aka Ertai

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Reply via email to