caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Gerd Stolpmann <info@gerd-stolpmann.de>
To: Xavier Leroy <xavier.leroy@inria.fr>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))
Date: 23 Jul 2003 15:20:55 +0200	[thread overview]
Message-ID: <1058966457.32559.37.camel@ares> (raw)
In-Reply-To: <20030723113546.A24774@pauillac.inria.fr>

Am Mit, 2003-07-23 um 11.35 schrieb Xavier Leroy:
> I have followed this discussion with interest, although other
> commitments prevented me from replying earlier.
> 
> I think there are two completely orthogonal issues:
> 
> 1- Caml library packaging: standardizing and automating the
> configuration, compilation, installation, dependency handling and
> re-compilation when dependents change.
> 
> 2- Name space management: avoiding the unfortunate situation where
> several packages define compilation units that have the same names.
> 
> I agree with Gerd that the first issue (library packaging) is by far
> the most acute.  The lack of a packaging framework currently makes
> using third-party Caml libs in a development much harder than it
> should be.
> 
> [...]
> That's why other cross-platform programming environments
> such as Perl and Python have developed their own packaging technology.

They did it also to demonstrate their usefulness in system
administration. I don't see that this is the natural application for a
universal language like O'Caml, so we could also reuse existing
packaging technologies provided they are portable enough. This is the
reason why I chose the NetBSD system for my experiments (which I have
actually done on Linux and Solaris, just to test the portability).
 
> Library packaging is one of those "soft", un-glamorous problems: there
> are no hard, open problems, just an endless series of small problems
> to be solved and policy decisions to be taken.  I had interesting
> discussions with several of you concerning possible designs, but
> apparently these efforts ran out of steam.  I'm very happy to see that
> Gerd (with his eminent practical sense) is giving it a try, and I wish
> he'd get more constructive feedback on this.

What I would like to hear is that:

- people are really interested in a source distribution
- people want to spend time and help packaging
- people want to contribute resources (e.g. network disk space)

The problem is that I have only very limited time for this, and I hope
that once the project is set up my assistance would not be needed any
longer.

> Now, the name space management issue seems over-inflated to me.
> Yes, it can happen, and may become a serious issue once we have
> hundreds of libs that need to coexist.  But I think we can still get
> a lot of mileage out of the current "global namespace for compilation
> units" model.  In particular, most libraries can be set up so that
> they define only *one* top-level module (i.e. compilation unit):
> 
> - put all sources in one file, possibly with sub-modules
>   (not as ugly as it sounds -- see my Cryptokit library for an example);
> - put all user-visible definitions in one file, say Mylib.ml, and 
>   put internal definitions in other files with unlikely names such as
>   MylibInternalFoo.ml, MylibInternalBar.ml, etc
> - use ocamlc -pack to assemble the library files into one compilation
>   unit.
> 
> Some people reject ocamlc -pack on the grounds that it prevents
> link-time elimination of unused sub-modules.  I think they are jumping
> to conclusions.  First, for many libraries, there is essentially no
> opportunity for this link-time elimination, as every sub-module is
> used.  Second, many libraries are small enough that the increase in
> code size doesn't matter much.  Third, this is a "quality of
> implementation" issue: I might be able to implement this link-time
> elimination for the native-code compiler (ocamlopt -pack) at some
> future time.  The problem remains for bytecode, though, but is perhaps
> less acute due to the small size of bytecode.

I think the real problem is that -pack is not supported on all
platforms, or only if you install GNU binutils. So up to now I have
understood -pack as an experiment.

> Finally, as this discussion demonstrates eloquently, there is no
> obviously good solution to the name space management problem.  Yes,
> various things can be done either at the language level or at the
> compiler level to support finer identification and re-naming of
> compilation units.  But I'd rather not settle on a half-baked solution
> to a non-acute problem.

Namespaces are not only a technical problem, but also a matter of good
organization. This is why almost every suggestion looks half-baked.
Furthermore, it was a bit surprising for me that most participants of
the discussion favoured hierarchical solutions, which would mean we need
some kind of "authority" administering the hierarchy. Very unlikely that
we ever get this, or can agree on it. (Don't forget that the Perl people
are often system administrators, and they are used to this kind of
management.) I really think that we should view namespaces as indexes to
an open, distributed database of modules (if this problem ever gets
acute), at least currently this would me more adequate to the grade of
organization of the O'Caml community.

Gerd
-- 
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany 
gerd@gerd-stolpmann.de          http://www.gerd-stolpmann.de
------------------------------------------------------------

-------------------
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:[~2003-07-23 13:21 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-15 18:09 [Caml-list] CTAN/CPAN for Caml (COCAN ...?) Richard Jones
2003-07-15 18:37 ` Erik Arneson
2003-07-18  8:08   ` John Max Skaller
2003-07-16  3:13 ` BdB
2003-07-16  3:22   ` Alexander V. Voinov
2003-07-16  5:53     ` Issac Trotts
2003-07-16  6:43       ` BdB
2003-07-16  7:07         ` Wolfgang Müller
2003-07-16  9:22         ` Richard Jones
2003-07-16  9:51           ` Wolfgang Müller
2003-07-17  8:42         ` Florian Hars
2003-07-16  6:52   ` Florian Hars
2003-07-18  8:14 ` John Max Skaller
2003-07-18  8:42   ` Richard Jones
2003-07-18 15:46     ` Stefano Zacchiroli
2003-07-18 20:49       ` Yamagata Yoriyuki
2003-07-19 11:25         ` Daniel Bünzli
2003-07-19 19:47           ` Yamagata Yoriyuki
2003-07-18 14:29   ` Shawn Wagner
2003-07-19 11:55     ` [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?)) Gerd Stolpmann
2003-07-19 12:18       ` Fernando Alegre
2003-07-19 12:38         ` Gerd Stolpmann
2003-07-19 13:20           ` Fernando Alegre
2003-07-19 22:58             ` Kip Macy
2003-07-19 20:05           ` [Caml-list] GODI Yamagata Yoriyuki
2003-07-19 20:40           ` [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?)) BdB
2003-07-20  9:55             ` Gerd Stolpmann
2003-07-20 18:30               ` Christian Lindig
2003-07-21 16:19                 ` james woodyatt
2003-07-21 16:32                   ` Richard Jones
2003-07-21 16:37                     ` Richard Jones
2003-07-21 20:37                     ` james woodyatt
2003-07-21 21:48                     ` BdB
2003-07-22 20:48                   ` Christian Lindig
2003-07-22  0:01                 ` BdB
2003-07-22  2:35                   ` [Caml-list] licensing (was Re: GODI (was: CTAN/CPAN for Caml (COCAN ...?))) Alan Post
2003-07-22  7:57                     ` Dominique Quatravaux
2003-07-22  8:02                     ` BdB
2003-07-22 15:29                   ` [Caml-list] GODI Yamagata Yoriyuki
2003-07-20 23:11               ` Yamagata Yoriyuki
2003-07-21 12:01                 ` Fernando Alegre
2003-07-23  9:35       ` [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?)) Xavier Leroy
2003-07-23 13:20         ` Gerd Stolpmann [this message]
2003-07-24 16:34           ` Eray Ozkural
2003-07-23 17:56         ` David Brown
2003-07-23 18:36           ` Fernando Alegre

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=1058966457.32559.37.camel@ares \
    --to=info@gerd-stolpmann.de \
    --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).