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: 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

  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).