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
[Caml-list] autocompile
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-04-12 (17:38)
From: skaller <skaller@u...>
Subject: Re: [Caml-list] autocompile
On Tue, 2004-04-13 at 02:38, Xavier Leroy wrote:
> > I have this annoying problem sometimes:
> > 
> > The files /usr/local/lib/ocaml/pervasives.cmi
> > and /usr/local/lib/ocaml/lablgtk2/gdk.cmi make inconsistent assumptions
> > over interface Pervasives
> >
> > Of course the problem is that I installed a new version
> > of Ocaml from a CVS build, but didn't rebuild lablgtk2.
> Rejoice that this error is caught rather than crashing randomly
> later (as can happen with library upgrades in C or C++).

I do: thanks!

> > Obviously, just saying 'reinstall lablgtk2' isn't
> > an answer: it's in the standard distribution location,
> > the installation process should handle that automatically.
> Sorry for nit-picking, but lablgtk2 is not part of the core OCaml
> distribution, so there is no way installing the latter can
> recompile the former.

I know it isn't in the core, but it -- and many other packages --
do install themselves in the standard location.

> But more generally you've just hit the reason why package management is
> needed for OCaml.  Transitively rebuild and reinstall packages that
> depend on an updated package is exactly the job of a package manager.

I was hoping that there might be a sensible intermediate level of
support which worked 'automagically' for simple Ocaml-only 
algorithms and data structures libraries, which typically
don't require any special build procedures.

> > I was thinking: why not build the dependencies
> > into the compiled files, so if a compiled file is
> > out of date it can be rebuilt automatically?
> I don't think this is sufficient.  

I agree, in general it isn't. 

However, consider turning this issue inside out.
What if you *specify* that it is sufficient?

For a wide class of libraries, it is enough.
So if the Ocaml standard library directory
is simply *deemed* to contain only such libraries,
the rebuilding can be automated.

This may mean, for example, that the rebuilding
would fail for some libraries, but the conclusion
should be that the library should not be put
in the standard location.

For example one may ask whether PCRE should go
in the standard location, since it may need to
be rebuilt if the underlying C libraries is rebuilt:
perhaps the build 'scans' the C headers looking
to see what flags are available and adds them
to the Ocaml source before compilation.

That kind of build process would not fit with the
simple autorebuild model .. so don't put PCRE in the
standard location.

John Skaller,
voice: 061-2-9660-0850, 
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: