Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2007-09-25 (11:45)
From: Nicolas Pouillard <nicolas.pouillard@i...>
Subject: Re: [Caml-list] ocamlbuild
Excerpts from skaller's message of Mon Sep 17 18:21:34 +0200 2007:
> On Mon, 2007-09-17 at 13:56 +0200, Nicolas Pouillard wrote:
> > Excerpts from skaller's message of Wed Sep 05 10:36:46 +0200 2007:
> > > hi .. I've got an ocamlbuild project which is hanging
> > > forever. Top shows 100% CPU and 2% memory. Any ideas how 
> > > this could happen?
> > > 
> > > I have a suspicion ocamlbuild can't handle directories
> > > properly..
> > > 
> > 
> > Are  you  on  windows? If yes what kind of environment you have and what OCaml
> > you have.
> > 
> > If  it's  Unix,  have  you symbolic links that make cycles (this case has been
> > handled, but I cannot see something else).
> > 
> > Can you also try it with -no-sanitize.

Have you try this, since this part can be very time consuming.

> Our build system is portable, we need Ocamlbuild code to also be
> entirely portable. We know at present it doesn't work on Windows.
> But the problem is on Linux.
> Now, I have no idea what the problem was because I deleted the entire
> workspace and re-created it from the repository and it went away.
> We don't make any symbolic links because the script is portable,
> and you can't make them on Windows.
> So just keep an eye out for someone having a similar problem.

Is you source tree very big?

> Erick reports another issue: ocamlbuild tries to rebuild 
> libraries a code depends on -- but not the system libraries.

Yes it even don't know that's system libraries.

> The idea of building a library is to *avoid* having to do
> any dependency checking on the module level. Is there some
> way to fix this? I.e, to 'make' a library, and then have
> it treated as a 'system' library.

Yes you can do it by showing it the directory with compiled files.
Then you have to explain it that all these .cmo,.cmi... are not junk files.

Example of using a library in /usr/lib/ocaml/foolib

$ ln -s /usr/lib/ocaml/foolib foolib

$ cat _tags
"foolib": include, precious

The first tag (include) is equivalent to a `-I foolib' given to ocamlbuild. The second tag (precious, also known as not_hygienic) tell him to don't report these files as junk and propose their deletion.

Nicolas Pouillard aka Ertai