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 86BDD7F75C for ; Fri, 12 Sep 2014 20:49:30 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of yminsky@janestreet.com) identity=pra; client-ip=38.105.200.229; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="yminsky@janestreet.com"; x-sender="yminsky@janestreet.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of yminsky@janestreet.com designates 38.105.200.229 as permitted sender) identity=mailfrom; client-ip=38.105.200.229; receiver=mail3-smtp-sop.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 (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mxout3.mail.janestreet.com) identity=helo; client-ip=38.105.200.229; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="yminsky@janestreet.com"; x-sender="postmaster@mxout3.mail.janestreet.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4BAPs+E1QmacjlnGdsb2JhbABfg2BXBIJ4xX+GelQBgQgIFhABAQEBAQYWCT6EBAEBBA4EER0BASMUAQ8LCw0CAiYCAiEBEgEFAQ4BDQYTGweIDAMRAwqbbGuKOHiFAgEFiXMNhm0BEQIECoEiiFSDIIItB4J5gVOWCYR0ghCHR4c6hEwYKYUuUIJPAQEB X-IPAS-Result: Am4BAPs+E1QmacjlnGdsb2JhbABfg2BXBIJ4xX+GelQBgQgIFhABAQEBAQYWCT6EBAEBBA4EER0BASMUAQ8LCw0CAiYCAiEBEgEFAQ4BDQYTGweIDAMRAwqbbGuKOHiFAgEFiXMNhm0BEQIECoEiiFSDIIItB4J5gVOWCYR0ghCHR4c6hEwYKYUuUIJPAQEB X-IronPort-AV: E=Sophos;i="5.04,514,1406584800"; d="scan'208";a="78774024" Received: from mxout3.mail.janestreet.com ([38.105.200.229]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 12 Sep 2014 20:49:28 +0200 Received: from tot-oib-smtp1 ([172.27.22.15] helo=tot-smtp) by mxout3.mail.janestreet.com with esmtps (UNKNOWN:DHE-RSA-AES256-GCM-SHA384:256) (Exim 4.82) (envelope-from ) id 1XSVuP-0005lm-KQ for caml-list@inria.fr; Fri, 12 Sep 2014 14:49:25 -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 1XSVuP-0004VV-Gh for caml-list@inria.fr; Fri, 12 Sep 2014 14:49:25 -0400 Received: from mail-lb0-f178.google.com ([209.85.217.178]) by mxgoog1.mail.janestreet.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.72) (envelope-from ) id 1XSVuP-0005BX-9u for caml-list@inria.fr; Fri, 12 Sep 2014 14:49:25 -0400 Received: by mail-lb0-f178.google.com with SMTP id c11so1454068lbj.9 for ; Fri, 12 Sep 2014 11:49:24 -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; bh=IuQbGS21UjifXP+cLTLHJmnxmsh9ABrmmsHnsKzomfg=; b=d8uWeCNqUvJHbH6ejry61NtbD1zjabk+EHk2ryEv2QwCbo9D5qdJ/s8Kbx7e/iaBuC aA2JPem1acQqxwFquVHhtoAOBtLS/e5a054mg6mn3TR0B1zACoUfFYy4mC2wIWqnr539 GkG4UStfDsmIONOa49zn7IpxXkiWUEYUeXObE= 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; bh=IuQbGS21UjifXP+cLTLHJmnxmsh9ABrmmsHnsKzomfg=; b=Yr83sf7OmaLHVAxiY+H2VQOKdQWb/7ayMNb17BrUbWvqJw1cHMKntYBQqNe35UOEFE 97C/SjmoSV2Fr9zJUs0eDOS3aYnmUzgjCOVSXgmpqj2x3Qu4+GPIf67n/KXcHrZ4Ulh2 934Jlc8Ch2+hOPUVZyV6G1XYy8el5Zn8Do/dyQJ+bSpNsvIgpqHZz9vixfV5MZo90fPy XsDAskxbZ+ibmyHeu5YuiFBGzQpQOAGzG44J8nJAO9SReKP/KG2/uwNDOLOxjHjfnnvZ 8Wkq0u8LOd3kdPAiZ+5+57kapwgBDWokUxJ5HHva9OFJQ440+3zy7hlgC1Vr2Ll2pRQr eR1Q== X-Gm-Message-State: ALoCoQnMdloi4JNWCrC8K7VZNFZVPVoqpzDljJFP/557jMX2ySrHdzZh9C71a/6Fy924IHE7nqgiV2r8Z5BHhfjBxiDfHhXwHAWz49RQJEBJFoxU83rR9DhW1azBXDpJLvutSpveGTGS X-Received: by 10.152.28.230 with SMTP id e6mr11173034lah.62.1410547764188; Fri, 12 Sep 2014 11:49:24 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.152.28.230 with SMTP id e6mr11173018lah.62.1410547764087; Fri, 12 Sep 2014 11:49:24 -0700 (PDT) Received: by 10.112.56.136 with HTTP; Fri, 12 Sep 2014 11:49:23 -0700 (PDT) In-Reply-To: References: <5410522E.3050207@inria.fr> <1410359012.3003.34.camel@thinkpad> <54106B6D.4040607@gmail.com> <54115517.9020209@inria.fr> Date: Fri, 12 Sep 2014 14:49:23 -0400 Message-ID: From: Yaron Minsky To: Anil Madhavapeddy Cc: Yotam Barnoy , Ocaml Mailing List Content-Type: text/plain; charset=UTF-8 Subject: Re: [Caml-list] One build system to rule them all? Jenga, as I said, isn't currently ready for wide use. But I do think it's a very promising tool. A few notes: - Easy vs Sophisticated We think Jenga provides a pretty good balance between easy and sophisticated. Even though its core is quite powerful and so not trivial to use, it is also amenable to using with other, simpler build-declaration systems. We ourselves use a simple s-expression config format for specifying individual libraries, and there has been some talk of integrating Assemblage into Jenga eventually as another such simple DSL. We've even done some work making Jenga compile from Ninja build descriptions. - Bootstrapping One concern with Jenga is boot-strapping, or other ways of exporting packages to be built where Jenga itself is not available. We have a pretty good solution to this in flight, and after talking with Neil Mitchell, he's going to try the same trick out with Shake. The idea is to be able to generate makefiles that can be used as part of a package. Systems like Jenga and Shake do well because they have rich, monadic languages for expressing complex dependencies that are discovered during a build. But we can use Jenga to do enough of the build to discover the dependencies, and then export a makefile reflecting those dependencies. This should make it possible to build all of Jenga's dependencies using make, and indeed for any Jenga package to be exported in a portable and dependency-free way. (Windows make should be supportable this way too.) - Dependencies We're working on lightening the dependencies of Jenga. We are planning to release a new version of Async in a couple of months whose base (called Async_kernel) no longer depends on Core (which depends on some Unix-isms) and instead only depends on the (highly portable) Core_kernel. That should bring us a good step closer to having Windows support. I think we'd still need some work, in particular, someone to write better windows support for Async, perhaps on top of libuv. But once we release our cleaned up async, I think that's more approachable. In the short term, I'm quite hopeful that Assemblage will provide something that's easy to use right now. But I think Jenga is an important part of the longer term plan for OCaml builds. y On Fri, Sep 12, 2014 at 10:36 AM, Anil Madhavapeddy wrote: > On 12 Sep 2014, at 15:08, Yotam Barnoy wrote: > > - assemblage (uses ocaml) seems promising as well, and seems focused on > simplicity. Any comment from assemblage contributors on its status? > > > It's being actively developed, is still unreleased, and the build API is > still subject to change. > > Early adopters and contributors are most welcome to get involved and give > feedback, as long as you understand the above caveats that it's a moving > target. > > I'd suggest reading through some of the discussions and pull requests on > https://github.com/samoht/assemblage/issues to get a sense of the > outstanding tasks left before a public beta release. > > best, > Anil