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
next prev parent 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