From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 8089F7ED7A for ; Tue, 11 Sep 2012 15:41:57 +0200 (CEST) Received-SPF: None (mail4-smtp-sop.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=pra; client-ip=212.227.17.8; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail4-smtp-sop.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=mailfrom; client-ip=212.227.17.8; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: Pass (mail4-smtp-sop.national.inria.fr: domain of postmaster@moutng.kundenserver.de designates 212.227.17.8 as permitted sender) identity=helo; client-ip=212.227.17.8; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="postmaster@moutng.kundenserver.de"; x-conformance=sidf_compatible; x-record-type="v=spf1" X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AugBABc/T1DU4xEIk2dsb2JhbABFqXKRXiIBAQEBCQkLCRQDJIIgAQEEATo0EB4QDUIbCRIGEwkJh2wDCQoHmhOYFAMKiVMUihljhiYDjUqGPoJpigGHcA X-IronPort-AV: E=Sophos;i="4.80,404,1344204000"; d="scan'208";a="155347010" Received: from moutng.kundenserver.de ([212.227.17.8]) by mail4-smtp-sop.national.inria.fr with ESMTP; 11 Sep 2012 15:41:56 +0200 Received: from office1.lan.sumadev.de (dslb-094-219-216-191.pools.arcor-ip.net [94.219.216.191]) by mrelayeu.kundenserver.de (node=mreu0) with ESMTP (Nemesis) id 0MKuxg-1TBQiy18G8-00014a; Tue, 11 Sep 2012 15:41:56 +0200 Received: from samsung (ip-176-199-33-11.unitymediagroup.de [176.199.33.11]) by office1.lan.sumadev.de (Postfix) with ESMTPSA id D51DDC00D1 for ; Tue, 11 Sep 2012 15:41:55 +0200 (CEST) Date: Tue, 11 Sep 2012 15:41:56 +0200 From: Gerd Stolpmann Reply-To: Gerd Stolpmann To: Caml List In-Reply-To: X-Mailer: Balsa 2.4.11 Message-Id: <1347370916.3496.10@samsung> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; DelSp=Yes; Format=Flowed Content-Disposition: inline Content-Transfer-Encoding: quoted-printable X-Provags-ID: V02:K0:0XlbN7XGZ/ZYmvNUCDC3AE8lg2MW8kt38aakPFqcDeC OtNa0cgRZJg08AgAWhrwzXWzRHw4wqx/o6AdgYXoqV+fsCZ7qM dYOG8x1iY3gmO5u3S9cXaNlnIYEst7ElYFV2Qt+gCMAYW0yuxi aa61gBy6Or51AEWe6lRV3dPpwwBXHzIkKvP6jqMWtOGzQ4mXE0 Foxvs4/vv/3LZNBBbcqyutBKJc/0b3knd29qxI3doxYBY7+g34 0iKiAe7jEdGxpb91gvJICSuxvMqzH8VYwCTlObITdHya5+2jhX t/eRjHMO01y/IuW+Nm8ebgIaMvZev4wEo40XG5bssYnN99VJpY iO5jYZNzNvuPBOTkvz7M= Subject: AW: [Caml-list] Re: working %.pp.ml target with ocamfind/ocamlbuild Am 11.09.2012 14:50:24 schrieb(en) Wojciech Meyer: > Gerd, >=20 > 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. Well, I don't want to stop you fixing ocamlbuild. My point is rather=20=20 that users sometimes don't recognize the point of complexity when=20=20 ocamlbuild is no longer the right utility, and I just want to point out=20= =20 that there is an alternative tool. > I will lament, because I used both and ocamlbuild have some clear > advantages over omake (and some clear disadvantages too): >=20 > - it's dead easy to build a single file, without constructing > horrendous command line or adding an unneeded target Come on, this is not a fair critique. Have you ever started a fresh=20=20 omake project? It's really short: .DEFAULT: $(OCamlProgram put_here_the_name_of_your_program, module1=20=20 module2 ...) > - it's declarative, you don't want to construct tons of special > variables and concatate them You can have pattern rules in omake, and I think they are a full=20=20 replacement for tags. > - 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 Right, being part of the distribution is the advantage of ocamlbuild. > 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.. I'd recomment it already when the alternative is to write ocamlbuild=20=20 plugins (which are the biggest error of ocamlbuild - ocaml is just not=20= =20 the right language to modify the behavior of builds). > 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. ocamlbuild certainly has some nice ideas, but I'd overall say that it=20=20 jumps too short. It's ok for student projects, and I guess this is the=20= =20 main justification for having it in the distribution. It's easier than=20= =20 traditional Makefiles. What's missing is that you cannot easily modify=20= =20 existing behavior, and to my mind, plugins do not use the right=20=20 abstractions. A one-liner in omake's DSL (which is actually a nice=20=20 dynamically-typed functional language) turns into a lengthy phrase. Well, there are also things I don't like in omake (e.g. environments=20=20 are powerful but also difficult to debug). But so far it is the clear=20=20 winner for me, mostly because it has a good DSL which is more adequate=20= =20 than Gerd > -- > Wojciech >=20 > On Tue, Sep 11, 2012 at 1:27 PM, Gerd Stolpmann=20=20 > 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=20=20 > remember > >> > >> exactly where it's, for your interest, you can have a look at > >> > >>=20=20 > https://bitbucket.org/HongboZhang/camlp4/src/e88f431db722/myocamlbuild.ml > >> > >> ocaml has a really really *high quality* compiler, but all the=20=20 > tools > >> around > >> it is not that satisfied, contribution is much harder than bug=20=20 > fixes :-( > >> > >> If you take a look at ICFP 12's paper about Shake, the idea is=20=20 > essentially > >> the same as 'ocamlbuild', and the idea is cool, but the=20=20 > implementation of > >> ocamlbuild is fragile and buggy. > > > > > > And I wonder why ocamlbuild is actually used. There is a *high=20=20 > 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)=20=20 > modes of > >> >>> use of Camlp4. However, for most Camlp4 development, this has=20= =20 > the > >> >>> severe downside of losing the location information of the=20=20 > original > >> >>> file, if I understand correctly. This means that you don't=20=20 > want to use > >> >>> it as a transparent step towards compilation, but only in=20=20 > 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=20=20 > developing a > >> >> syntax extension on top of Camlp4 I really want to see the=20=20 > generated > >> >> code. Moreover to understand some of the more complicated syntax > >> >> extensions like type_conv, deriving, FoldGenerator I need to=20=20 > look at > >> >> the > >> >> expanded code to understand how to use it - last time I hit the=20= =20 > 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=20= =20 > has no > >> > backend is totally useless. In my branch of camlp4, *I removed=20=20 > 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=20=20 > implement > >> >> my > >> >> own Show module - it's just much faster to see what's being=20=20 > generated > >> >> for the usual case, then trying to figure out from the recipe=20=20 > in the > >> >> documentation. Otherwise for bootstrapping purposes, you might=20= =20 > 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 > > >=20 > -- > 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 >=20 >=20 >=20 --=20 ------------------------------------------------------------ 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 ------------------------------------------------------------=