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.1 required=5.0 tests=AWL,SPF_NEUTRAL autolearn=disabled version=3.1.3 Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id C4807BC69 for ; Mon, 30 Apr 2007 14:01:44 +0200 (CEST) Received: from wr-out-0506.google.com (wr-out-0506.google.com [64.233.184.237]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l3UC1fpF020909 for ; Mon, 30 Apr 2007 14:01:43 +0200 Received: by wr-out-0506.google.com with SMTP id l58so1488532wrl for ; Mon, 30 Apr 2007 05:01:41 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=f3ZwBDWpibY5SC8ylqbM051nGt8dIoRa6OtK7zr7HiuqpRa4ZX5aHkq4Wbme2vQg6D2ZThWiqSCr/qTD7jRi9+N4R1eZjs6epP1q+aaxSIxg3139YXmY5yyR1gRI/+46ABwtaE5vAOcEFaOW9duYegVRiS3mL67FY6wGzPz6qkA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=qwc6tZgwa7heRs+YhWtwpILKAfi2TGpQl8vGU+O1CqpX1P9Ro4JWhIR/P02BJwu0o/aGDxIUqDj67BBTep25CKnYLFU5LMNsJWxMfHMeyclpspAMFv/J4cZDM1GPmkKmp6aTEWIaIVVpmKkVgDJiaf2QLX0AuuKT/segl83pCeQ= Received: by 10.115.16.1 with SMTP id t1mr1966546wai.1177934500933; Mon, 30 Apr 2007 05:01:40 -0700 (PDT) Received: by 10.114.181.18 with HTTP; Mon, 30 Apr 2007 05:01:40 -0700 (PDT) Message-ID: Date: Mon, 30 Apr 2007 14:01:40 +0200 From: "Nicolas Pouillard" To: "Joel Reymont" Subject: Re: [Caml-list] ocamlbuild, camlp4 and the _tags file Cc: "Caml List" In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: X-j-chkmail-Score: MSGID : 4635DAA5.001 on discorde : j-chkmail score : X : 0/20 1 0.000 -> 1 X-Miltered: at discorde with ID 4635DAA5.001 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; camlp:01 camlp:01 lambda:01 cmxa:01 parsers:01 lib:01 cmo:01 lambda:01 cmo:01 foo:01 dynlink:01 dynlink:01 quot:98 quot:98 wrote:01 On 4/30/07, Joel Reymont wrote: > I see that ocamlbuild is being used to build camlp4 examples. > > I thought I would ask a few questions on the meaning of the different > tags since they are not described in my version of the ocamlbuild > user's guide and the presentation slides. > > >>> "apply_operator.ml" or "type_quotation.ml": camlp4rf, use_camlp4 > > The above is clear. > > >>> "lambda_quot.ml": camlp4rf, use_camlp4_full > > But what's the difference between use_camlp4_full and use_camlp4? use_camlp4_full put a dependency on camlp4fulllib.{cma,cmxa}. The camlp4fullib contains all the camlp4 modules including parsers, printers... Some modules are incompatible and then loading them together is only useful when using camlp4 as a library. > When should one be used vs the other? use_camlp4_lib most of the time. > >>> "test_macros.ml": pp(camlp4of ./macros.cmo) > >>> "lambda_test.ml": pp(camlp4of ./lambda_quot.cmo) > > Why are these special options needed? When should I use them? That's just examples, here macros.cmo and lambda_quot.cmo are camlp4 extensions. In your case you can do something like. "foo.ml": pp(camlp4o -filter map -filter fold) > >>> : camlp4of, use_camlp4_full, use_dynlink > > Why is dynlink used here? Since camlp4 use dynlink one needs it too in order to link a standalone program. -- Nicolas Pouillard