Browse thread
[Caml-list] Announcing the OMake build system version 0.9.1
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2004-09-05 (15:08) |
From: | skaller <skaller@u...> |
Subject: | Re: [Caml-list] Announcing the OMake build system version 0.9.1 |
On Sun, 2004-09-05 at 23:38, Marcin 'Qrczak' Kowalczyk wrote: > skaller <skaller@users.sourceforge.net> 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