Version française
Home     About     Download     Resources     Contact us    
Browse thread
Installation of libraries with ocamlbuild
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: skaller <skaller@u...>
Subject: Re: [Caml-list] Installation of libraries with ocamlbuild
On Mon, 2007-04-02 at 19:42 +0200, Daniel Bünzli wrote:
> Le 2 avr. 07 à 19:22, skaller a écrit :
> 
> > I'm not sure that is a good idea .. IMHO it's premature.
> > Installation is highly 'personal' and OS dependent,
> > might include docs, man page, etc etc.
> 
> I'm sure it is a good idea. Only a standard coming from caml's  
> development team is likely to be widely adopted.

The caml development team alone does not have the expertise
to develop such a model in isolation: it requires a discussion 
and feedback from the wider community.

I personally use Ubuntu, which is Debian based .. but I don't
install Ocaml that way, I build it myself and put it in 
usr/local.

I also have Godi .. so I have two package managers on my
system already .. and ignore both.

I also run XP32, and XP64.

>  For example I  
> personally don't use ocamlfind and find very annoying any library  
> that _forces_ me to use it to install it.
> 
> I would be entirely satisfied by a very simple solution e.g. each  
> library in its own directory in `ocamlc -where`, with everything in  
> there (including documentation) according to a standard directory  
> layout.

That is one model, and one I would not like. I do not want
user libraries polluting the standard distro.

[Python does this .. and it crashes the debian installer
because I have my own code in the same place and it doesn't
compile .. and whoever wrote the python installer didn't
keep track of which packages belonged to Debian ..]

It is also not viable on multi-user systems, where the admin
installs Ocaml, but users install libraries.

I DO agree with you that a packaging model needs to be developed.

I personally think the proper solution is actually SOURCE not binary.
That is, you install sources .. never binaries. Ocamlbuild uses a
nominated cache directory for the binaries, and rebuilds automatically
any libraries required .. including when Ocaml itself is upgraded.

The cache would be set by an environment variable.

So .. my model is probably quite different from yours.
Ocaml is very fast, but libraries are a nightmare because every
patch changes the ABI requiring everything to be rebuilt from
source. I personally solve THAT problem by not using any
third party libraries, other than those I actually put the source
of into my project and build as part of my project.

Python puts packages in the official install location .. 
and it crashes the debian installer because I have my own code 
in the same place and it failed to  compile after a version upgrade .. 
whoever wrote the python installer didn't keep track of 
which packages belonged to Debian, and didn't continue recompilation
after the error either.

What I'm saying is that it isn't a trivial problem.

-- 
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net