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=1.0 required=5.0 tests=AWL,SPF_NEUTRAL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id BB859BC69 for ; Wed, 7 Mar 2007 22:24:48 +0100 (CET) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.185]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l27LOmEJ026869 for ; Wed, 7 Mar 2007 22:24:48 +0100 Received: by nf-out-0910.google.com with SMTP id m19so325240nfc for ; Wed, 07 Mar 2007 13:24:47 -0800 (PST) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; b=HA4oZGw0/mhGxj6mqHazCELeqpR0M4uQeL68FR7r84D6/7PnDMwwiTXVrSHvp2UlX8g1Wy5ZhSgGxPSBhrXK6F82Q3eeMYmHfOWnndK7NH7fLsW6cafcd8qmwmwX1vZ1QyeRJKzhrTtfxB/SOz79oJ6ZjyDnRmrUIED/ik/Utqc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; b=aLkZrc7SYBMnmlHGd/zELRe6VxFFzegazq6x7qzRSPf59CkWVaFYpT6LXI9auvksTODjtYYO6Rc8jZpx4e2DGUYpwZfGMCelcyaqM2Hmw/A2n5i8q/5c+0rMD4S+cVMECwoRf5Jq1US2BZfCprPKHsm9Ae2ncD7/oohtyrPUyGk= Received: by 10.114.198.1 with SMTP id v1mr2346805waf.1173302686558; Wed, 07 Mar 2007 13:24:46 -0800 (PST) Received: by 10.115.108.16 with HTTP; Wed, 7 Mar 2007 13:24:46 -0800 (PST) Message-ID: <95513600703071324j3602604bw4d87a5dee3797c7f@mail.gmail.com> Date: Wed, 7 Mar 2007 22:24:46 +0100 From: "Olivier Andrieu" Sender: oandrieu@gmail.com To: "Jakob Lichtenberg" Subject: Re: [Caml-list] Dependencies and rebuilding Cc: caml-list@inria.fr, "Donn Terry" In-Reply-To: <43CD2D195487A448934920501C6EDB2303E342C2@WIN-MSG-21.wingroup.windeploy.ntdev.microsoft.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <43CD2D195487A448934920501C6EDB2303E342C2@WIN-MSG-21.wingroup.windeploy.ntdev.microsoft.com> X-Google-Sender-Auth: 561b40dbdce4b5c4 X-Miltered: at concorde with ID 45EF2DA0.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; andrieu:01 oandrieu:01 dependencies:01 rebuilding:01 externally:01 recompile:01 trivial:01 inlining:01 ocamlopt:01 cmx:01 compilation:01 cmx:01 wrote:01 lichtenberg:01 caml-list:01 On 3/7/07, 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? I'd say cross-module inlining of code ? This happens because ocamlopt finds the base.cmx file during the compilation of consumer. If you put your base module in a library and remove the .cmx file, consumer won't depend on the implementation of base, only on its interface. -- Olivier