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
Traudt, Mark wrote:
> I am new to ObjectiveCaml and am wondering whether it has been used for any
> large projects (i.e. hundreds of thousands or more lines of code, possible
> 
>>100 modules)?  If so, how well has it scaled, in terms of performance,
> 
> memory usage, compile time, and any other relevant characteristics?  If not,
> is this because there are known issues that would prevent it from being
> effectively used beyond a certain size project?

We use OCaml in several projects.  Two of them are in the medium-sized 
category: a compiler (mojave.caltech.edu, ~300K lines), and a theorem 
prover (metaprl.org, ~250K lines).  Together, about 3000 files, 50-100 
functors.  The OCaml toolset scales well, with no real issues.  Compile 
time appears to scale linearly in the size of the project, with a slight 
exception for linking.  Typical numbers are 3-10min (it depends on the 
project) for a full native-code build, about 10sec link time, on a 1GHz 
PIII-class machine, Linux, 256MB.  I haven't measured memory usage; it 
hasn't been an issue.

One issue to be aware of: if you build native code, when you change a 
module, then all dependent modules must be recompiled.  This can be 
surprising when a small change to a utility module causes a near full 
recompile of the project.  The byte-code compiler does not have this 
issue, and is sufficient for testing in most cases.

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