English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
[Caml-list] Announcing the OMake build system version 0.9.1
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ 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

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