caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: David Sheets <kosmo.zb@gmail.com>
To: Yotam Barnoy <yotambarnoy@gmail.com>
Cc: Ocaml Mailing List <caml-list@inria.fr>
Subject: Re: [Caml-list] One build system to rule them all?
Date: Wed, 10 Sep 2014 14:05:12 +0100	[thread overview]
Message-ID: <CAAWM5TyF62Xx7oLO+_3U=O99JkMyd=hoCRvR0XRM-Pr8he8VoQ@mail.gmail.com> (raw)
In-Reply-To: <CAN6ygO=P_QTa6Wk0=Wx=0XLwhGOP=16eGaGiacA5N60nRjApDQ@mail.gmail.com>

On Wed, Sep 10, 2014 at 1:49 PM, Yotam Barnoy <yotambarnoy@gmail.com> wrote:
> It appears to me that every couple of months we hear of someone implementing
> yet another build system in ocaml. Given the success of opam, I think it's
> clear that sometimes a monolithic solution, behind which the entire
> community can organize, is the best solution -- especially for
> infrastructure.

opam is not a monolithic solution. For instance, it does not try to
mandate a build system and it uses external solvers if available.

> Looking at haskell, having cabal as the main build system
> has really helped them advance in terms of supporting other platforms (such
> as windows), and since all community efforts in this realm are focused on
> cabal, they can improve it rapidly.

Like all system design decisions, this is a trade-off. Cabal does
build and packaging. Cabal has some issues and limitations that may
not be fixable without major reworking.

> a. Is there any build system we can organize behind to crown as the official
> build system?

What is "official"? People get hit by buses, governments fall,
requirements change. I don't want an "official" build system.

> b. What are the use-cases missing from specific build systems, that have
> driven people to use other build systems?

Code-base size, dependency management, foreign-function binding, code
generation and staging, transparency, documentation, speed...

> c. To pick one possible candidate, if ocamlbuild were spun out of the
> compiler, could it be enhanced to cover all the main use-cases so (almost)
> everyone would be happy with it?

Probably not. One size does not fit all.

> It's just such a shame to see the ocaml community re-inventing the wheel
> over and over again, each time with some limitation so that the next person
> needs to do the same thing yet again.

A build system is considerably more complicated than a wheel. In many
cases, the issues responsible for re-work stem from design and social
factors, not technical problems. It's not clear to me that *any*
language community has actually completely solved the build system
problem. Writing and promoting a new build system which solves old
problems and does not regress the status quo seems like a laudable, if
thankless, goal.

If you'd like to contribute to a build system project to help it cover
more use cases and become The One True Build System, I suggest getting
involved with the project you feel has the best design, project
management, and philosophy and contributing your time and patches.

Best regards,

David

  parent reply	other threads:[~2014-09-10 13:05 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 [this message]
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
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='CAAWM5TyF62Xx7oLO+_3U=O99JkMyd=hoCRvR0XRM-Pr8he8VoQ@mail.gmail.com' \
    --to=kosmo.zb@gmail.com \
    --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).