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 CAA14975; Mon, 6 Sep 2004 02:25:52 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id CAA15628 for ; Mon, 6 Sep 2004 02:25:51 +0200 (MET DST) Received: from mta01-svc.ntlworld.com (mta01-svc.ntlworld.com [62.253.162.41]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id i860Pprh031952 for ; Mon, 6 Sep 2004 02:25:51 +0200 Received: from [80.4.70.84] by mta01-svc.ntlworld.com (InterMail vM.4.01.03.37 201-229-121-137-20020806) with ESMTP id <20040906002511.DGSO5349.mta01-svc.ntlworld.com@[80.4.70.84]>; Mon, 6 Sep 2004 01:25:11 +0100 Message-ID: <413BAE8E.9020901@ntlworld.com> Date: Mon, 06 Sep 2004 01:25:50 +0100 From: "chris.danx" User-Agent: Mozilla Thunderbird 0.7.3 (X11/20040803) X-Accept-Language: en-us, en MIME-Version: 1.0 To: skaller@users.sourceforge.net CC: David Brown , caml-list Subject: Re: [Caml-list] Announcing the OMake build system version 0.9.1 References: <4139ECD3.1050708@cs.caltech.edu> <001e01c492a6$872c7280$19b0e152@warp> <413A0921.7030607@ntlworld.com> <413A1E89.10806@libertysurf.fr> <1094361655.3352.476.camel@pelican.wigram> <20040905132006.GA15531@old.davidb.org> <413B2BCB.3030000@ntlworld.com> <1094399607.3352.679.camel@pelican.wigram> In-Reply-To: <1094399607.3352.679.camel@pelican.wigram> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 413BAE8F.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; ntlworld:99 caml-list:01 2004:99 someway:01 dependencies:01 outputs:01 outputs:01 dependencies:01 ocamlc:01 ocamlopt:01 tools':01 ideally:01 interfacing:01 chris:01 chris:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk skaller wrote: > On Mon, 2004-09-06 at 01:07, chris.danx wrote: > >>I don't understand what you mean by this, but surely having a tool for >>the most common purposes is better than no tool at all. > > > That may be so, but can we do better? I mean, programmers are > always trying to automate things better, that's what our job is. Sometimes we do go to far, witness M$. :) Just a joke, please don't start a war over this little comment. > >> Gnatmake builds the >>library but the library needs to exist before you can build the rest of >>the program so you need someway to tell it to biuld the lib first. > > > No you don't! You're making an assumption about build processes > that specifying dependencies is fundamental. Yes, you're right. You don't need to make this assumption but you do need to specify what goes in the library and what does not. > But that isn't the case. Here is a perfectly viable build script: > > build program > build library > > You think that will work? It sure does! Here is the driver: > > limit = 10 > run build > while (--limit && new_outputs != old_outputs) > run build > > This isn't efficient but it works *without* specifying > dependencies or the correct build order. You didn't specify the dependancies in the "build" system, but you did in the files being compiled to some extent. Are you considering a language aware or language neutral solution? > If you want it to be faster -- specify > the component builds in the right order :) > > Point being -- getting the right order is an optimisation. > > >>Ada has the elaboration problem and it is up to the programmer to solve. >>:) The programmer needs to know the elaboration order they want in >>order to get the program to work. If there are elaboration issues the >>programmer must solve them themselves unless the tool can sort them out >>for them. I see no problem with this. > > > The problem is that the current technique for solving the ordering > problem is to compile and link libraries in a particular > order -- in other words, hand write the build script instead > of generating it. Yes this happens in Ada, but it is part of the Ada code (Ada elaboration is more complex). Putting Ada aside, I see no reason to do this in most cases for Ocaml though I am no expert. > However if the source code contained enough information, > the build scripts could be generated automatically. **That is what I want to happen** with the slight change that the program builds the actual program, library, whatever. For the cases the tool is not designed for we can rely on ocamlc/ocamlopt and the tools' semantics to cover it ourselves if need be. Ideally developers would not have to deal with that case but I'm not sure you can guarantee that when you're interfacing to other languages, etc. Chris ------------------- 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