Re: [Caml-list] How to compile different implementations of the same lib

On Thu, 2005-12-01 at 18:03 +0100, Christophe Raffalli wrote:
> May be I still do not get the problem
Simple. Ocaml cheats. When you *compile* against a cmx
or cmi/cmx pair, Ocaml 'cheats' and lifts non-interface
information out of the cmx. This allows it to, for
example, inline functions by cheating and grabbing their
implementations from the cmx.
This 'cheating' is typesafe and transparent at the program
code level but NOT the compilation model level.
To enforce abstraction, you have to ensure the cmx is
not present when the dependent module is compiled,
this forces the generated code to use indirection
(closures, etc) -- marginally later binding at the
cost of some performance. Given how fast the Ocaml
compiler is it hardly seems worth bothering to me --
it's not as though you can link Ocaml code without
the compiler.
--
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net