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: Thu, 18 Sep 2014 17:36:45 -0400 [thread overview]
Message-ID: <CACLX4jQ0Rj=OT5=GiHEmGL_V=7Gb_sSr0uZuLP6MEdhQA05Vgw@mail.gmail.com> (raw)
In-Reply-To: <353DB638-1E30-40B6-BE5D-EA4479E009FB@recoil.org>
On Thu, Sep 18, 2014 at 5:21 PM, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 18 Sep 2014, at 22:15, Yotam Barnoy <yotambarnoy@gmail.com> 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 states)?
>
> 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 dependencies.
>>
>> [...]
>>
>> A projects description consists of a list of libraries, binaries and/or toplevels. Each containing a list of compilation units with precise (and static) dependency relationships.
>>
>> Using a project description, the tools can generate:
>>
>> • a .merlin to help edit the project;
>> • a Makefile to build the project;
>> • a .install to install the project; and
>> • 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
next prev parent reply other threads:[~2014-09-18 21:36 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
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 [this message]
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='CACLX4jQ0Rj=OT5=GiHEmGL_V=7Gb_sSr0uZuLP6MEdhQA05Vgw@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).