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.7 required=5.0 tests=AWL,DNS_FROM_RFC_ABUSE, SPF_SOFTFAIL 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 55444BC69 for ; Wed, 7 Mar 2007 21:08:35 +0100 (CET) Received: from smtp.microsoft.com (smtp.microsoft.com [131.107.115.214]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l27K8XEl003319 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO) for ; Wed, 7 Mar 2007 21:08:34 +0100 Received: from TK5-EXHUB-C102.redmond.corp.microsoft.com (157.54.70.72) by TK5-EXGWY-E803.partners.extranet.microsoft.com (10.251.56.169) with Microsoft SMTP Server (TLS) id 8.0.685.24; Wed, 7 Mar 2007 12:08:32 -0800 Received: from win-imc-02.wingroup.windeploy.ntdev.microsoft.com (157.54.69.169) by TK5-EXHUB-C102.redmond.corp.microsoft.com (157.54.70.72) with Microsoft SMTP Server id 8.0.685.25; Wed, 7 Mar 2007 12:08:32 -0800 Received: from WIN-MSG-21.wingroup.windeploy.ntdev.microsoft.com ([157.54.62.25]) by win-imc-02.wingroup.windeploy.ntdev.microsoft.com with Microsoft SMTPSVC(6.0.3790.3953); Wed, 7 Mar 2007 12:08:31 -0800 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: Dependencies and rebuilding Date: Wed, 7 Mar 2007 12:07:33 -0800 Message-ID: <43CD2D195487A448934920501C6EDB2303E342C2@WIN-MSG-21.wingroup.windeploy.ntdev.microsoft.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Dependencies and rebuilding thread-index: Acdg9D5dv6ji7ledSCSq8pziceFWuA== From: Jakob Lichtenberg To: Cc: Donn Terry X-OriginalArrivalTime: 07 Mar 2007 20:08:31.0853 (UTC) FILETIME=[60F871D0:01C760F4] X-Miltered: at discorde with ID 45EF1BC1.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; dependencies:01 rebuilding:01 externally:01 recompile:01 trivial:01 ocamlopt:01 printf:01 printf:01 ocamlopt:01 cmx:01 cmx:01 notepad:01 lichtenberg:01 lichtenberg:01 functions:01 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? Example: =3D=3D=3D >type base.ml let base () =3D 2+8;; >ocamlopt -c base.ml >type consumer.ml let _ =3D Printf.printf "Base.base: %d" (Base.base());; >ocamlopt -c consumer.ml >ocamlopt base.cmx consumer.cmx -o app.exe >app.exe Base.base: 10 >notepad base.ml >type base.ml let base () =3D 2+9;; >ocamlopt -c base.ml >ocamlopt base.cmx consumer.cmx -o app.exe Files consumer.cmx and base.cmx make inconsistent assumptions over implementation Base >ocamlopt -c consumer.ml >ocamlopt base.cmx consumer.cmx -o app.exe >app.exe Base.base: 11 =3D=3D=3D Thanks, - Jakob Lichtenberg