From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id IAA20801 for caml-redistribution; Mon, 22 Sep 1997 08:53:47 +0200 (MET DST) 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 SAA12571 for ; Wed, 17 Sep 1997 18:53:03 +0200 (MET DST) Received: from postbox.dai.ed.ac.uk (postbox.dai.ed.ac.uk [129.215.41.196]) by nez-perce.inria.fr (8.8.7/8.8.5) with SMTP id SAA14227 for ; Wed, 17 Sep 1997 18:53:01 +0200 (MET DST) Received: from jupiter (jupiter.dai.ed.ac.uk [129.215.41.30]) by postbox.dai.ed.ac.uk (8.6.13/8.6.12) with ESMTP id RAA26716 for ; Wed, 17 Sep 1997 17:53:00 +0100 Date: Wed, 17 Sep 1997 17:52:59 +0100 Message-Id: <11948.199709171652@jupiter> From: William Chesters MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: caml-list@inria.fr Subject: Re: ocaml: demand-driven compilation? In-Reply-To: <199709161536.IAA10793@kronstadt.rahul.net> References: <6086.199709131752@venus> <199709161536.IAA10793@kronstadt.rahul.net> X-Mailer: VM 6.22 under Emacs 19.34.1 Sender: weis Ian T Zimmerman writes: > Yes, it would definitely be possible to beef up ocamldep. The result > would be a reimplementation of make in ocaml. Why reinvent the wheel? > And why do you dislike makefiles anyways? They are the right tool for > the job. There are three things to know in building an executable: what modules are needed; are they up to date; what commands are needed to compile/link them? `make' addresses the second (trivial) point and provides a framework for going *some* way to help with the third. You have to bridge the remaining gap yourself. In ocaml (as in Java) this means duplicating information: the compiler has already used your sources to find out what modules are needed. Furthermore the task of inferring what ocaml and native libraries were needed for the link is easy for the compiler, but a bit annoying for me. That's why I dislike makefiles. make comes in at the wrong level, or at least, at a level which was only ever right because C had no module system worth the name.