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 RAA25246; Sun, 5 Sep 2004 17:08:38 +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 RAA24387 for ; Sun, 5 Sep 2004 17:08:37 +0200 (MET DST) Received: from smtp1.adl2.internode.on.net (smtp1.adl2.internode.on.net [203.16.214.181]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id i85F8Ysw028258 for ; Sun, 5 Sep 2004 17:08:36 +0200 Received: from [192.168.1.200] (ppp210-32.lns2.syd3.internode.on.net [203.122.210.32]) by smtp1.adl2.internode.on.net (8.12.9/8.12.9) with ESMTP id i85F8E4Y006804; Mon, 6 Sep 2004 00:38:32 +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: caml-list In-Reply-To: <87hdqc3kfr.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> Content-Type: text/plain Message-Id: <1094396893.3352.635.camel@pelican.wigram> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 06 Sep 2004 01:08:13 +1000 Content-Transfer-Encoding: 7bit X-Miltered: at nez-perce with ID 413B2BF2.001 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 38,:01 marcin:01 'qrczak':01 kowalczyk:01 sourceforge:01 interscript:01 'make:01 elide:01 interscript:01 gratuitous:01 dependencies:01 fixpoint:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Sun, 2004-09-05 at 23:38, Marcin 'Qrczak' Kowalczyk wrote: > skaller writes: > > Interscript works like this: > > > > if anything changes rebuild > > Rebuild what? Everything? It's not an option. Please understand this as a semantic specification. Rebuild everything means 'make it so the result is as if you rebuilt everything' -- if you can tell there is no need to rebuild something of course you don't. The issue is how you determine what you can elide from the build. Interscript currently does do just what I said and it works. It does some automatic dependency checking for generating code, to avoid gratuitous processing. I'm not suggesting to get rid of explicitly stated dependencies -- I'm saying that they're to be treated as cuts -- optimisations. > When I repeatedly make > a change in one file and try how it works, it would be silly to wait > several minutes for recompilation of everything else. Of course but you're missing the point... > It would be interesting to invent some alternative paradigm, but I've > never seen one. Neither have I. What I mean is: make doesn't work, it's entirely wrong, so it isn't even a candidate for a build paradigm. Fixpoint iteration works and is universal. So really you don't have any choices here -- there is ONLY one known correct paradigm, fixpoint iteration. The issue is how to make it efficient without destroying its correct semantics and universal nature. I already have some ideas about that: one needs to build a categorical model of the processing by specifying some kind of graph -- note the graph allows cycles. I actually *implemented* quite a lot of this some years ago using iTcl and Tk. The graph was visual. The build system was functional with memoisation (fancy for saying it used time stamped intermediate product files :) Believe me I needed such a highly advanced tool: my job was much more complex than most software projects -- I was writing a book, and that adds a LOT of additional project viewpoints and targets, particularly as the whole thing was literate programmed and well over 3000 pages :) Trust Knuth -- he gave up book writing and spent years developing a typesetting and literate programming system for this reason. -- 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