LE DIMANCHE 03 JUIN 2007 à 23:34 +0100, LUKE MCCARTHY A éCRIT :
> PROBLEM 1: OCAMLC INSISTS ON THE SOURCE AND OBJECT FILES BEING IN THE
> SAME
> DIRECTORY. I LIKE TO KEEP ALL THE OBJECT FILES IN A PARALLEL DIRECTORY
> STRUCTURE SEPARATE FROM THE SOURCE FILES. BUT I CANNOT GET OCAMLC TO
> COMPILE MODULES WHOSE CMI FILES ARE IN ANOTHER DIRECTORY EVEN WHEN
> SPECIFIED WITH -I
I DON'T THINK THERE IS A SIMPLE SOLUTION TO THIS ONE. THE NEW OCAMLBUILD
COPY ALL SOURCE FILE IN A NEW DIRECTORY BEFORE THE BUILD, SOMETHING
SIMILAR COULD BE DONE WITH A MAKEFILE.
>
> PROBLEM 2: OBJECT FILES MUST BE SPECIFIED IN DEPENDENCY ORDER TO BUILD
> THE
> FINAL BINARY (UNLIKE GCC). THIS MEANS I HAVE TO MANUALLY LIST THE
> FILES IN
> PROPER ORDER INSTEAD OF SIMPLY $(WILDCARD *.CMO). HOW CAN I GET THE
> DEPENDENCY INFORMATION AUTOMATICALLY?
MAKE IS TOO LIMITED TO CORRECT THIS ONE TOO, YOU COULD BUILD A GOOD
MAKEFILE FROM THE OUTPUT OF OCAMLDEPEND (WITH AN OTHER SOFTWARE), BUT
JUST LISTING SOURCE FILE IN THE CORRECT ORDER IS CERTAINLY SIMPLER (OR
YOU CAN USE OCAMLBUILD IN THE NEW 3.10 RELEASE).
> PROBLEM 3: I WANT TO SPECIFY A PUBLIC ALGEBRAIC TYPE. IF I PUT THE
> TYPE
> DECLARATION IN THE MLI FILE I CAN'T USE THE CONSTRUCTORS IN THE ML
> FILE...
IN OCAML, EACH DECLARATION IN A .MLI FILE MUST BE PRESENT IN THE
CORRESPONDING .ML FILE MAKING IT VISIBLE OUTSIDE OF THE .ML FILE. BUT
A .MLI IS NOT LIKE A .H IN C AND FUNCTION OR TYPE ARE DECLARED IN IT BUT
MUST BE DEFINED SOMEWHERE ELSE.
MATHIAS
.