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 WAA00334; Mon, 21 Jul 2003 22:37:28 +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 WAA06017 for ; Mon, 21 Jul 2003 22:37:27 +0200 (MET DST) Received: from wetware.com (wetware.wetware.com [199.108.16.1]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h6LKbQT13681 for ; Mon, 21 Jul 2003 22:37:26 +0200 (MET DST) Received: from ra01 ([199.108.16.81] helo=wetware.com) by wetware.com with esmtp (Exim 4.20) id 19ehPR-0004KT-5v for caml-list@inria.fr; Mon, 21 Jul 2003 13:37:25 -0700 Date: Mon, 21 Jul 2003 13:37:25 -0700 Subject: Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?)) Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v552) From: james woodyatt To: The Trade Content-Transfer-Encoding: 7bit In-Reply-To: <20030721163207.GA3936@redhat.com> Message-Id: <2374E4D4-BBBB-11D7-A23A-000393BA7EBA@wetware.com> X-Mailer: Apple Mail (2.552) X-Loop: caml-list@inria.fr X-Spam: no; 0.00; woodyatt:01 jhw:01 wetware:01 caml-list:01 cpan:01 classpath:01 visits:99 rant:01 authorities:99 usr:01 hard-coded:01 locators:01 librarian:99 agitate:01 village:99 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Monday, Jul 21, 2003, at 09:32 US/Pacific, Richard Jones wrote: > > There are two big lessons from Java about how NOT to do this: > Actually, THREE big lessons about how NOT to do this: > > (1) $CLASSPATH Yeah, the mistake here is that a resource *identifier* is not the same as a resource *locator*. I'm less worried about the process the INRIA tools implement to locate .cmo and .cmi files than I am about the semantics the Ocaml language supports for identifying libraries under a federated naming authority. The issue at hand-- for me, at least, as a guy writing a component toolkit-- is the anarchy caused by planting the root of the extended-module-path production in a single global namespace with no organization. I can enjoy the occasional visits to anarchy: I've been to Burning Man more than once. But I like to live and work in republics-- especially in republics where the citizens can afford their upkeep (but that's another rant). > (2) uk.co.mycompany.unweildy.modules.names Yeah again. The problem here is the conflation of the module path with the naming authority. When you want to use modules from multiple libraries with different naming authorities, you need a way to identify the library resource that contains the extended module path. That's why we can't do it with just compiler and linker arguments. We need new syntax. Right now, there is one library that contains all extended module paths: the Standard Objective Caml library. (Note well: I am not talking about a .cma file here.) On my system, the contents of that library are located in . Since there's only one library, I don't have to identify it explicitly in my code. The locator is hard-coded into the compiler and linker. I can use arguments/environment to change it, and even add multiple locators to search, but I can't change the fact that there is only one library that must contain all the extended module paths in my system. Which wouldn't be so bad-- if there were an omniscient, omnipotent, omnibenevolent worldwide librarian to regulate top-level module name assignment. There isn't one, and I'm pretty sure I don't want one. > (3) ant Yeah again again. Don't get me wrong: I hate /usr/bin/make more than any of three of you. But I don't regard 'ant' as an improvement. That said, the topic of software construction tools is completely unrelated to the main issue that fished me out of lurk mode: the opportunity to agitate for multiple roots for extended-module-path and a federating naming authority for those roots. -- j h woodyatt that's my village calling... no doubt, they want their idiot back. ------------------- 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