From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id BE16ABC69; Thu, 8 Mar 2007 17:55:51 +0100 (CET) Received: from comtv.ru (comtv.ru [217.10.32.17]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l28Gtpsd028314; Thu, 8 Mar 2007 17:55:51 +0100 X-UCL: actv Received: from av1474.oops ([10.0.66.9] verified) by comtv.ru (CommuniGate Pro SMTP 4.1.8) with ESMTP-TLS id 26140507; Thu, 08 Mar 2007 19:55:50 +0300 Date: Thu, 8 Mar 2007 19:55:06 +0300 (MSK) From: malc X-X-Sender: malc@linmac.oyster.ru To: Alain Frisch Cc: Jakob Lichtenberg , caml-list@inria.fr, Donn Terry Subject: Re: [Caml-list] Dependencies and rebuilding In-Reply-To: <45EFB59F.2080902@inria.fr> Message-ID: References: <43CD2D195487A448934920501C6EDB2303E342C2@WIN-MSG-21.wingroup.windeploy.ntdev.microsoft.com> <45EFB59F.2080902@inria.fr> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Miltered: at discorde with ID 45F04017.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; malc:01 dependencies:01 rebuilding:01 frisch:01 externally:01 recompile:01 trivial:01 cmx:01 dependencies:01 cmi:01 cmx:01 compilation:01 inlining:01 2007,:98 vale:98 On Thu, 8 Mar 2007, Alain Frisch wrote: > Jakob Lichtenberg wrote: >> If I change the body of functions in a base library, but not the >> externally visible signature, I still have to recompile the consumers of >> the base library prior to linking the main application. While this is >> not a problem in the trivial case I'll show beneath, it may be a concern >> from a componentization and scalability point of view. Regular C code >> does not have this limitation. This e-mail to request why the design is >> as it is? > > A .cmx file basically contains information: > - for the linker, most importantly dependencies information (md5 of .cmi > and .cmx used to compile them); > - for the compilation of other units which refer to this unit: > cross-module optimization information (linker symbols for direct > function calls, inlining). That's not all, there's also information embedded to make direct calling possible: http://groups.google.com/group/fa.caml/msg/52264cef8f6da97f [..snip..] -- vale