caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Separate compilation
@ 1995-12-19 14:34 Emmanuel Engel
  1995-12-20 17:33 ` Xavier Leroy
  0 siblings, 1 reply; 2+ messages in thread
From: Emmanuel Engel @ 1995-12-19 14:34 UTC (permalink / raw)
  To: caml-list


Je suis surpris par les dependance crees par csldep


************ main.ml *******************
let _ = Aux.v
****************************************

************** aux.mli *****************
val v : unit
****************************************

*************** aux.ml *****************
let v = ()
****************************************

csldep *.ml
aux.cmo : aux.cmi
aux.cmx : aux.cmi
main.cmo : aux.cmi
main.cmx : aux.cmx
                 ^????


Les dependances entre fichiers ne passent 
pas par l'interface (ie cmi) ?


Emmanuel Engel




^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Separate compilation
  1995-12-19 14:34 Separate compilation Emmanuel Engel
@ 1995-12-20 17:33 ` Xavier Leroy
  0 siblings, 0 replies; 2+ messages in thread
From: Xavier Leroy @ 1995-12-20 17:33 UTC (permalink / raw)
  To: Emmanuel Engel; +Cc: caml-list


[English summary: in dependency files generated by csldep,
 .cmx files depend on .cmx files because of cross-module optimizations.]

> Les dependances entre fichiers ne passent 
> pas par l'interface (ie cmi) ?

Soit A un module qui utilise le module B.

A.cmo ne depend que de l'interface de B, c'est-a-dire B.cmi, car cslc
n'a besoin, pour produire le code de A, que de connaitre l'interface
de B.

En revanche, cslopt utilise pour compiler A des informations
d'optimisation sur B (stockees dans B.cmx) qui sont specifiques a
l'implementation B.ml. Donc, A doit etre recompile a chaque fois que
B.cmx change, c'est-a-dire a chaque fois que l'implementation B.ml
change. Sinon, les modules du programme peuvent se retrouver optimises
de maniere incoherente, et une erreur se produit au moment du link.

De maniere plus generale, toute optimisation inter-module se traduit
par une perte de compilation separee: davantage de recompilation est
necessaire apres un changement. Dans le cas de Caml Special Light, je
pense que c'est tolerable en pratique car le compilateur natif cslopt
s'emploie de preference sur des projets deja relativement stables;
pour le developpement rapide, mieux vaut utiliser compilateur bytecode
cslc, qui lui offre le plus haut degre de compilation separee.

- Xavier Leroy





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1995-12-21 12:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1995-12-19 14:34 Separate compilation Emmanuel Engel
1995-12-20 17:33 ` Xavier Leroy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).