From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by sympa.inria.fr (Postfix) with ESMTPS id 449857EE20 for ; Thu, 15 Nov 2012 23:04:59 +0100 (CET) Received-SPF: None (mail4-smtp-sop.national.inria.fr: no sender authenticity information available from domain of thelema314@gmail.com) identity=pra; client-ip=209.85.223.182; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="thelema314@gmail.com"; x-sender="thelema314@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail4-smtp-sop.national.inria.fr: domain of thelema314@gmail.com designates 209.85.223.182 as permitted sender) identity=mailfrom; client-ip=209.85.223.182; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="thelema314@gmail.com"; x-sender="thelema314@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail4-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-ie0-f182.google.com) identity=helo; client-ip=209.85.223.182; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="thelema314@gmail.com"; x-sender="postmaster@mail-ie0-f182.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtEBAAZmpVDRVd+2mGdsb2JhbABEwjoIIwEBAQEBCAkNBxQngh4BAQU4CAEbHAIDDAYFCw0JFg8JAwIBAgEREQEFARwTCAEBh3YBAw8DnkSMM4J4hHAKGScNWYh1AQUMjCWDBYMnA4hajSKFa4h3P4Qv X-IronPort-AV: E=Sophos;i="4.83,259,1352070000"; d="scan'208";a="162664790" Received: from mail-ie0-f182.google.com ([209.85.223.182]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 15 Nov 2012 23:04:58 +0100 Received: by mail-ie0-f182.google.com with SMTP id k10so4733513iea.27 for ; Thu, 15 Nov 2012 14:04:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=r7pIJCWi66Rn49kUcIS5F7m9AFP9GBdNPVxrzgXU9+s=; b=iU9a+2mdWGI6badfScVsu5QVZEqB6MVzxBpw2B53GWaLfp3S4ryb8ltVpBGyzONbls MRqwmvH2GBHoX26Eh/1jg281scdhwk/n5zjYC+XVOw7Y3laQlJ5Cx6pO8YXdngwUZI8A MKHKqiH1BSqj+QPHCM12WSCAP9gpZGNebmYdQZ2Exa7f9s3pZaZzd7V8kKyrSkxA9po3 bnriJUF5b2Gk1bDS+lwEMd2OO3uvbCbNYlQlkGjPp7PgFIp+3JAkYNv908alb1R49ZVq nlRBBaariEjXDPvFcAjw9RYTq1je1A1Zy3sBTTC+MpDEkm8dzgzdzVuR1/H1vVCsTWzB wPIg== Received: by 10.50.0.140 with SMTP id 12mr1282146ige.63.1353017097354; Thu, 15 Nov 2012 14:04:57 -0800 (PST) Received: from [35.9.140.71] ([35.9.140.71]) by mx.google.com with ESMTPS id v12sm5050377igv.3.2012.11.15.14.04.55 (version=SSLv3 cipher=OTHER); Thu, 15 Nov 2012 14:04:56 -0800 (PST) Message-ID: <50A56709.7080105@gmail.com> Date: Thu, 15 Nov 2012 17:04:57 -0500 From: Edgar Friendly User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20121026 Thunderbird/16.0.2 MIME-Version: 1.0 To: caml-list@inria.fr References: <1201410520.4155202.1353016124507.JavaMail.root@inria.fr> In-Reply-To: <1201410520.4155202.1353016124507.JavaMail.root@inria.fr> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Caml-list] About ocamlbuild On 11/15/2012 4:48 PM, Xavier Clerc wrote: >> 3 - Finally, I find the idea of tags good, for backward compatibility >> reasons (you do not have to change your code), but not enough. For >> instance, in haskell (and some compilers written in ocaml), you can >> add "tags" at the beginning of your files. You would start your >> ocaml files with comments such as: >> >> (* #OPTIONS -rectypes *) > Well, I find tags pretty convenient, and do not dislike the comment > approach. However, I am pretty sure I do not want the related information > to be scattered over multiple locations. It's exactly this reason that I'm strongly in favor of magic comments or pragmas or something in .ml files to do do this kind of thing. Splitting the data needed to compile a module into two parts: the module and a makefile (or _tags or OMakefile or whatever) seems a violation of your "multiple locations" policy. While I grant that some compilation options (whether to compile in debug/profiling/native mode, location of external libraries) should not be included in a source file, I'm strongly in favor of having the build system work out the details of dependencies (internal to project and external, installed in global location) and even what camlp4 to run based on the contents of the file itself and not elsewhere. E.