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=1.3 required=5.0 tests=AWL,HTML_MESSAGE,SPF_NEUTRAL autolearn=disabled version=3.1.3 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id BF6D2BC6C for ; Tue, 29 Jan 2008 14:12:26 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAACu1nkfAXQInh2dsb2JhbACCOjaNLgEBAQgKKZYkhyA X-IronPort-AV: E=Sophos;i="4.25,269,1199660400"; d="scan'208";a="21929398" Received: from concorde.inria.fr ([192.93.2.39]) by mail4-smtp-sop.national.inria.fr with ESMTP; 29 Jan 2008 14:12:25 +0100 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id m0TDCNGD014794 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Tue, 29 Jan 2008 14:12:25 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAACu1nkfRVca8nGdsb2JhbACCOjaNLgEBAQEBBgQECx6WJocg X-IronPort-AV: E=Sophos;i="4.25,269,1199660400"; d="scan'208";a="8489278" Received: from rv-out-0910.google.com ([209.85.198.188]) by mail3-smtp-sop.national.inria.fr with ESMTP; 29 Jan 2008 14:12:21 +0100 Received: by rv-out-0910.google.com with SMTP id g11so1622121rvb.57 for ; Tue, 29 Jan 2008 05:11:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:references; bh=OUOKwNz5UDOMcsdrSzs/4XtwwVT4pK64lyCWmKJVPv4=; b=gY6WmixtST5iOqMpctqDQ0BEb1VJDBmUfg61jpr5MM3hswmMDkOwu8r4shldIIN3BakrmyHffZMUOgDb/g3iVGMTTXZD0ZrSDGSFzR17j1+Fh2IjGrVoTTDvwos7Jb3sBr/eRVVvlmomP9sdNVH2+U4YZWkBSXDqSJ5fmD6kgAQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:references; b=KFQHswIi1i/FFD0qStZa9rBOlNKhSEaUeaOQ+tA/Kjz2Byv/cv8dlBZakzHQ2f6uKvO0KT82xfO6MaAbdtqyeclUcf5jvgpW8bMiFg4ApGe9gris65H4FsVmiZ/u/prXOQGIKIRT5myKPGngqn7Pv82P541h+DHpgyd5L/oUedw= Received: by 10.141.162.16 with SMTP id p16mr4356098rvo.243.1201612315770; Tue, 29 Jan 2008 05:11:55 -0800 (PST) Received: by 10.141.12.14 with HTTP; Tue, 29 Jan 2008 05:11:55 -0800 (PST) Message-ID: <891bd3390801290511q29ab5fd4y78ee6d8614461487@mail.gmail.com> Date: Tue, 29 Jan 2008 08:11:55 -0500 From: "Yaron Minsky" Reply-To: yminsky@gmail.com To: "Berke Durak" Subject: Re: [Caml-list] [OSR] Ports-like package management system Cc: "Caml-list List" In-Reply-To: <479F0664.2070706@exalead.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_13507_32788592.1201612315765" References: <479F0664.2070706@exalead.com> X-Miltered: at concorde with ID 479F2637.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; yaron:01 minsky:01 yminsky:01 berke:01 durak:01 berke:01 durak:01 ocaml:01 haskell:01 violate:01 haskell:01 renames:01 intensively:01 ocaml:01 foo:01 ------=_Part_13507_32788592.1201612315765 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Jan 29, 2008 5:56 AM, Berke Durak wrote: > Basing a PMS for Ocaml on a VCS written in Haskell would violate the > ``Trading with the Enemy'' act. Moreover Darcs has some performance > problems of its own. Come now, Haskell is a dear friend and relative, not an enemy at all. Besides, darcs has some key advantages for this kind of use. Cherry-picking and flexible maintenance of patches on top of someone else's tree would be very valuable for this kind of application, and neither hg nor git support that use case well. And I believe the darcs team is making real advances towards fixing these problems. If not darcs, I would choose hg next. hg supports windows well, which is a big deal, I think. Its user interface was more pleasant than git's last I checked. And it has some support for renames (not as good as darc's or bzr's, but still good.) We've used hg very intensively at Jane Street and have been very happy with the results. > Let's get back to the subject. BSD ports are also based on make, > whose main limitation, the static dependency graph, has been addressed > in ocamlbuild. I know there is Omake, but I think it suffers from the > ``Yet Another Turing-Complete Language'' syndrome. > Does anyone with experience with both omake and ocamlbuild have an opinion on the matter? I've used omake quite a bit, and ocamlbuild not at all. In my mind, omake has the advantage that I'm pretty sure it's up to the task. ocamlbuild has the advantage of being in the standard distribution and having OCaml as its extension language. It would be great to get the opinion of someone who knows both systems well. > So I am calling for a solution based on a ports-like system but based > on a distributed VCS and on an improved ocamlbuild. > > Assume you are writing a program FOO and want to use a package BAR > available from bar.org. You tell ocamlbuild by adding some tag such > as > > : require(http://bar.org/repository/) It would also be nice to have a set of versions of the various libraries that hang together, as GODI does. Otherwise, problems in the case where there are packages A, B and C where A depends on B and C and B depends on C. You need a version of C that works with your versions of A and B, or you're sunk. So some central repo where you can maintain a set of "safe" versions would allow for a developer to ask for a easily pull a collection of working libraries. y ------=_Part_13507_32788592.1201612315765 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Jan 29, 2008 5:56 AM, Berke Durak <berke.durak@exalead.com> wrote:
Basing a PMS for Ocaml on a VCS written in Haskell would violate the
``Trading with the Enemy'' act.  Moreover Darcs has some performance
problems of its own.

Come now, Haskell is a dear friend and relative, not an enemy at all.

Besides, darcs has some key advantages for this kind of use.  Cherry-picking and flexible maintenance of patches on top of someone else's tree would be very valuable for this kind of application, and neither hg nor git support that use case well.  And I believe the darcs team is making real advances towards fixing these problems.

If not darcs, I would choose hg next.  hg supports windows well, which is a big deal, I think.  Its user interface was more pleasant than git's last I checked.  And it has some support for renames (not as good as darc's or bzr's, but still good.)  We've used hg very intensively at Jane Street and have been very happy with the results. 
 
Let's get back to the subject.  BSD ports are also based on make,
whose main limitation, the static dependency graph, has been addressed
in ocamlbuild.  I know there is Omake, but I think it suffers from the
``Yet Another Turing-Complete Language'' syndrome.

Does anyone with experience with both omake and ocamlbuild have an opinion on the matter?  I've used omake quite a bit, and ocamlbuild not at all.   In my mind, omake has the advantage that I'm pretty sure it's up to the task.  ocamlbuild has the advantage of being in the standard distribution and having OCaml as its extension language.  It would be great to get the opinion of someone who knows both systems well. 
 
So I am calling for a solution based on a ports-like system but based
on a distributed VCS and on an improved ocamlbuild.

Assume you are writing a program FOO and want to use a package BAR
available from bar.org.  You tell ocamlbuild by adding some tag such
as

  <mytarget.native>: require(http://bar.org/repository/)

It would also be nice to have a set of versions of the various libraries that hang together, as GODI does.  Otherwise, problems in the case where there are packages A, B and C where A depends on B and C and B depends on C.  You need a version of C that works with your versions of A and B, or you're sunk.  So some central repo where you can maintain a set of "safe" versions would allow for a developer to ask for a easily pull a collection of working libraries.
 
y
------=_Part_13507_32788592.1201612315765--