From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 118657F75C for ; Wed, 10 Sep 2014 15:05:14 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of kosmo.zb@gmail.com) identity=pra; client-ip=209.85.215.43; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="kosmo.zb@gmail.com"; x-sender="kosmo.zb@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of kosmo.zb@gmail.com designates 209.85.215.43 as permitted sender) identity=mailfrom; client-ip=209.85.215.43; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="kosmo.zb@gmail.com"; x-sender="kosmo.zb@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-la0-f43.google.com) identity=helo; client-ip=209.85.215.43; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="kosmo.zb@gmail.com"; x-sender="postmaster@mail-la0-f43.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjQEAGFLEFTRVdcrm2dsb2JhbABZhC0KBIJ4riMGhyCZPgGBBwgWEAEBAQEBBgsLCRQqhAMBAQEDARIRHQEbHQEDAQsGBQsNAgImAgIhAQERAQUBHAYTFAcHiAsBAwkInDhrizCBcoMQiRAKGScNZoVTAREBBQ6BHoRQhySCLQeCeYFTBZJCiCGCEI5zhEkYKYUTPC+CTwEBAQ X-IPAS-Result: AjQEAGFLEFTRVdcrm2dsb2JhbABZhC0KBIJ4riMGhyCZPgGBBwgWEAEBAQEBBgsLCRQqhAMBAQEDARIRHQEbHQEDAQsGBQsNAgImAgIhAQERAQUBHAYTFAcHiAsBAwkInDhrizCBcoMQiRAKGScNZoVTAREBBQ6BHoRQhySCLQeCeYFTBZJCiCGCEI5zhEkYKYUTPC+CTwEBAQ X-IronPort-AV: E=Sophos;i="5.04,499,1406584800"; d="scan'208";a="78443956" Received: from mail-la0-f43.google.com ([209.85.215.43]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 10 Sep 2014 15:05:13 +0200 Received: by mail-la0-f43.google.com with SMTP id gi9so9807041lab.30 for ; Wed, 10 Sep 2014 06:05:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=OZqjgFHQuBsir3l+vN/WqOSyuX5W10D+3OWuddAu8bw=; b=cU5xa+mbZp55EG3FARSYBFOlf0WhmhXjqZOHcQNml7uAmH+6E3yTIZnY0Cj9oXc7Fa MmhlrjwWT5sJt5jik3Tjm0dhtvubo7gOEoKtkSI81KEHiOt0Jr6jMXS03yBNtfyAcPst W0PESHyVCrwAZIJG5PN8YdsMp/FaK4Mx3CyjRDQxcgXU5f9vI8M3QvcxR8WCo1n6KfNL NBB8ve1w/5tn74sNyObMxrgs2xa3BLdtZJPgxcFRyloYyx0kdZSYY1AsF4uQLk2ZXwcO 7SHqdkN3POkdgAq1MeWjwJCSOhBzvbZjKP0f6vf2v2n/Pjx94WD2GD9MdIQJY1WJW2Cu WdPA== MIME-Version: 1.0 X-Received: by 10.112.14.33 with SMTP id m1mr40260692lbc.16.1410354312229; Wed, 10 Sep 2014 06:05:12 -0700 (PDT) Received: by 10.112.140.73 with HTTP; Wed, 10 Sep 2014 06:05:12 -0700 (PDT) In-Reply-To: References: Date: Wed, 10 Sep 2014 14:05:12 +0100 Message-ID: From: David Sheets To: Yotam Barnoy Cc: Ocaml Mailing List Content-Type: text/plain; charset=UTF-8 X-Validation-by: kosmo.zb@gmail.com Subject: Re: [Caml-list] One build system to rule them all? On Wed, Sep 10, 2014 at 1:49 PM, Yotam Barnoy 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