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 XAA02379; Tue, 3 Jun 2003 23:55:24 +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 XAA02374 for ; Tue, 3 Jun 2003 23:55:23 +0200 (MET DST) Received: from swordfish.cs.caltech.edu (swordfish.cs.caltech.edu [131.215.44.124]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id h53LtLH05396 for ; Tue, 3 Jun 2003 23:55:22 +0200 (MET DST) Received: from fosters.cs.caltech.edu (fosters.cs.caltech.edu [131.215.44.21]) by swordfish.cs.caltech.edu (Postfix) with ESMTP id 7C3D3DF276; Tue, 3 Jun 2003 14:55:19 -0700 (PDT) Received: from cs.caltech.edu (localhost [127.0.0.1]) by fosters.cs.caltech.edu (8.12.9+Sun/8.12.5) with ESMTP id h53LtH0h003343; Tue, 3 Jun 2003 14:55:18 -0700 (PDT) Message-ID: <3EDD1945.7070701@cs.caltech.edu> Date: Tue, 03 Jun 2003 14:55:17 -0700 From: Jason Hickey Organization: Caltech User-Agent: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.4a) Gecko/20030404 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Chris Hecker Cc: "'caml-list@inria.fr'" Subject: Re: [Caml-list] ocaml and large development projects References: <4.3.2.7.2.20030517192812.033d9040@localhost> <4.3.2.7.2.20030602171041.045da898@localhost> In-Reply-To: <4.3.2.7.2.20030602171041.045da898@localhost> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; hickey:01 caml-list:01 hecker:01 ocamlopt:01 vaguely:01 ocamlc:01 inlining:01 cmx:01 partition:01 -pack:01 dependencies:01 digests:01 626:99 792:99 compiler:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Chris Hecker wrote: > Actually, ocamlopt compile speeds are already a problem for me, and my > project is only about 20% done, LOC-wise. I've been following this thread only vaguely. To summarize, minor changes to a utility file can cause a project recompile with ocamlopt. For large projects this can take a long time. For instance, it takes 3-10 min for the projects I work on. Too long to twiddle thumbs, but not long enough to go get coffee. This is not an issue for the byte-code compiler, ocamlc. Can't you use that? It should be fairly easy to add byte-code support to your build system. It is quite straightforward if you use make, for example. For us, byte-code performance is usually within a factor of 3 or so of native code, which is perfectly fine for testing. This is not really an issue with the design of ocaml, I would say. It is just how inlining works. One easy design solution might be to have an option to mark .cmx files with a -noinline flag. Then you would partition your project into parts, disabling inlining across the parts with something like "ocamlopt -pack -noinline". Dependencies would propagate across the parts only if the interface changes. The OCaml designers would have to weigh in on some scheme like this. You could consider our omake build system (http://mojave.caltech.edu) if you want to use MD5 digests for dependency analysis, but in general that will not solve the dependency problem. Congrats on the new baby! We just had a new baby too. Jason -- Jason Hickey http://www.cs.caltech.edu/~jyh Caltech Computer Science Tel: 626-395-6568 FAX: 626-792-4257 ------------------- 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