caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Jacques Garrigue <garrigue@kurims.kyoto-u.ac.jp>
To: roberto@dicosmo.org
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Alternative proposal: COAN
Date: Fri, 28 Feb 2003 18:20:16 +0900	[thread overview]
Message-ID: <20030228182016D.garrigue@kurims.kyoto-u.ac.jp> (raw)
In-Reply-To: <15963.19322.759255.37091@gargle.gargle.HOWL>

The idea to simplify package management in ocaml is certainly a good
one. I personally agree very much with Roberto, at least on the issues.

From: roberto@dicosmo.org
> But it is probably necessary here to clearly separate the different issues...
> at first sight, I see:
> 
> - centralized repository:
>     Issue: we want some central place where to look for Ocaml code
>            without resorting to google
> - easy installation:
>     Issue: I want to run advi to give flashy LaTeX presentation, and I want t
>            just get a binary for my nice OS I love so much, without having to
>            recompile anything
> - dependency tracking:
>     Issue: we would really really like to avoid reading "README"s
>            to discover the zillion packages on which the next future
>            generation Ocaml killer application will depend. Just
>            type "install XYZ" and that's it. 

His conclusion was that apt-get (or something similar) is the way to
go. I agree mostly with this too, but my experience with BSD ports and
ocaml upgrading nightmares makes me differ on details.

* For me the central repository should not contain the source themselves.
  This was an error with the CDK: the distribution becomes huge, and
  it is very difficult for the maintainers to track changes 
  by developpers (who do not necessarily want to work in that
  repository, for evident practical reasons). Not speaking of
  licensing problems.
  With BSD ports, the central repository only contains metadata, that
  it a directory for each package, with its name, its dependencies,
  where to find it, how to configure and install it, and eventually
  some patches to make it fit in the system.
  The central repository would be a small one containing only
  metadata, updated often, eventually by authors themselves. Users who
  want newest stuff update by cvs, others get snapshots. Ideally some
  snapshots go through testing to become releases.
  The sources themselves are distributed as tarballs. This may be a
  good idea to replicate them on a few ftp servers, but there is no
  reason to make it compulsory.
  
* Easy installation means that you should be able to download, compile
  and install the desired ocaml program or library in one single
  command, including all the dependencies.
  This does not mean that a binary should be available. A binary will
  only work with a single version of ocaml and all dependencies, which
  is way too restrictive. Binaries may be provided on a by OS basis,
  but then it is much more comfortable for users to use the packaging
  system provided by the OS (tgz on FreeBSD, rpms on redhat, deb on
  debian, pkg on OSX, ??? on windows...) If the basic framework is
  right, that work should be easy enough.

* Dependency resolution and automatic recompilation/reinstallation is
  the core of the problem.
  When you modify an ocaml library, all its dependencies have to be
  recompiled. You certainly want to automate this, and have some
  foolproof system to be able to go back to a stable state. This is
  also an area where a bit of compiler "support" may become necessary.
  At least, have different library directories for different version
  of ocaml, ideally some scheme a la OSX to install several versions
  of the same package in parallel.

I personally don't think that standardizing the tools to produce
individual package is a useful move. Providing good tools to ease
package construction matters, but enforcing them on developpers is
counter-productive.  What is needed is just the glue to make it
uniform from the user point of view. Ocamlfind can probably
help there for complex cases, but as simple cases work well enough
with ocamlc, I would prefer it to stay optional for end-users (this is
certainly OK to rely on it in the implementation of the system).

One last comment on Windows. Since most development is taking place on
Unix, I think this is reasonnable to make the presence of basic cygwin
tools a requirement for compiling packages. The presence of gnu make
and some shell commands should be enough for most. Handling of C
libraries is more complex, but this must often be handled also at the
source level.

Thanks for reading my personal opinions.

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


  parent reply	other threads:[~2003-02-28  9:20 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-24 16:54 Benjamin C. Pierce
2003-02-24 18:24 ` Chris Hecker
2003-02-24 20:17 ` Francois Rouaix
2003-02-24 20:28   ` Basile STARYNKEVITCH
2003-02-24 21:03   ` Brian Hurt
2003-02-24 21:10     ` Brian Hurt
2003-02-24 21:22       ` Benjamin C. Pierce
2003-02-25 10:54     ` roberto
2003-02-25 13:20       ` Sven Luther
2003-02-25 13:36         ` roberto
2003-02-25 16:07           ` Sven Luther
2003-02-25 14:17       ` MikhailFedotov
2003-02-25 17:15       ` Eric C. Cooper
2003-02-25 21:48         ` Michal Moskal
2003-02-25 22:14           ` Lauri Alanko
2003-02-26 14:06             ` Sven Luther
2003-02-27  8:05             ` Blair Zajac
2003-02-27  8:29             ` Xavier Leroy
2003-02-23 16:51               ` Chet Murthy
2003-02-27 15:39               ` [Caml-list] hierarchical modules John Carr
2003-03-01 18:09                 ` [Caml-list] " Xavier Leroy
2003-03-01 18:18                   ` Michal Moskal
2003-03-02 15:58                     ` Xavier Leroy
2003-02-25 22:59           ` [Caml-list] Alternative proposal: COAN Sven Luther
2003-02-26  9:47             ` Michal Moskal
2003-02-26 10:11               ` Sven Luther
2003-02-26 10:26                 ` Michal Moskal
2003-02-26 11:53                   ` Sven Luther
2003-02-26 10:35                 ` Olivier Andrieu
2003-02-26 12:03                   ` Sven Luther
2003-02-27  3:19                   ` Nicolas Cannasse
2003-02-23 15:05                     ` Chet Murthy
2003-02-27  4:54                       ` Nicolas Cannasse
2003-02-23 16:13                         ` Chet Murthy
2003-02-27  9:20                           ` Sven Luther
2003-02-27 10:39                         ` Damien Doligez
2003-02-28  9:20       ` Jacques Garrigue [this message]
2003-02-28 10:53         ` Sven Luther
2003-02-28 12:28         ` Jean-Christophe Filliatre
2003-02-28 13:08           ` Markus Mottl
2003-02-28 13:27             ` Sven Luther
2003-02-28 14:05               ` Jean-Christophe Filliatre
2003-02-28 14:43                 ` Sven Luther
2003-02-28 15:58                   ` Benjamin C. Pierce
2003-03-01 18:03                 ` Michal Moskal
2003-03-01  8:14         ` Blair Zajac
2003-03-02 18:21         ` Xavier Leroy
2003-03-02 20:09           ` Sven Luther
2003-03-02 21:38           ` Doug Bagley
2003-03-03  2:39         ` Nicolas Cannasse
2003-03-03  9:07           ` Sven Luther
2003-03-03  9:24             ` Nicolas Cannasse
2003-03-03  9:37               ` Sven Luther
2003-02-26 18:42 Jeff Bowden

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=20030228182016D.garrigue@kurims.kyoto-u.ac.jp \
    --to=garrigue@kurims.kyoto-u.ac.jp \
    --cc=caml-list@inria.fr \
    --cc=roberto@dicosmo.org \
    /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).