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 9CF3E7FACD for ; Thu, 18 Sep 2014 23:36:52 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of yminsky@janestreet.com) identity=pra; client-ip=38.105.200.112; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yminsky@janestreet.com"; x-sender="yminsky@janestreet.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of yminsky@janestreet.com designates 38.105.200.112 as permitted sender) identity=mailfrom; client-ip=38.105.200.112; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yminsky@janestreet.com"; x-sender="yminsky@janestreet.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mxout1.mail.janestreet.com) identity=helo; client-ip=38.105.200.112; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yminsky@janestreet.com"; x-sender="postmaster@mxout1.mail.janestreet.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvcBAFxPG1QmachwnGdsb2JhbABgg2BXBIJ8tQuRQIdNAYEDCBYBEQEBAQEBBhYJPoQDAQEBAwESER0BASwEBwEECwsLDQICCR0CAiEBEgEFAQoSBhMSEIgIAwkIAwqfdGuKOHiFAgEFiX4DCocsAREGCoEiiGmDNYF6MweCeIFThRIFkHOEd4IQgWCFaYc9hFAYKYUrUIJKAQEB X-IPAS-Result: AvcBAFxPG1QmachwnGdsb2JhbABgg2BXBIJ8tQuRQIdNAYEDCBYBEQEBAQEBBhYJPoQDAQEBAwESER0BASwEBwEECwsLDQICCR0CAiEBEgEFAQoSBhMSEIgIAwkIAwqfdGuKOHiFAgEFiX4DCocsAREGCoEiiGmDNYF6MweCeIFThRIFkHOEd4IQgWCFaYc9hFAYKYUrUIJKAQEB X-IronPort-AV: E=Sophos;i="5.04,550,1406584800"; d="scan'208";a="96508795" Received: from mxout1.mail.janestreet.com ([38.105.200.112]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 18 Sep 2014 23:36:51 +0200 Received: from tot-smtp.delacy.com ([172.27.22.15] helo=tot-smtp) by mxout1.mail.janestreet.com with esmtps (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) (Exim 4.82) (envelope-from ) id 1XUjNi-0003iz-GX for caml-list@inria.fr; Thu, 18 Sep 2014 17:36:50 -0400 Received: from [172.27.229.230] (helo=mxgoog1.mail.janestreet.com) by tot-smtp with esmtps (UNKNOWN:AES256-GCM-SHA384:256) (Exim 4.72) (envelope-from ) id 1XUjNf-0005dW-DV for caml-list@inria.fr; Thu, 18 Sep 2014 17:36:47 -0400 Received: from mail-lb0-f182.google.com ([209.85.217.182]) by mxgoog1.mail.janestreet.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.72) (envelope-from ) id 1XUjNf-0003LL-7E for caml-list@inria.fr; Thu, 18 Sep 2014 17:36:47 -0400 Received: by mail-lb0-f182.google.com with SMTP id u10so2029952lbd.13 for ; Thu, 18 Sep 2014 14:36:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=k4HZ/btoigbGPNeiiGBb0CaNl0ZEr0YmwpIr8SFK9y0=; b=A0+UY0aKOh+U5R3N/c9uzaNaboUe8Vfb+RTlGswPGUmU/SDf8sPK3yaw0Wuiw0mB7H LIf11iMQH5OPBwOqicdfnqsv3jPBrnk6KOCV0gqoGeMCww/pIR9l+IDpRN3I9rnKBaYL pQdp6KIUSxOQVR7ZVnCWS8AmiZzPTLF7NW/cY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=k4HZ/btoigbGPNeiiGBb0CaNl0ZEr0YmwpIr8SFK9y0=; b=iLh/ozrSoHGX6r+OZAX0I4d6zEr/FWgzAiIJyooW4W2frkqd978CtpfIkBsUCD0M8p PmPzJhZQHV50h6AONPLJ13cq447sidPBik4qiPkqxfU0009r35zvMFk7Vw+7nISpItpB wrytLCOvi0h5i4cSUMXISqIwsT/CFm6eI+zJW4WLQ9Tl5D8xtkO1whmiRqECLdT9PKLz DzGnyo9rEknDBG0YabzQexSa61KIkfgiZ6Oeg3LRM3ITqwTleu3tm2YjGpqQpjoOc8ee sZ60inqFQ2INHN2Kp/5JrYjhC9cTfX5GiFi2qIU+/A93exdmnzhpfvOvNhdXVZfgk8jL vUWA== X-Gm-Message-State: ALoCoQnEi9vD3YaG3mVEh6aqtG0jDbL0FM8pKI5k/JoictbxeR2NjqDG4sKwCCiFI/QD1bG0VK++jAZyiJ+Nm36mpB7otnN9NZq8asWblZylIepGB0qmpgbEZQ3rVQbCVXlEhU+HZNHH X-Received: by 10.112.54.135 with SMTP id j7mr2209595lbp.51.1411076206109; Thu, 18 Sep 2014 14:36:46 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.112.54.135 with SMTP id j7mr2209588lbp.51.1411076206024; Thu, 18 Sep 2014 14:36:46 -0700 (PDT) Received: by 10.112.56.136 with HTTP; Thu, 18 Sep 2014 14:36:45 -0700 (PDT) In-Reply-To: <353DB638-1E30-40B6-BE5D-EA4479E009FB@recoil.org> References: <5410522E.3050207@inria.fr> <1410359012.3003.34.camel@thinkpad> <54106B6D.4040607@gmail.com> <5416EAF8.9050800@glondu.net> <353DB638-1E30-40B6-BE5D-EA4479E009FB@recoil.org> Date: Thu, 18 Sep 2014 17:36:45 -0400 Message-ID: From: Yaron Minsky To: Anil Madhavapeddy Cc: Yotam Barnoy , Ocaml Mailing List Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Caml-list] One build system to rule them all? On Thu, Sep 18, 2014 at 5:21 PM, Anil Madhavapeddy wrote: > On 18 Sep 2014, at 22:15, Yotam Barnoy wrote: > >> BTW Anil: is assemblage supposed to be an entire build toolchain, or is = it only supposed to write makefiles (as the description in the readme state= s)? > > The README in Assemblage is accurate: > https://github.com/samoht/assemblage/blob/master/README.md > >> The library can be used to describe OCaml projects with static dependenc= ies. >> >> [...] >> >> A projects description consists of a list of libraries, binaries and/or = toplevels. Each containing a list of compilation units with precise (and st= atic) dependency relationships. >> >> Using a project description, the tools can generate: >> >> =E2=80=A2 a .merlin to help edit the project; >> =E2=80=A2 a Makefile to build the project; >> =E2=80=A2 a .install to install the project; and >> =E2=80=A2 a META file to use the project. > > While none currently exist, other tools could use the same > description API to generate other targets (such as OMake or Jenga) > files. This is best done after the existing APIs stabilise, which > is ongoing. Generating Jenga rules or OMake rules I think is note quite the right approach. That's because Jenga and OMake both use general purpose programming languages for specifying builds, and I think you'll get bad behavior if you try to treat that language as a compilation target. For Jenga, I think it's better to write a Jenga plug-in for reading Assemblage files. It has the same effect, but is an easier and more typeful programming experience than spitting out a bunch of OCaml AST. We already have a toy plugin for Ninja build rules, and I believe others could be added pretty naturally. Shake, for what it's worth, takes a similar approach (and has a Ninja plugin too), and I think it works well there also. y > best, > Anil > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs