caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Yaron Minsky <yminsky@janestreet.com>
To: Anil Madhavapeddy <anil@recoil.org>
Cc: Yotam Barnoy <yotambarnoy@gmail.com>,
	Ocaml Mailing List <caml-list@inria.fr>
Subject: Re: [Caml-list] One build system to rule them all?
Date: Fri, 12 Sep 2014 14:49:23 -0400	[thread overview]
Message-ID: <CACLX4jS6d8oRuMc-ajWQ38q+3YoVvZ0OsiuEhim9bxsQAErxpw@mail.gmail.com> (raw)
In-Reply-To: <FFA8568A-98EE-47B6-BA57-EAAD8F2E314B@recoil.org>

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 <anil@recoil.org> wrote:
> On 12 Sep 2014, at 15:08, Yotam Barnoy <yotambarnoy@gmail.com> 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

  reply	other threads:[~2014-09-12 18:49 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-10 12:49 Yotam Barnoy
2014-09-10 13:00 ` Simon Cruanes
2014-09-10 13:02 ` Adrien Nader
2014-09-10 13:05 ` David Sheets
2014-09-10 14:04   ` Thomas Braibant
2014-09-10 14:13     ` Adrien Nader
2014-09-10 13:18 ` Mark Shinwell
2014-09-10 13:29 ` Francois Berenger
2014-09-10 13:53   ` Jacques-Pascal Deplaix
2014-09-10 13:55     ` Francois Berenger
2014-09-10 14:17   ` Maxence Guesdon
2014-09-10 19:13     ` Drup
2014-09-10 22:56       ` Gerd Stolpmann
2014-09-13 12:01       ` rixed
2014-09-13 12:21         ` Drup
2014-09-13 12:37           ` rixed
2014-09-13 12:50             ` Adrien Nader
2014-09-13 13:05             ` Drup
2014-09-19 11:15       ` Matej Kosik
2014-09-10 14:23   ` Gerd Stolpmann
2014-09-10 15:17     ` Leonardo Laguna Ruiz
2014-09-10 18:59       ` Yotam Barnoy
2014-09-10 19:16         ` Peter Zotov
2014-09-10 19:56           ` Sebastien Mondet
2014-09-10 20:15             ` Gabriel Scherer
2014-09-10 23:20             ` Gerd Stolpmann
2014-09-10 20:13         ` Adrien Nader
2014-09-11  7:53         ` Francois Berenger
2014-09-11 10:37           ` Yaron Minsky
2014-09-12 14:08             ` Yotam Barnoy
2014-09-12 14:31               ` Francois Berenger
2014-09-12 14:36               ` Anil Madhavapeddy
2014-09-12 18:49                 ` Yaron Minsky [this message]
2014-09-12 15:10               ` SF Markus Elfring
2014-09-12 15:34               ` Adrien Nader
2014-09-12 18:50               ` Fabrice Le Fessant
2014-09-14 18:46               ` Richard W.M. Jones
2014-09-13 12:22         ` rixed
2014-09-15 13:34         ` Stéphane Glondu
2014-09-18 21:15           ` Yotam Barnoy
2014-09-18 21:21             ` Anil Madhavapeddy
2014-09-18 21:36               ` Yaron Minsky
2014-09-19 12:31                 ` Daniel Bünzli
2014-09-19 13:06                   ` Anil Madhavapeddy
2014-09-18 21:23             ` Yaron Minsky
2014-09-19  7:27               ` Gabriel Scherer
2014-09-19 15:03                 ` Yaron Minsky
2014-09-12 16:54 ` [Caml-list] Re : " r.3
2014-09-14 18:16 ` [Caml-list] " Richard W.M. Jones
2014-09-19  9:14 ` r.3

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CACLX4jS6d8oRuMc-ajWQ38q+3YoVvZ0OsiuEhim9bxsQAErxpw@mail.gmail.com \
    --to=yminsky@janestreet.com \
    --cc=anil@recoil.org \
    --cc=caml-list@inria.fr \
    --cc=yotambarnoy@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).