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.9 required=5.0 tests=DNS_FROM_RFC_ABUSE, 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 AB5F5BB83 for ; Wed, 13 Sep 2006 18:17:58 +0200 (CEST) Received: from nz-out-0102.google.com (nz-out-0102.google.com [64.233.162.193]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id k8DGHv56020417 for ; Wed, 13 Sep 2006 18:17:58 +0200 Received: by nz-out-0102.google.com with SMTP id m22so839777nzf for ; Wed, 13 Sep 2006 09:17:57 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=mQs7BrwozeMoE+CjWjVPI4ptTDw6ASuuV59YOPKA3znxiwRDKM85UTC1xeNmZbdi9LxNZWMHX4G8kqHzc+W3Z5e54Mi5MyNPOi2la/r5zEKXEwymdaUv/bqyPspEbu2CLGmoyvnDMcPoPrlxP1y2DM/baNIjNQ+5RPc0847lL/k= Received: by 10.35.69.11 with SMTP id w11mr13259578pyk; Wed, 13 Sep 2006 09:17:57 -0700 (PDT) Received: by 10.35.42.6 with HTTP; Wed, 13 Sep 2006 09:17:56 -0700 (PDT) Message-ID: Date: Wed, 13 Sep 2006 18:17:56 +0200 From: "Nicolas Pouillard" To: "Hendrik Tews" Subject: Re: [Caml-list] 3.09.3 release candidate 2 Cc: "caml users" In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <0A29CC70-FA05-432A-9DF5-8B98F6E573F3@inria.fr> <4E2C1762-63F0-4540-8639-056C1C86528A@inria.fr> <1158161553.6133.236.camel@rosella.wigram> X-j-chkmail-Score: MSGID : 45082F35.001 on concorde : j-chkmail score : X : 0/20 1 X-Miltered: at concorde with ID 45082F35.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; hendrik:01 tews:01 tews:01 cmo:01 gramlib:01 camlp:01 cmxa:01 plexer:01 cmx:01 cmo:01 cmi:01 cmx:01 camlp:01 bytecode:01 grepping:01 On 9/13/06, Hendrik Tews wrote: > > > I do not understand why you do need .cmo files when you have a library > > (gramlib.cma or camlp4.cma) that includes these modules (note that .a > > and .cmxa are also available for native linking). > > But with this line of reasoning, plexer.{o,cmx} should not be > installed either, shouln't it? Yes, but if I remember correctly it's you that request for these files to be installed? So in order to be consistent either one do not expose at all the content of a library or one install all components (.cmo, .cmi, .cmx, .o). I tend to prefer the first one. > > because these are *camlp4* modules, camlp4 loads bytecode > (only) dynamically from a single cmo file (only). > > No, for me it was like that: > - first I didn't know, there is library with these modules > (how to find out what library contains a given module without > grepping through the build log?) Yes not se easy, documentation job... > - linking gramlib does not work, because the module is not > explicitely referenced (only during runtime the program does a > dynlink on something else that needs the given module) > I could fix that with adding an artificial reference like > > module XXX = Plexer > Yes it's artificial, you can also use -linkall. > > (I could still imagine some camlp4 application szenario, where > you need to use -linkall, but don't want to link all of > gramlib.cma. Then you would need the cmo itself, right? However, > this was not the case in my application.) Yes but it's a choice made by the library designer. -- Nicolas Pouillard