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 PAA01626; Wed, 23 Jul 2003 15:21:03 +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 PAA32116 for ; Wed, 23 Jul 2003 15:21:02 +0200 (MET DST) Received: from mail.npc.de (fw.npc.de [62.225.140.214]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h6NDL0T00943; Wed, 23 Jul 2003 15:21:01 +0200 (MET DST) Received: from pD9E26662.dip.t-dialin.net (lion.npc.de [192.168.129.1]) by mail.npc.de (Postfix) with ESMTP id C6A7C1550; Wed, 23 Jul 2003 15:20:59 +0200 (CEST) Received: from hera.ffm.npc.de (hera.ffm.npc.de [192.168.130.8]) by pD9E26662.dip.t-dialin.net (Postfix STYX NPC GmbH) with ESMTP id 43BAC78E0; Wed, 23 Jul 2003 15:20:58 +0200 (CEST) Received: from ares.ffm.npc.de (ares.ffm.npc.de [192.168.130.32]) by hera.ffm.npc.de (Postfix HERA NPC GmbH) with ESMTP id C8317159BB; Wed, 23 Jul 2003 15:20:57 +0200 (CEST) Received: from ares.ffm.npc.de (ares.ffm.npc.de [192.168.130.32]) by ares.ffm.npc.de (Postfix ARES NPC GmbH) with ESMTP id 460A7183A; Wed, 23 Jul 2003 15:20:57 +0200 (CEST) Subject: Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?)) From: Gerd Stolpmann To: Xavier Leroy Cc: caml-list@inria.fr In-Reply-To: <20030723113546.A24774@pauillac.inria.fr> References: <20030715180953.GA8821@redhat.com> <3F17AC55.7050908@ozemail.com.au> <20030718072901.A11777@speakeasy.org> <1058615717.6545.84.camel@ice.gerd-stolpmann.de> <20030723113546.A24774@pauillac.inria.fr> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 23 Jul 2003 15:20:55 +0200 Message-Id: <1058966457.32559.37.camel@ares> Mime-Version: 1.0 X-Loop: caml-list@inria.fr X-Spam: no; 0.00; gerd:01 stolpmann:01 caml-list:01 cpan:01 orthogonal:01 avoiding:01 acute:99 libs:01 python:01 demonstrate:01 usefulness:01 reuse:01 netbsd:01 coexist:01 model:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Am Mit, 2003-07-23 um 11.35 schrieb Xavier Leroy: > I have followed this discussion with interest, although other > commitments prevented me from replying earlier. > > I think there are two completely orthogonal issues: > > 1- Caml library packaging: standardizing and automating the > configuration, compilation, installation, dependency handling and > re-compilation when dependents change. > > 2- Name space management: avoiding the unfortunate situation where > several packages define compilation units that have the same names. > > I agree with Gerd that the first issue (library packaging) is by far > the most acute. The lack of a packaging framework currently makes > using third-party Caml libs in a development much harder than it > should be. > > [...] > That's why other cross-platform programming environments > such as Perl and Python have developed their own packaging technology. They did it also to demonstrate their usefulness in system administration. I don't see that this is the natural application for a universal language like O'Caml, so we could also reuse existing packaging technologies provided they are portable enough. This is the reason why I chose the NetBSD system for my experiments (which I have actually done on Linux and Solaris, just to test the portability). > Library packaging is one of those "soft", un-glamorous problems: there > are no hard, open problems, just an endless series of small problems > to be solved and policy decisions to be taken. I had interesting > discussions with several of you concerning possible designs, but > apparently these efforts ran out of steam. I'm very happy to see that > Gerd (with his eminent practical sense) is giving it a try, and I wish > he'd get more constructive feedback on this. What I would like to hear is that: - people are really interested in a source distribution - people want to spend time and help packaging - people want to contribute resources (e.g. network disk space) The problem is that I have only very limited time for this, and I hope that once the project is set up my assistance would not be needed any longer. > Now, the name space management issue seems over-inflated to me. > Yes, it can happen, and may become a serious issue once we have > hundreds of libs that need to coexist. But I think we can still get > a lot of mileage out of the current "global namespace for compilation > units" model. In particular, most libraries can be set up so that > they define only *one* top-level module (i.e. compilation unit): > > - put all sources in one file, possibly with sub-modules > (not as ugly as it sounds -- see my Cryptokit library for an example); > - put all user-visible definitions in one file, say Mylib.ml, and > put internal definitions in other files with unlikely names such as > MylibInternalFoo.ml, MylibInternalBar.ml, etc > - use ocamlc -pack to assemble the library files into one compilation > unit. > > Some people reject ocamlc -pack on the grounds that it prevents > link-time elimination of unused sub-modules. I think they are jumping > to conclusions. First, for many libraries, there is essentially no > opportunity for this link-time elimination, as every sub-module is > used. Second, many libraries are small enough that the increase in > code size doesn't matter much. Third, this is a "quality of > implementation" issue: I might be able to implement this link-time > elimination for the native-code compiler (ocamlopt -pack) at some > future time. The problem remains for bytecode, though, but is perhaps > less acute due to the small size of bytecode. I think the real problem is that -pack is not supported on all platforms, or only if you install GNU binutils. So up to now I have understood -pack as an experiment. > Finally, as this discussion demonstrates eloquently, there is no > obviously good solution to the name space management problem. Yes, > various things can be done either at the language level or at the > compiler level to support finer identification and re-naming of > compilation units. But I'd rather not settle on a half-baked solution > to a non-acute problem. Namespaces are not only a technical problem, but also a matter of good organization. This is why almost every suggestion looks half-baked. Furthermore, it was a bit surprising for me that most participants of the discussion favoured hierarchical solutions, which would mean we need some kind of "authority" administering the hierarchy. Very unlikely that we ever get this, or can agree on it. (Don't forget that the Perl people are often system administrators, and they are used to this kind of management.) I really think that we should view namespaces as indexes to an open, distributed database of modules (if this problem ever gets acute), at least currently this would me more adequate to the grade of organization of the O'Caml community. Gerd -- ------------------------------------------------------------ Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany gerd@gerd-stolpmann.de http://www.gerd-stolpmann.de ------------------------------------------------------------ ------------------- 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