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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 51EE67F75C for ; Thu, 11 Sep 2014 01:20:44 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=pra; client-ip=212.227.126.130; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=mailfrom; client-ip=212.227.126.130; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mout.kundenserver.de) identity=helo; client-ip=212.227.126.130; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="postmaster@mout.kundenserver.de"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkcBADDcEFTU436ClWdsb2JhbABgg2CDU8dCBodRAYETFhABAQEBBw0JCRIshAQBBSMyJBALQgICVwYTCYg9CaoAlT0BF4lkhREyJgeCOA8yEoFBBYYdi2WDd4hihV8FkVlqAYEFgUkBAQE X-IPAS-Result: AkcBADDcEFTU436ClWdsb2JhbABgg2CDU8dCBodRAYETFhABAQEBBw0JCRIshAQBBSMyJBALQgICVwYTCYg9CaoAlT0BF4lkhREyJgeCOA8yEoFBBYYdi2WDd4hihV8FkVlqAYEFgUkBAQE X-IronPort-AV: E=Sophos;i="5.04,502,1406584800"; d="asc'?scan'208";a="78496112" Received: from mout.kundenserver.de ([212.227.126.130]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 11 Sep 2014 01:20:43 +0200 Received: from office1.lan.sumadev.de (dslb-088-068-067-138.088.068.pools.vodafone-ip.de [88.68.67.138]) by mrelayeu.kundenserver.de (node=mreue001) with ESMTP (Nemesis) id 0M8u2m-1XdygI0Kei-00C6DP; Thu, 11 Sep 2014 01:20:42 +0200 Received: from [192.168.10.103] (ip-88-153-134-220.hsi04.unitymediagroup.de [88.153.134.220]) by office1.lan.sumadev.de (Postfix) with ESMTPSA id 62C34DC270; Thu, 11 Sep 2014 01:20:41 +0200 (CEST) Message-ID: <1410391236.2619.34.camel@zotac> From: Gerd Stolpmann To: Sebastien Mondet Cc: Ocaml Mailing List Date: Thu, 11 Sep 2014 01:20:36 +0200 In-Reply-To: References: <5410522E.3050207@inria.fr> <1410359012.3003.34.camel@thinkpad> <54106B6D.4040607@gmail.com> Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-6EK7u+8gtO6/4+wN/YIU" X-Mailer: Evolution 3.10.4-0ubuntu1 Mime-Version: 1.0 X-Provags-ID: V02:K0:xeq+uylqM9iY48WrGqCsfDlq2pTEmWlCPJZnmAPgW35 xfihZEGEj4joRuVSqJnWXwVjr5Qoo+7mmF8mG7mDqUGhWSjxdJ C2sHuciWgzkLee/I4yJmS5Mjamg2ZGdLgcKHV0sTu6czWAOQUN FCb/6gE6QIxpOcnaRDTK/IyhM/zw4EIrJ8XsbwgzMOGJ7rzmE9 MtyqgecZ4VCJLrfcYkZD7ElFC/l2VOZ8ml8zmaLxEdBScvOnOD ExbzVhO87gH5AQWUMUcBDB8Ve1hLXpVW8DIqUXdyzs+r9laerM 9PU7ootCMsFbrBOwkjEg2Iuf9bw6scYskB6Aid46xDwpEnzbo+ hsap6d9hhHGt7mt1q/qKZl7lvVQOH8A2fIguQMEv5 X-UI-Out-Filterresults: notjunk:1; Subject: Re: [Caml-list] One build system to rule them all? --=-6EK7u+8gtO6/4+wN/YIU Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Am Mittwoch, den 10.09.2014, 15:56 -0400 schrieb Sebastien Mondet: >=20 > - omake did that with yet another obscure and weird language (I guess > the goal was to "look" like `make` but with even more broken string > escaping). omake has at least a working, powerful and quite clean model of dependencies, and the build rules for the supported languages (like OCaml) are read from OMakefiles and are not hard-coded. There was some excellent analysis how to achieve this. I also think that the omake language is a bit obscure as language. It's a dynamic functional language that tries to do too much; you can run code as functions, as statements, and as commands, and all these three forms use a slightly different syntax (I guess that's why you complain about broken string escaping - it is sometimes confusing which syntactical rules are applicable at a certain point in the code). I'd love when this part would be dropped, and I could develop all the helper functionality for a build directly in OCaml, enhanced by syntax extensions for running shell commands and for entering build rules into the dependency tree. E.g. you could have: let variable =3D ... let do_something() =3D ... <:make< file_to_create: file_dep1 file_dep2 ./build_tool.sh $(variable) $(do_something()) >> just to illustrate the idea of mixing several notations in the same file. Every OMakefile could e.g. be understood as functor that takes an environment with build rules and returns a new, extended environment. Finally everything is combined and executed. (Too bad that I don't have more time to work on something like this.) Gerd > - ocamlbuild and jenga picked the right language. >=20 > - ocamlbuild's API is very limited, there is not even a clear way > to replace all the crazy small files required everywhere (_tags, > mllib, ...) with function calls within a myocamlbuild.ml plugin. It is > also painfully slow. >=20 > - Jenga is not for "normal" projects. It takes half-an-hour to > build jenga itself, and it's dependency tree is not very portable. The > API is very convoluted even for simple projects. >=20 >=20 > Look at https://github.com/samoht/assemblage/ certainly going to in > the right direction. >=20 >=20 >=20 >=20 >=20 >=20=20 > --=20 > Peter Zotov >=20=20=20=20=20=20=20=20=20 >=20=20=20=20=20=20=20=20=20 >=20=20=20=20=20=20=20=20=20 >=20 >=20 --=20 ------------------------------------------------------------ Gerd Stolpmann, Darmstadt, Germany gerd@gerd-stolpmann.de My OCaml site: http://www.camlcity.org Contact details: http://www.camlcity.org/contact.html Company homepage: http://www.gerd-stolpmann.de ------------------------------------------------------------ --=-6EK7u+8gtO6/4+wN/YIU Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJUENzEAAoJEAaM4b9ZLB5TDfQH/R3zHWvnoXa2K8Genaxul6KE E/xv+lFkPleakdyfGAemoMop+3+mDQ/UCsk5+7IphYvOKtC/x3Lj+k28TOQd/KTL iN1hyf+xNmSC9zUq5pgulpENqAdh8x+Z04voFTXUdlevXFAe/JcJo+3XNPqBaAPz 9cm5kZW+C67juqALX6IDKxaFKA0gK5TESR6xebFGmMi0chbCc9KcdIZyUya3c9L0 XPmfOtoaFfvYDK+08sAghr3irRYzQPvoINPWicPcAoMZyuLzNixApW5YcGlzlL/N DBvHFQT85DEQMNGeitFr9DxcK+PPyovh1qr2Y7JU8OaWy8UxaVMCkqlpjDllv5c= =0TpX -----END PGP SIGNATURE----- --=-6EK7u+8gtO6/4+wN/YIU--