From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id 594A4BBC1 for ; Wed, 12 Mar 2008 05:57:14 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvcAAGP/1kfRVYT7kmdsb2JhbACQcAEBAQEHBAQJChaQLYdI X-IronPort-AV: E=Sophos;i="4.25,484,1199660400"; d="scan'208";a="9310665" Received: from discorde.inria.fr ([192.93.2.38]) by mail1-smtp-roc.national.inria.fr with ESMTP; 12 Mar 2008 05:57:14 +0100 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id m2C4vD8R015380 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Wed, 12 Mar 2008 05:57:14 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvcAAGP/1kfRVYT7kmdsb2JhbACQcAEBAQEHBAQJChaQLYdI X-IronPort-AV: E=Sophos;i="4.25,484,1199660400"; d="scan'208";a="9310664" Received: from an-out-0708.google.com ([209.85.132.251]) by mail1-smtp-roc.national.inria.fr with ESMTP; 12 Mar 2008 05:57:13 +0100 Received: by an-out-0708.google.com with SMTP id c24so679410ana.97 for ; Tue, 11 Mar 2008 21:57:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition:x-google-sender-auth; bh=mKCtCxi5VALNunwPnR/OgHzdwn98LjQfkYFf+WWBVEM=; b=fUwOvsDoHIcOmeYSjSReDBdbVqUH/aQqmfDtZic4BsGcY5amwyz0In7/oe6/CluzcM2jkROidj9ijq9XwLc+Gtj5xbFkN4ZqAtB597ZEv8/mZddEuTt2tMQb/lAxR+XymjW/ZKpqo5Usn2e0BUFyk7g2eEJxA4D2Knim5StYaks= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition:x-google-sender-auth; b=qaZwl0tDvvRPPxAbx+ILpWl/T1SULvc1EaOnHTf0ojI7TbPR2UnflpSIX6aEi/4nfg4AFbZaJbwAaRdJ9bhwyD/ZPttsd9QufAX4XN+5Mgn/WHiJ/ML3UeUKx/IyuO4NMgvchQ2ekvANZShS4SiE/dpfNO3uNXtq40Qz9vhNEy0= Received: by 10.100.41.16 with SMTP id o16mr15021607ano.73.1205297832232; Tue, 11 Mar 2008 21:57:12 -0700 (PDT) Received: by 10.100.46.2 with HTTP; Tue, 11 Mar 2008 21:57:12 -0700 (PDT) Message-ID: <1ef034530803112157m3bb804f4w6723252a84c2ec62@mail.gmail.com> Date: Tue, 11 Mar 2008 21:57:12 -0700 From: "Erick Tryzelaar" Sender: erick.tryzelaar@gmail.com To: caml-list@inria.fr Subject: what's in the future for ocamlbuild? MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Google-Sender-Auth: 5d81c43e09cf5a5c X-Miltered: at discorde with ID 47D762A9.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; findlib:01 inria's:01 ocaml:01 compiler:01 ocaml:01 compiler:01 lib:01 foo:01 byte:01 foo:01 byte:01 bug:01 wrappers:01 sourceforge:01 dependency:01 After reading the ocamlbuild + findlib thread, it reminded me about some of the concerns I have with ocamlbuild. It's a really cool system, but there doesn't seem to be much public planning and contribution to making it better. For instance, it seems like the community is waiting for Nicolas Pouillard to add support for multiple plugins instead of us working together to spec out and create it ourselves. Why is this? For me at least, I think some of it is that I see ocamlbuild being intimately tied in with inria's ocaml compiler, and inria has been reasonably quiet about future development and external participation. So, unlike other projects, I've never really put that much effort into submitting patches. Is there anything we can do to change this? There are a couple things that I've long thought would be great to have in ocamlbuild: - I love that ocamlbuild is bundled with ocaml as then it's one less dependency for someone building an ocaml package, but I don't like how it then ties it's release to ocaml releases. First, since new versions of ocaml aren't really publicly planned, it's hard to know when a feature might be added to ocamlbuild. Second, we can't use ocamlbuild to build a system if the system compiler isn't 3.10. I don't think ocamlbuild actually uses anything from 3.10. So, it would be nice if there was also a separate release from ocaml that we could install along side of an older ocaml install. - Now, in order to use it along side an older install, you can't actually use a myocamlbuild.ml file as you'd have conflicting versions of libraries. So, beyond what you can do with just the current _tags file, it'd be also great if we could add support for some of the more common features you need to go to myocamlbuild.ml right now. For instance, you have to declare a library through "ocaml_lib". Could we extend the _tags file support something like: : use_bar ocaml, library, byte, use_foo: foo.cma ocaml, library, byte, use_bar: bar.cma, external, dir('bar') With this and other similar extensions, we wouldn't have to go to myocamlbuild as much. I don't think _tags should grow into a full language, but I think we could cover more common cases with it. - A way for the community to add support for other languages. It may not make sense to code in the OCaml tree support for things like Java or the QT library. It also might not really be appropriate to be done through OSR either. - ocamlbuild currently can't run on windows's cmd.exe, which is a shame. This bug report suggests that it's not planned on changing either: http://caml.inria.fr/mantis/view.php?id=4388 I know that other languages like python are able to work cross platformly with cmd.exe (such as my custom python build system for felix), so for at least my purposes it works fine. In my case I'd be okay with accepting the limitations of cmd.exe by avoiding doing any fancy shell scripts, or pushing that in smart wrappers to ocamlbuild. Furthermore, you could just skip the shell altogether and either fork-exec on linux or runProcess on windows. There's more I could add, but I hope this can start a conversation about this. What do the rest of you think?