Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] ocaml and large development projects
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Jason Hickey <jyh@c...>
Subject: Re: [Caml-list] ocaml and large development projects
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