exact version dependency for ocaml libraries

Anil Madhavapeddy avsm at macports.org
Mon Feb 8 15:50:10 PST 2010


OCaml ports are very sensitive to the exact version of the compiler (and dependent libraries) used to compile them, since the type signature is a hash over the binary output.  If the compiler is upgraded, but libraries are not recompiled, then the whole compilation fails with a slightly obscure error like:

File "db.ml", line 1, characters 0-1:
Error: The files /opt/local/lib/ocaml/site-lib/calendar/calendarLib.cmi
      and /opt/local/lib/ocaml/printf.cmi make inconsistent assumptions
      over interface Buffer

So... I was wondering how to encode the depends_lib so that the OCaml libraries in MacPorts depend on the *exact* version of OCaml they were compiled with, and a subsequent upgrade of the OCaml port will also trigger a recompile of the dependent libraries.  Could someone advise me of the TCL-foo to make this possible (if so) ?

-anil


More information about the macports-dev mailing list