caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: skaller <skaller@users.sourceforge.net>
To: Xavier Leroy <xavier.leroy@inria.fr>
Cc: skaller <skaller@users.sourceforge.net>, caml-list <caml-list@inria.fr>
Subject: Re: [Caml-list] autocompile
Date: 13 Apr 2004 03:38:46 +1000	[thread overview]
Message-ID: <1081791525.20677.491.camel@pelican> (raw)
In-Reply-To: <20040412183845.A1527@pauillac.inria.fr>

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, mailto:skaller@users.sf.net
voice: 061-2-9660-0850, 
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net



-------------------
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


      reply	other threads:[~2004-04-12 17:38 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-11 11:01 skaller
2004-04-12 16:38 ` Xavier Leroy
2004-04-12 17:38   ` skaller [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1081791525.20677.491.camel@pelican \
    --to=skaller@users.sourceforge.net \
    --cc=caml-list@inria.fr \
    --cc=xavier.leroy@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).