Re: If i had a hammer...

From: Gerd Stolpmann (Gerd.Stolpmann@darmstadt.netsurf.de)
Date: Thu Jan 28 1999 - 22:24:28 MET


From: Gerd Stolpmann <Gerd.Stolpmann@darmstadt.netsurf.de>
To: caml-list@inria.fr
Subject: Re: If i had a hammer...
Date: Thu, 28 Jan 1999 22:24:28 +0100
Message-Id: <99012822230502.10116@schneemann>

On Thu, 28 Jan 1999, Markus Mottl wrote:

>I would really like to see a remote CVS-repository for OCAML somewhere. I
>am sure this would very strongly help people contribute collectively
>to projects written in OCAML. I have already asked at our university,
>but people there are a bit reluctant with software that they don't know
>so well and which allows remote access.
>
>Looking at other projects which make excessive use of this tool shows,
>how productive it can make people. It also attracts a lot of them -
>I think this would be really important for the whole OCAML-project.
>

A public repository would be great. You can simply see what's currently
happening at a glance; it shows that there is really a community that
favours Ocaml.

I think there are several steps:

- Find a server where the projects can be put

- Write a Web interface to simplify download

- Define a standard for documentation (very important for free software
  development) -- we can simply use an existing one such as 'info'
  or 'perldoc', or simply define a directory structure for html-pages

- Define a standard how to compile and install projects such that they
  can be used together

For the latter, I think a meta-makefile mechanism would be appropriate.
As Ocaml links always statically, there should be a tool

- that has as input a descriptive request what modules should be linked in

- that outputs a perfect Makefile that knows the linking order and automatically
  calls ocamlc/ocamlopt/ocamlmktop -- whatever meets the given requests best

For example, you could *describe* your request as follows:

        require Unix
        require Joe's_module
        require Mary's_module
        goal my_binary
        link my_binary = <requested libraries> m1.cmo m2.cmo

The meta-makefile processor reads this, searches in its database of already
installed modules what files are really meant by the given requests, orders
them such that they can be linked, and writes a Makefile that compiles
m1.ml to m1.cmo, m2.ml to m2.cmo and links all the cmo and cma files.

Note that a similar description could be given how to compile Joe's and Mary's
modules. These can of course require third modules that must also be linked in.
My suggestion addresses both installation of downloaded modules and how to
use them.

The really important point is that using modules found in a public repository
must be very simple. It would discourage potential users if they had to
read manuals very carefully to get the modules working. It should not be
necessary to study and configure makefiles to do a simple thing like a
software installation (people often think that installation is a simple
process and a more or less an unproductive task).

But the very first step is still to find a host for such a repository.

--
----------------------------------------------------------------------------
Gerd Stolpmann      Telefon: +49 6151 997705 (privat)
Viktoriastr. 100             
64293 Darmstadt     EMail:   Gerd.Stolpmann@darmstadt.netsurf.de (privat)
Germany                     
----------------------------------------------------------------------------



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:19 MET