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 TAA32233; Sun, 5 Sep 2004 19:38:25 +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 TAA00853 for ; Sun, 5 Sep 2004 19:38:24 +0200 (MET DST) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id i85HcMjD009032 for ; Sun, 5 Sep 2004 19:38:23 +0200 Received: from [192.168.1.200] (ppp210-32.lns2.syd3.internode.on.net [203.122.210.32]) by smtp3.adl2.internode.on.net (8.12.9/8.12.9) with ESMTP id i85HcIHY028427; Mon, 6 Sep 2004 03:08:19 +0930 (CST) Subject: Re: [Caml-list] Announcing the OMake build system version 0.9.1 From: skaller Reply-To: skaller@users.sourceforge.net To: "Marcin 'Qrczak' Kowalczyk" Cc: "chris.danx" , caml-list In-Reply-To: <87wtz8zogi.fsf@qrnik.zagroda> References: <4139ECD3.1050708@cs.caltech.edu> <001e01c492a6$872c7280$19b0e152@warp> <413A0921.7030607@ntlworld.com> <413A1E89.10806@libertysurf.fr> <1094361655.3352.476.camel@pelican.wigram> <87hdqc3kfr.fsf@qrnik.zagroda> <413B279C.3020304@ntlworld.com> <874qmc221f.fsf@qrnik.zagroda> <413B3455.7020905@ntlworld.com> <87wtz8zogi.fsf@qrnik.zagroda> Content-Type: text/plain Message-Id: <1094405897.3352.786.camel@pelican.wigram> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 06 Sep 2004 03:38:18 +1000 Content-Transfer-Encoding: 7bit X-Miltered: at nez-perce with ID 413B4F0E.000 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 marcin:01 'qrczak':01 kowalczyk:01 ntlworld:99 interscript:01 python:01 doen't:01 interscript:01 caveat:01 python:01 subdirectory:01 bootstrapped:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Mon, 2004-09-06 at 02:10, Marcin 'Qrczak' Kowalczyk wrote: > "chris.danx" writes: > > >> But how does it know it? How to specify that in a different way than > >> for make? > > > > Isn't that information encoded in the source files already? > > It's not encoded in an automatically extractable way. For example a > Perl script in my project includes a statement > open TABLES, ">char-tables.c"; > but I don't expect a build tool to understand Perl and deduce that > this script should be run to remake char-tables.c. Oh yes it does :) This is exactly what interscript DOES know how to do. Here is something similar, since I can't read Perl: @TABLES = ["Hello", "World"] @h = tangler("char-tables.c") @select(tangler) @for i in TABLES: tangle(i) This actually writes Hello World into the c file, its just Python with @ at the front so the parser doen't confuse it with text. If you change the TABLES, a new c file is created -- and interscript knows about it too (because the tangler function creates a tracked output sink ..) The only caveat here is: if you use a foreign script to write a file, interscript won't know about the file. If you use embedded Python, it does (provided you use an appropriate output object). > And it will not know that sources in one subdirectory should be > compiled using one compiler (the previous version) and sources in > another using another (bootstrapped version of the same compiler). It doesn't have to. It isn't a declarative system. It doesn't have to know how to compile files in one directory or the other.. it just executes the build commands you give it. > And it will not know the language of the sources to infer dependencies > from them. That isn't true either. It actually does know many languages, and you can plug in another if you want to. None of the tanglers I wrote actually bother to track dependencies but you could do it. The tanglers are mainly used to insert appropriate #line directives, but they can do other things. In particular the Perl tangler also understands perldoc, and the Python tangler can pretty print using coloured keywords. The thing is -- you don't need to know the dependencies. It helps, but it isn't necessary. > So, how would I specify how files should be processed? The usual way -- write the commands out. -- 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