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 XAA27295; Thu, 18 Mar 2004 23:32:48 +0100 (MET) 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 XAA27043 for ; Thu, 18 Mar 2004 23:32:47 +0100 (MET) Received: from sark.cc.gatech.edu (sark.cc.gatech.edu [130.207.7.23]) by concorde.inria.fr (8.12.10/8.12.10) with ESMTP id i2IMWkHd027091 for ; Thu, 18 Mar 2004 23:32:46 +0100 Received: from gaia.cc.gatech.edu (gaia.cc.gatech.edu [130.207.3.8]) by sark.cc.gatech.edu (8.12.10/8.12.8) with ESMTP id i2IMWifR017269; Thu, 18 Mar 2004 17:32:44 -0500 (EST) Received: (from fernando@localhost) by gaia.cc.gatech.edu (8.12.10/8.12.8) id i2IMWhhS029094; Thu, 18 Mar 2004 17:32:43 -0500 (EST) Date: Thu, 18 Mar 2004 17:32:43 -0500 From: Fernando Alegre To: Kenneth Knowles Cc: caml-list@pauillac.inria.fr Subject: Re: OCaml's Cathedral & Bazaar (was Re: [Caml-list] Completeness of "Unix" run-time library) Message-ID: <20040318223243.GA26776@gaia.cc.gatech.edu> References: <07FEC955-782B-11D8-850C-000A957FFA4A@csun.edu> <20040318001905.36025.qmail@web41206.mail.yahoo.com> <20040318085638.GA11753@swordfish> <20040318185723.GE27866@speakeasy.org> <20040318211615.GA6024@kefka.frap.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040318211615.GA6024@kefka.frap.net> User-Agent: Mutt/1.4.2.1i 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; alegre:01 gatech:01 ocaml's:01 caml-list:01 run-time:01 2004:99 knowles:99 namespaces:01 cpan-like:01 dependencies:01 compile-time:01 pervasives:01 -stdlib:01 -stdlib:01 camlp:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk X-Keywords: X-UID: 185 On Thu, Mar 18, 2004 at 01:16:15PM -0800, Kenneth Knowles wrote: > > it'll get worse. High on my wish-list for the core ocaml system is > > namespaces or something similiar to help resolve this problem. > > For ocaml, since modules are not first-class, wouldn't it just be a compilation > frontend issue to do this merging (in addition to some syntax to declare module > X.Y)? I'm just pondering, but it seems possible and remarkably useful in order > to move towards a CPAN-like module repository. Dependencies between modules > would naturally cause compile-time failure if they were not present, which is > desirable. This seems like one simple step which would enormously increase the > ability of the community to more effectively contribute libraries and modules, > and halt a lot of complaints to the INRIA team. I also think a few more switches in the compiler would mostly put an end to most complaints and give the community the necessary tools to extend/replace the libraries. In particular, I feel this is needed: 1) A -pre_open switch that opens a given module (searched along the -I path) This would allow people to replace Pervasives with a custom module. 2) -stdlib switches that change the path for the standard library so that subsequent -I +path is searched under the current standard library path. Several -stdlib switches should be allowed in the same compilation. 3) A firm commitment by the Ocaml team to maintain camlp4 in the future in the same terms as the rest of the ocaml core. This would be essential for extensions that depend on syntactic manipulation (such regexps) to become widespread. The -pre_open switch seems powerful enough to allow namespace management, since an extLib module could then be something like this: extLib.ml: module List = ExtList module Array = ExtArray ... Then, users would be able to switch between the standard library and extLib without modifying their code by compiling like this: ocamlc -pre_open extLib.cmo mycode.ml Fernando ------------------- 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