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 mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 890447FCCB for ; Sun, 12 Apr 2015 08:00:36 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of anil@recoil.org) identity=pra; client-ip=5.153.225.51; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="anil@recoil.org"; x-sender="anil@recoil.org"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of anil@recoil.org) identity=mailfrom; client-ip=5.153.225.51; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="anil@recoil.org"; x-sender="anil@recoil.org"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@bark.recoil.org) identity=helo; client-ip=5.153.225.51; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="anil@recoil.org"; x-sender="postmaster@bark.recoil.org"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AaBQCOCSpV/zPhmQVcgwxnR4MVySsCCIEiPBABAQEBAQEBfYQgAQEEI1EFEAsYAgImAgJXBhOIKgS1cJYvAQEBAQEFAQEBAQEBAQEagSGJC3+ESTMHMII4L4EWBYstj26HGI1UIoN8YoJDAQEB X-IPAS-Result: A0AaBQCOCSpV/zPhmQVcgwxnR4MVySsCCIEiPBABAQEBAQEBfYQgAQEEI1EFEAsYAgImAgJXBhOIKgS1cJYvAQEBAQEFAQEBAQEBAQEagSGJC3+ESTMHMII4L4EWBYstj26HGI1UIoN8YoJDAQEB X-IronPort-AV: E=Sophos;i="5.11,564,1422918000"; d="scan'208";a="133254945" Received: from bark.recoil.org ([5.153.225.51]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 12 Apr 2015 08:00:35 +0200 Received: from [192.168.2.106] (nusnet-195-10.dynip.nus.edu.sg [137.132.195.10]); by bark.recoil.org (OpenSMTPD) with ESMTPSA id 0b716942; TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO; Sun, 12 Apr 2015 07:00:33 +0100 (BST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\)) From: Anil Madhavapeddy In-Reply-To: <6C2BFE0C79F1491BAEB633BE70A6CE4D@erratique.ch> Date: Sun, 12 Apr 2015 14:00:24 +0800 Cc: =?utf-8?Q?Fran=C3=A7ois_Bobot?= , caml-list@inria.fr Content-Transfer-Encoding: quoted-printable Message-Id: <76269C2C-C277-4482-830D-719D006AE185@recoil.org> References: <2f9c74beafcf41f3ab30324fb1ece739@nleyten.com> <55257AAD.6030004@zoho.com> <5297cdaceccd6db2a60700bf686ccfb7@nleyten.com> <1428576994.22412.21.camel@e130.lan.sumadev.de> <46483E4AF51B46A3B3F91B3B5CFE8249@erratique.ch> <1428597912.4056.107.camel@thinkpad.lan.sumadev.de> <9CB3F43413964B9F93581B26AD6B391B@erratique.ch> <1428618115.4451.6.camel@zotac> <55278F9D.8030607@cea.fr> <6C2BFE0C79F1491BAEB633BE70A6CE4D@erratique.ch> To: =?utf-8?Q?Daniel_B=C3=BCnzli?= X-Mailer: Apple Mail (2.2098) Subject: Re: [Caml-list] META file standards for ppx extensions On 10 Apr 2015, at 17:42, Daniel B=C3=BCnzli = wrote: >=20 > In general it's better if the base compilation tools do not try to do too= much/output many files in one go so that build systems can 1) trivially in= fer their outputs 2) reasonably rely on fs modification times to equate the= m with concrete content modification 3) be really in charge of composing th= e build pipeline.=20=20 >=20 > It's all about having a *composable* toolchain vs. inflexible monolithic = black boxes.=20=20 >From a longer term perspective, the disentangling of preprocessing from com= pilation also makes it easier to do multi-stage preprocessing -- for instan= ce, to perform type-driven I/O generation separately from an Lwt extension.= The former affects dependency calculation, and the latter doesn't and is u= sually quite a local transformation within a module. Why should they be cl= umped together in the build system just because they happen to use the same= ppx/camlp4 mechanism? Those examples aren't multistage yet, but the lines between MetaCaml, Camlp= 4, and (a hypothetical) OCaml macro system are pretty blurred. OCaml is on= e of the few languages with a really good story for a statically typed proc= essing pipeline, and it would be a great pity if build systems become the b= locker for experimenting with them easily... -Anil=