From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id AAA12489; Fri, 24 Aug 2001 00:04:51 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id AAA12237 for ; Fri, 24 Aug 2001 00:04:50 +0200 (MET DST) Received: from moutvdom00.kundenserver.de (moutvdom00.kundenserver.de [195.20.224.149]) by nez-perce.inria.fr (8.11.1/8.10.0) with ESMTP id f7NM4nX06301 for ; Fri, 24 Aug 2001 00:04:49 +0200 (MET DST) Received: from [195.20.224.219] (helo=mrvdom03.schlund.de) by moutvdom00.kundenserver.de with esmtp (Exim 2.12 #2) id 15a2an-000582-00; Fri, 24 Aug 2001 00:04:49 +0200 Received: from drms-3e364b5e.pool.mediaways.net ([62.54.75.94] helo=ice.gerd-stolpmann.de) by mrvdom03.schlund.de with esmtp (Exim 2.12 #2) id 15a2am-0006H9-00; Fri, 24 Aug 2001 00:04:48 +0200 Received: from localhost (localhost [[UNIX: localhost]]) by ice.gerd-stolpmann.de (8.9.3/8.9.3) id AAA14108; Fri, 24 Aug 2001 00:03:51 +0200 From: Gerd Stolpmann Reply-To: info@gerd-stolpmann.de Organization: privat To: bcpierce@cis.upenn.edu, "Benjamin C. Pierce" Subject: Re: [Caml-list] standard regex package Date: Thu, 23 Aug 2001 23:49:50 +0200 X-Mailer: KMail [version 1.0.28] Content-Type: text/plain Cc: Brian Rogoff , caml-list@inria.fr References: <3750.998602056@saul.cis.upenn.edu> In-Reply-To: <3750.998602056@saul.cis.upenn.edu> MIME-Version: 1.0 Message-Id: <01082400035105.02716@ice> Content-Transfer-Encoding: 8bit Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Thu, 23 Aug 2001, Benjamin C. Pierce wrote: >> For those who don't know: You can >> install almost every 3rd party Perl package by simply doing >> >> perl Makefile.pl >> make >> make test >> make install >> >> It is simple to do, and that's an important aspect of the success of Perl (a >> language which is nothing without CPAN). > >Having just spent 90 minutes last weekend trying to get a PERL package >installed and working, I can say with confidence that PERL's standard >installation procedure, while slick, leaves one big thing to be desired: >following dependencies. The problem with the "CPAN way" is that it leads >to 10,000 people writing cool little packages, all of which depend on ten >other cool little packages written by somebody else, etc., etc. >Following all these dependency chains manually by trying to install one >package, failing, grepping around in CPAN for the ones it depends on, >downloading them, trying to install, failing, ... is a pretty boring way >to spend a morning. > >I really wish that I'd been able to say to some tool, "I want to use >module X; please go off to CPAN and find, download, and install me the >current versions of X and all the modules it transitively depends on." I >know that it would be reallyreally hard to design a framework that would >always do the right thing, but if it did the right thing 99% of the time >and gave me a type error in 99% of the cases where it did not do the >right thing, it would be fantastic (and I believe both of these numbers >would be rather easy to achieve by low-tech means). The CPAN module does it; see perldoc CPAN. For O'Caml the corresponding functionality would be much harder because of possible version conflicts. Say you have packages A and B already installed, and A depends on B. Furthermore, you want to install package C, but package C requires the new version B'. For Perl, this is less dramatic than it seems to be because everything is dynamic, and the packages can themselves cope with version conflicts. For Caml, a clever automatic installer must decide: - Does the already installed package A work with the new version B'? If yes, is it necessary to recompile package A? - If package A must be renewed, too: Is there a version A' that works with B'? - If there are other packages that depend on A: Is it necessary to recompile/relink them? Because these questions are difficult, findlib does not include versioned dependencies (but it includes versions as such, and dependencies as such). So it requires still an intelligent operator that helps finding the right versions. One feature that should be added is automatic recompilation of dependent packages (from known sources). -- ---------------------------------------------------------------------------- Gerd Stolpmann Telefon: +49 6151 997705 (privat) Viktoriastr. 45 64293 Darmstadt EMail: gerd@gerd-stolpmann.de Germany ---------------------------------------------------------------------------- ------------------- Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr