From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 2CAC07ED7A for ; Tue, 11 Sep 2012 22:24:34 +0200 (CEST) Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of bobzhang1988@gmail.com) identity=pra; client-ip=74.125.83.54; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="bobzhang1988@gmail.com"; x-sender="bobzhang1988@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail1-smtp-roc.national.inria.fr: domain of bobzhang1988@gmail.com designates 74.125.83.54 as permitted sender) identity=mailfrom; client-ip=74.125.83.54; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="bobzhang1988@gmail.com"; x-sender="bobzhang1988@gmail.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-ee0-f54.google.com) identity=helo; client-ip=74.125.83.54; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="bobzhang1988@gmail.com"; x-sender="postmaster@mail-ee0-f54.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ar0BAIKdT1BKfVM2kGdsb2JhbABFqXeRWAgiAQEBAQkJDQcUBCOCIAEBAQQBAQEPAiQIARsSCgEBAwwGBQsNCQQSDwkDAgECAQ8CEQEFAQoSBg0BBQIBAQ4Qh1sBAw8EB5x1CQOMI4JzhVwKGScDClmIdAEFDIohY4YmA5QKgVWBFIoBgyo+hAg X-IronPort-AV: E=Sophos;i="4.80,407,1344204000"; d="scan'208";a="172749799" Received: from mail-ee0-f54.google.com ([74.125.83.54]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 11 Sep 2012 22:24:33 +0200 Received: by eeke52 with SMTP id e52so980545eek.27 for ; Tue, 11 Sep 2012 13:24:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:newsgroups:to:cc :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=9Z2jWXJKqw45/8egVs/u2fjO+h3uEZ5nFTYAmwytv9s=; b=vvjmsgehzpl/B914g081CZu9crumEZZAunKh5fuI+rjyHTCZzzPNH4NWzzh415m/1h WQKoMzQyXHDjwGe2PcTsYKc2T19KqkIgTL8ad/+bWm0xmeLk9vwjkyz9g5nK5MzIUimr Ig0nguTY/rUZ7gmT1/0Rc9SqeVtAEpj0LVvTfSHkuhTeKrpHhd5J3g8/qCKm6Q2XMc6+ bMYAFYSzw/h5ScnqpTpKsayshipQUIAfUXdy580NdHKViac0r6vsNB3zLHjOcQGlCEdx K5iyi2O5ytVsxs7qY1cgqGHyXVsg7LF0kNb3IgMZ5BrHE45tNkJEG3hQi6LttjApOeUX O1zw== Received: by 10.204.133.196 with SMTP id g4mr5428091bkt.89.1347395073112; Tue, 11 Sep 2012 13:24:33 -0700 (PDT) Received: from Hongbos-MacBook-Air.local ([91.143.127.68]) by mx.google.com with ESMTPS id n17sm10633799bks.6.2012.09.11.13.24.30 (version=SSLv3 cipher=OTHER); Tue, 11 Sep 2012 13:24:31 -0700 (PDT) Message-ID: <504F9DFD.1010204@gmail.com> Date: Tue, 11 Sep 2012 22:24:29 +0200 From: Hongbo Zhang User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:15.0) Gecko/20120907 Thunderbird/15.0.1 MIME-Version: 1.0 Newsgroups: gmane.comp.lang.caml.inria To: Gerd Stolpmann CC: Gerd Stolpmann , caml users References: <1347366433.3496.8@samsung> In-Reply-To: <1347366433.3496.8@samsung> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Caml-list] Re: AW: Re: working %.pp.ml target with ocamfind/ocamlbuild On 9/11/12 2: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 Well, IMHO, using a general purpose programming language with some combinators is *way more better* than a DSL, I used ocamlbuild to build a quite complex project: which includes bootstrapping, different preprocessing flags, nested directories, packing modules(byte code, native coce), (I even dynamically caculated the preprocess flags). The problem with ocamlbuild is its implementation, not the idea, the idea is pretty good. > >> >> 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 >> >> >