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 mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by sympa.inria.fr (Postfix) with ESMTPS id 5471C7ED7A for ; Tue, 11 Sep 2012 14:50:26 +0200 (CEST) Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of wojciech.meyer@googlemail.com) identity=pra; client-ip=209.85.215.54; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="wojciech.meyer@googlemail.com"; x-sender="wojciech.meyer@googlemail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail1-smtp-roc.national.inria.fr: domain of wojciech.meyer@googlemail.com designates 209.85.215.54 as permitted sender) identity=mailfrom; client-ip=209.85.215.54; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="wojciech.meyer@googlemail.com"; x-sender="wojciech.meyer@googlemail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-lpp01m010-f54.google.com) identity=helo; client-ip=209.85.215.54; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="wojciech.meyer@googlemail.com"; x-sender="postmaster@mail-lpp01m010-f54.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ar0CAGQyT1DRVdc2k2dsb2JhbABFqXKRVggiAQEBAQkJCwkUBCOCIAEBAQQSAiwBASwLAQ8LCw0NISEBEgEFAQoSBhMJCRCHWwEDDwudAQkDimaEMAEFhUcKQAMKiU0Gii1jhiaUC4FVgRSKAYMqPoQH X-IronPort-AV: E=Sophos;i="4.80,404,1344204000"; d="scan'208";a="172681819" Received: from mail-lpp01m010-f54.google.com ([209.85.215.54]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 11 Sep 2012 14:50:25 +0200 Received: by lage12 with SMTP id e12so502442lag.27 for ; Tue, 11 Sep 2012 05:50:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=EsR+5+em2mPoaTLCv7hUTFSL0o1VcA6tvCBnbNxVcPg=; b=ydsYPmM9N5/O04HKfLTsgPoZjwt4K9Bqn2G9SBPvXCHizgZYsyF2qvVUbceLxV4yca Va84Q+NSoepm8dSCoc2ptIArVPQ7vE8gWDWypjdDuIl8APMp65Kq2isbDL7G5VEbgdxd OkayfXujzwXL93CsVYOq1DcBxyGf9vdqePtcSg3Fmg3x/sFk/l6s7IGzvA8EJYLQyBCe Z61j7MZi/OhzJehft6jCTNO5aKuW4pMWOK4ubgNHU0vPFBnsOcVORRPaCp/WEJMLASzu Goghn85N7QV6f41Q6R2Z64+tceGRzWsSxqTydeAvKDb0ifwMYXGlaNvyiRP6JfDr5B2V olxg== MIME-Version: 1.0 Received: by 10.152.110.101 with SMTP id hz5mr8493384lab.39.1347367824703; Tue, 11 Sep 2012 05:50:24 -0700 (PDT) Received: by 10.114.28.68 with HTTP; Tue, 11 Sep 2012 05:50:24 -0700 (PDT) In-Reply-To: <1347366433.3496.8@samsung> References: <1347366433.3496.8@samsung> Date: Tue, 11 Sep 2012 13:50:24 +0100 Message-ID: From: Wojciech Meyer To: Gerd Stolpmann Cc: Caml List Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: [Caml-list] Re: working %.pp.ml target with ocamfind/ocamlbuild Gerd, I agree omake is a high quality tool for non trivial builds, however it does not solve the same problems as ocamlbuild. The point of dicsussion is to improve ocamlbuild not to switch to the external tool. I will lament, because I used both and ocamlbuild have some clear advantages over omake (and some clear disadvantages too): - it's dead easy to build a single file, without constructing horrendous command line or adding an unneeded target - it's declarative, you don't want to construct tons of special variables and concatate them - it's part of our distribution - no additional dependencies, so if it's there, there is some reason, and if something it's not working properly we have to fix it Overall ocamlbuild is based on some nice ideas, whatever people would say. Not that I say that OMake is no good - in fact it's a very robust and excellent build system, and I recommend anyone who's got already bootstraping phases, lot of meta programming with unsual tools, portability problems etc.. Both however suffer from almost similar problem - OMake is a bit underused for the quality you get, where ocamlbuild is just underrated for the ideas it has. -- Wojciech On Tue, Sep 11, 2012 at 1:27 PM, Gerd Stolpmann wrote: > Am 10.09.2012 14:18:42 schrieb(en) bob zhang: >> >> Btw, there's something wrong with the rule "%.pp.ml", I don't remember >> >> exactly where it's, for your interest, you can have a look at >> >> https://bitbucket.org/HongboZhang/camlp4/src/e88f431db722/myocamlbuild.ml >> >> ocaml has a really really *high quality* compiler, but all the tools >> around >> it is not that satisfied, contribution is much harder than bug fixes :-( >> >> If you take a look at ICFP 12's paper about Shake, the idea is essentially >> the same as 'ocamlbuild', and the idea is cool, but the implementation of >> ocamlbuild is fragile and buggy. > > > And I wonder why ocamlbuild is actually used. There is a *high quality* > build tool for ocaml: omake. > > >> >> On Mon, Sep 10, 2012 at 2:08 PM, Hongbo Zhang >> wrote: >> >> > Greetings, >> > On 9/9/12 6:29 PM, Wojciech Meyer wrote: >> > >> >> Gabriel Scherer writes: >> >> >> >> This is useful for debugging purposes, and for some (minor) modes of >> >>> use of Camlp4. However, for most Camlp4 development, this has the >> >>> severe downside of losing the location information of the original >> >>> file, if I understand correctly. This means that you don't want to use >> >>> it as a transparent step towards compilation, but only in exceptional >> >>> situations where the developers will re-edit the output code. >> >>> >> >> >> >> I think I've to say I disagree it's not useful, when I'm developing a >> >> syntax extension on top of Camlp4 I really want to see the generated >> >> code. Moreover to understand some of the more complicated syntax >> >> extensions like type_conv, deriving, FoldGenerator I need to look at >> >> the >> >> expanded code to understand how to use it - last time I hit the same >> >> >> > Yes, it's damn useful not only for bootstrapping, but also for >> > developing >> > to locate type errors. But there's something wrong with Camlp4's >> > printer, >> > it has *4* printers in total, writing a printer for an Ast which has no >> > backend is totally useless. In my branch of camlp4, *I removed all those >> > 4 >> > printers and using tools/pprintast.ml* in ocaml's compiler source >> > tree(with some my own bug fixes), and it works very well. >> > Btw, are you in ICFP? we could have a talk about Camlp4 :-) >> > >> >> problem it was actually 'deriving-ocsigen' when I needed to implement >> >> my >> >> own Show module - it's just much faster to see what's being generated >> >> for the usual case, then trying to figure out from the recipe in the >> >> documentation. Otherwise for bootstrapping purposes, you might want to >> >> pre-generate some code too and put into the repository. >> >> >> >> -- >> >> Wojciech Meyer >> >> http://danmey.org >> >> >> >> >> > >> >> >> -- >> Regards >> -- Bob >> >> -- >> Caml-list mailing list. Subscription management and archives: >> https://sympa-roc.inria.fr/wws/info/caml-list >> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners >> Bug reports: http://caml.inria.fr/bin/caml-bugs >> >> > > -- > ------------------------------------------------------------ > Gerd Stolpmann, Darmstadt, Germany gerd@gerd-stolpmann.de > Creator of GODI and camlcity.org. > Contact details: http://www.camlcity.org/contact.html > Company homepage: http://www.gerd-stolpmann.de > ------------------------------------------------------------ > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa-roc.inria.fr/wws/info/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs >