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 WAA11245; Fri, 16 Apr 2004 22:22:31 +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 WAA12337 for ; Fri, 16 Apr 2004 22:22:29 +0200 (MET DST) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by concorde.inria.fr (8.12.10/8.12.10) with ESMTP id i3GKMQYM011944 for ; Fri, 16 Apr 2004 22:22:28 +0200 Received: from [192.168.1.200] (ppp117-65.lns1.syd2.internode.on.net [150.101.117.65]) by smtp3.adl2.internode.on.net (8.12.9/8.12.9) with ESMTP id i3GKMHk2045897; Sat, 17 Apr 2004 05:52:18 +0930 (CST) Subject: Re: [Caml-list] build tools - good vs. fast, both cheap From: skaller Reply-To: skaller@users.sourceforge.net To: John Goerzen Cc: skaller , Kenneth Knowles , "Brandon J. Van Every" , caml-list In-Reply-To: <20040416184656.GA10856@excelhustler.com> References: <20040416011616.GA13198@tallman.kefka.frap.net> <20040416160618.GA27238@tallman.kefka.frap.net> <1082139022.20063.136.camel@pelican.wigram> <20040416184656.GA10856@excelhustler.com> Content-Type: text/plain Message-Id: <1082146936.20063.264.camel@pelican.wigram> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 17 Apr 2004 06:22:16 +1000 Content-Transfer-Encoding: 7bit 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 sourceforge:01 2004:99 2004:99 knowles:99 interscript:01 interscript:01 ocamldep:01 ocamldoc:01 camlp:01 fixpoint:01 autoconf:01 model:01 topological:01 archaic:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Sat, 2004-04-17 at 04:46, John Goerzen wrote: > On Sat, Apr 17, 2004 at 04:10:25AM +1000, skaller wrote: > > On Sat, 2004-04-17 at 02:06, Kenneth Knowles wrote: > > > > To understand interscript .. what does it do? > > You keep bringing that up, so I have to ask: why is that relevant as > part of a discussion of *OCaml* build tools? > Interscript is language independent and general purpose. Language dependent tools are limited. Because systems generally aren't uniform. EG: you build a system (like Felix) which uses Ocaml .. and C++ .. and Felix codes .. can you use Ocamldep to document it? Of course not, it only works for Ocaml. Interscript works for ALL three languages. As well as every other language you care to use or invent (provided it is a linear text file kind of language :D heck, ocamldoc doesn't even work with camlp4! In addition, interscript uses some different techniques such as literate programming with executable script, has a new build concept based on convergence to a fixpoint, and generally speaking is so far in advance of make and autoconf I don't even consider those tools to provide any kind of model for any part of a build process anymore. The logic embodied in those tools is still needed, but it should be represented by library modules, not executables. EG: topological sort is a useful module. EG: getfiletime is a useful function! EG: (dependency) graph is a useful module. And given them you can write 'make' in 10 lines of Ocaml .. well i exaggerate but you get the idea. Yes yes, bash is a (lame) general purpose language and Unix commands are just library modules... of an archaic programming system, not a modern one. Anyhow, hope that answers your question: I have spent something like 5 years building a tool that handles much the same set of problem we're discussing, or at least could handle them if so programmed, and ended up with something quite different from the spagetti the C world uses. I really don't want to see Ocaml go down the spagetti route :D So far it hasn't: for example no lame preprocessor! Yeah, Ocaml does finally have one, camlp4. But a preprocessor that can extend the grammar, and involves arbitrary executable caml code .. that isn't even marginally lame .. its a completely radical and worthy tool: perhaps not perfect, but I'm so glad the Ocaml team resisted a spagetti solution. -- John Skaller, mailto:skaller@users.sf.net voice: 061-2-9660-0850, snail: PO BOX 401 Glebe NSW 2037 Australia Checkout the Felix programming language http://felix.sf.net ------------------- 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