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 TAA29155; Thu, 8 Apr 2004 19:35:37 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id TAA28348 for ; Thu, 8 Apr 2004 19:35:36 +0200 (MET DST) Received: from gatekeeper.elmer.external.excelhustler.com (gatekeeper.excelhustler.com [68.99.114.105]) by concorde.inria.fr (8.12.10/8.12.10) with ESMTP id i38HZZYM019342 for ; Thu, 8 Apr 2004 19:35:35 +0200 Received: from chatterbox.elmer.internal.excelhustler.com (unknown [192.168.0.12]) (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)) (Client CN "chatterbox.elmer.internal.excelhustler.com", Issuer "excelhustler.com" (not verified)) by gatekeeper.elmer.external.excelhustler.com (Postfix) with ESMTP id CCCBEE0140; Thu, 8 Apr 2004 12:35:34 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by chatterbox.elmer.internal.excelhustler.com (Postfix) with ESMTP id 977F85C006; Thu, 8 Apr 2004 12:35:34 -0500 (CDT) Received: from wile.internal.excelhustler.com (wile.internal.excelhustler.com [192.168.1.34]) by chatterbox.elmer.internal.excelhustler.com (Postfix) with ESMTP id 6573E5C005; Thu, 8 Apr 2004 12:35:34 -0500 (CDT) Received: by wile.internal.excelhustler.com (Postfix, from userid 1000) id 11F694A01E; Thu, 8 Apr 2004 12:35:35 -0500 (CDT) Date: Thu, 8 Apr 2004 12:35:35 -0500 From: John Goerzen To: Ocaml Mailing List Subject: Re: [Caml-list] Dynamically evaluating OCaml code Message-ID: <20040408173535.GA1291@excelhustler.com> References: <20020104004356.GA1672@mev> <20040408133727.GC29195@excelhustler.com> <20040408145606.GA18473@fichte.ai.univie.ac.at> <20040408153056.GB30763@excelhustler.com> <20040408164404.GA19556@fichte.ai.univie.ac.at> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040408164404.GA19556@fichte.ai.univie.ac.at> User-Agent: Mutt/1.5.5.1+cvs20040105i X-Scanned-By: clamscan at chatterbox.elmer.internal.excelhustler.com X-Miltered: at concorde by Joe's j-chkmail ("http://j-chkmail.ensmp.fr")! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 dynamically:01 2004:99 tiresome:01 ocamlopt:01 cpan:01 python:01 python:01 reinvent:01 lacking:01 add-on:01 ocaml:01 ocaml:01 handles:01 interfaces:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk X-Status: X-Keywords: X-UID: 168 On Thu, Apr 08, 2004 at 06:44:04PM +0200, Markus Mottl wrote: [ snip ] > I feel that this question really also touches the recent discussion > concerning library management. If it were very easy to make use of > contributed code, we wouldn't talk so often about extensions to the > standard library. [ snip ] > I agree here: that's why I'd like to see more social tools rather than > extensions to the standard library. It's tiresome to search the web > for already invented wheels, downloading code, compiling it (hopefully > without problems), installing it and keeping it up-to-date (including > libraries that it depends on). Yes. That would make sense for a lot of things. The Humps are already fairly usable for finding things, but installing them can be a different matter. I have to think twice before using things not in the standard library for code that others will run because I must consider the complexity of setting them up. Some libraries don't compile out of the box on systems that lack ocamlopt; others require various amounts of Makefile hacking to see correct paths, etc. Perl has a fairly small standard library but a very easy method to add on to it (CPAN). That works well. Python has a fairly large standard library and an almost-as-easy method to add on (setup.py; you have to download but install is easy). That works well, too. > > IPv6 and other glaring socket omissions, read/write files handles, > > string slicing, and IMAP libraries. Should I add a few more? Here are > > some other functions that I have in C, Python, Perl (and, for the most > > part, even Java) that are missing from OCaml: > > I am not questioning the fact that OCaml could need more libraries for > more functionality. I am questioning that all of this should become > part of a standard library. I wouldn't mind seeing the code there, of > course, but why burden the developers with tasks that could be done by > the community? What is "standard" anyway? Only what INRIA calls one? > Or what is used predominantly by the community? I'd have no problem with having a more broad standard definition than INRIA. The reason I've been talking about the standard library thus far is that basic support for some of the things I'm looking for already exists there, so it would seem silly to reinvent it all somewhere else -- not to mention the complexity that would cause with two competing interfaces for the same task. As an example, there's IPv6 support. The standard library already has IPv4 support, and given that, the amount of effort required to add IPv6 is relatively small, and most of the existing interfaces could be reused. So to me, the standard library is the only place it makes sense to put IPv6 (unless, for instance, INRIA and the community decided to totally split off networking to a separate module). What it comes down to is that we need to have clearly-defined guidelines for what goes into INRIA's standard library and what doesn't, and they have to be sensible. Something like "IPv4 yes, IPv6 no" or some date functions but not others is not a good long-term solution. Otherwise, we'll have some people using the INRIA functions (they may not need the functionality that's lacking) and others using whatever add-on library exists. And it can be tough to integrate the two types of code into a single system. [ snip ] -- John ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners