<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2003/07/3001bb0ec83622213b1bd18747888dce"
  from="Xavier Leroy &lt;xavier.leroy@i...&gt;"
  author="Xavier Leroy"
  date="2003-07-23T09:35:52"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))"
  prev="2003/07/ac1c2c8aca7cd5fb3b971997abf519d8"
  next="2003/07/29d3d4246f320c31566fbe65671742e3"
  prev-in-thread="2003/07/bfc407e07222d7f3eb199fe58b855f66"
  next-in-thread="2003/07/9230d148855a720312892000175b9fcd"
  prev-thread="2003/07/94b1d15bcfe80899b726ba1495ec2b0f"
  next-thread="2003/07/8abf4736210b0660fe0c16d517643761"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="[Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/9dd0cec623926fb5532d7122508b57a1"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-07-15T18:10:00"
  subject="[Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/0fd1f0849ea0ce2cf089321d7c0a3360"
  from="Erik Arneson &lt;erik@a...&gt;"
  author="Erik Arneson"
  date="2003-07-15T18:37:45"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/ea9fff535ebbc6622e8c36351b18a54d"
  from="John Max Skaller &lt;skaller@o...&gt;"
  author="John Max Skaller"
  date="2003-07-18T08:09:18"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
</msg>
</msg>
<msg 
  url="2003/07/f7b4aa2d0a84e58c6924f06c465b7e56"
  from="BdB &lt;benoit.de-boursetty+caml-list@m...&gt;"
  author="BdB"
  date="2003-07-16T03:16:48"
  subject="RE: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/430ba2f0d5e352fe3d3ab284abcba225"
  from="Alexander V. Voinov &lt;avv@q...&gt;"
  author="Alexander V. Voinov"
  date="2003-07-16T03:26:27"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/e87953acb90a952363801bc1df77a4f7"
  from="Issac Trotts &lt;ijtrotts@u...&gt;"
  author="Issac Trotts"
  date="2003-07-16T05:53:04"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/2eaee2c96b619b3643d8feaaa92eb3e7"
  from="BdB &lt;benoit.de-boursetty+caml-list@m...&gt;"
  author="BdB"
  date="2003-07-16T06:46:46"
  subject="RE: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/52db5848fcf82796cf6022e25fc64b51"
  from="Wolfgang Müller &lt;Wolfgang.Mueller2@u...&gt;"
  author="Wolfgang Müller"
  date="2003-07-16T07:07:52"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
</msg>
<msg 
  url="2003/07/f99c8935e3441152ae1bb768aa473b06"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-07-16T09:23:08"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/3e705863bc62cb54a2d111f29ce8606f"
  from="Wolfgang Müller &lt;Wolfgang.Mueller2@u...&gt;"
  author="Wolfgang Müller"
  date="2003-07-16T09:51:41"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
</msg>
</msg>
<msg 
  url="2003/07/739bd950bd9b10477d05a8498b7920ec"
  from="Florian Hars &lt;hars@b...&gt;"
  author="Florian Hars"
  date="2003-07-17T08:43:11"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
</msg>
</msg>
</msg>
</msg>
<msg 
  url="2003/07/df59067a3acf7c65b561299dca88a439"
  from="Florian Hars &lt;hars@b...&gt;"
  author="Florian Hars"
  date="2003-07-16T06:53:48"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
</msg>
</msg>
<msg 
  url="2003/07/deb5455086ee806891b17a4b212cab00"
  from="John Max Skaller &lt;skaller@o...&gt;"
  author="John Max Skaller"
  date="2003-07-18T08:14:29"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/3b065504b55d12e81921bb2ba4cd2ebb"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-07-18T08:43:05"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/a067f7bc4c785dfb0c6faf5b34c24d05"
  from="Stefano Zacchiroli &lt;zack@b...&gt;"
  author="Stefano Zacchiroli"
  date="2003-07-18T15:46:42"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/7213dc20c5990d568cae2fb882e4a432"
  from="Yamagata Yoriyuki &lt;yoriyuki@m...&gt;"
  author="Yamagata Yoriyuki"
  date="2003-07-18T20:50:05"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/eb412fda98ac8bf9360e60e95e98168c"
  from="Daniel_Bünzli &lt;daniel.buenzli@e...&gt;"
  author="Daniel_Bünzli"
  date="2003-07-19T11:25:02"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/83dd33705f196cf876ccec02b9061192"
  from="Yamagata Yoriyuki &lt;yoriyuki@m...&gt;"
  author="Yamagata Yoriyuki"
  date="2003-07-19T20:07:17"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
</msg>
</msg>
</msg>
</msg>
</msg>
<msg 
  url="2003/07/3030babb32ddc815ce2c7e68d6d3ad7f"
  from="Shawn Wagner &lt;shawnw@s...&gt;"
  author="Shawn Wagner"
  date="2003-07-18T14:18:08"
  subject="Re: [Caml-list] CTAN/CPAN for Caml (COCAN ...?)">
<msg 
  url="2003/07/33414aef219389adb4601f3031e6a48c"
  from="Gerd Stolpmann &lt;info@g...&gt;"
  author="Gerd Stolpmann"
  date="2003-07-19T11:55:27"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/bace975ca45aebeb14a9c19ade934cbd"
  from="Fernando Alegre &lt;fernando@c...&gt;"
  author="Fernando Alegre"
  date="2003-07-19T12:18:59"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/be804e6bc462dddab4d6e6c3f1e94752"
  from="Gerd Stolpmann &lt;info@g...&gt;"
  author="Gerd Stolpmann"
  date="2003-07-19T12:38:46"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/7f32abd85cd705b39286a3e20e116899"
  from="Fernando Alegre &lt;fernando@c...&gt;"
  author="Fernando Alegre"
  date="2003-07-19T13:21:06"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/6cb882d4a63966c724c885fa1940d677"
  from="Kip Macy &lt;kmacy@f...&gt;"
  author="Kip Macy"
  date="2003-07-19T22:58:14"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
</msg>
</msg>
<msg 
  url="2003/07/63af20811c9e84b192d032d879a6feca"
  from="Yamagata Yoriyuki &lt;yoriyuki@m...&gt;"
  author="Yamagata Yoriyuki"
  date="2003-07-19T20:07:13"
  subject="Re: [Caml-list] GODI">
</msg>
<msg 
  url="2003/07/c820f41c594e6cd00e8768dfd44bf325"
  from="BdB &lt;benoit.de-boursetty+caml-list@m...&gt;"
  author="BdB"
  date="2003-07-19T20:43:39"
  subject="RE: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/a1b19e1b8d9a516e63f8728a98961859"
  from="Gerd Stolpmann &lt;info@g...&gt;"
  author="Gerd Stolpmann"
  date="2003-07-20T09:56:01"
  subject="RE: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/bc37898285bcc8b1838a79ded3d71379"
  from="Yamagata Yoriyuki &lt;yoriyuki@m...&gt;"
  author="Yamagata Yoriyuki"
  date="2003-07-20T23:12:11"
  subject="Re: [Caml-list] GODI">
<msg 
  url="2003/07/998efdd5551e8b337991d9f4873b5bf8"
  from="Fernando Alegre &lt;fernando@c...&gt;"
  author="Fernando Alegre"
  date="2003-07-21T12:02:12"
  subject="Re: [Caml-list] GODI">
</msg>
</msg>
<msg 
  url="2003/07/3fe2d2b33e5a4c1c6109d677289ebfb7"
  from="Christian Lindig &lt;lindig@e...&gt;"
  author="Christian Lindig"
  date="2003-07-21T07:29:36"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/44de6457bd9fde8e64c7d1592dc8de5e"
  from="james woodyatt &lt;jhw@w...&gt;"
  author="james woodyatt"
  date="2003-07-21T16:19:48"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/a4e0fa1cf37db22e155d9acc6d34ccfd"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-07-21T16:32:10"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/0a5f2dacacca17992f2e2963e1524aa7"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-07-21T16:37:47"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
</msg>
<msg 
  url="2003/07/7a57fbdd692f07b575674612dcf31218"
  from="james woodyatt &lt;jhw@w...&gt;"
  author="james woodyatt"
  date="2003-07-21T20:37:28"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
</msg>
<msg 
  url="2003/07/a0bedc6842121520ab3b5f664ac6f928"
  from="BdB &lt;benoit.de-boursetty+caml-list@m...&gt;"
  author="BdB"
  date="2003-07-21T21:52:23"
  subject="RE: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
</msg>
</msg>
<msg 
  url="2003/07/ac1c2c8aca7cd5fb3b971997abf519d8"
  from="Christian Lindig &lt;lindig@e...&gt;"
  author="Christian Lindig"
  date="2003-07-23T07:03:00"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
</msg>
</msg>
<msg 
  url="2003/07/d5059f75285610cb844239c6ab8b370a"
  from="BdB &lt;bdbkun@w...&gt;"
  author="BdB"
  date="2003-07-22T00:05:21"
  subject="RE: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/7f338a2670b16c7ae372668f8f46e1f1"
  from="Alan Post &lt;apost@r...&gt;"
  author="Alan Post"
  date="2003-07-22T02:37:35"
  subject="[Caml-list] licensing (was Re: GODI (was: CTAN/CPAN for Caml (COCAN ...?)))">
<msg 
  url="2003/07/b293b70a1c0afdda84010f43a52d57ad"
  from="Dominique Quatravaux &lt;dom@i...&gt;"
  author="Dominique Quatravaux"
  date="2003-07-22T07:56:17"
  subject="Re: [Caml-list] licensing (was Re: GODI (was: CTAN/CPAN for Caml (COCAN ...?)))">
</msg>
<msg 
  url="2003/07/987eadf8deea599705086897932658f9"
  from="BdB &lt;benoit.de-boursetty+caml-list@m...&gt;"
  author="BdB"
  date="2003-07-22T08:05:28"
  subject="RE: [Caml-list] licensing (was Re: GODI (was: CTAN/CPAN for Caml (COCAN ...?)))">
</msg>
</msg>
<msg 
  url="2003/07/bfc407e07222d7f3eb199fe58b855f66"
  from="Yamagata Yoriyuki &lt;yoriyuki@m...&gt;"
  author="Yamagata Yoriyuki"
  date="2003-07-22T15:29:43"
  subject="Re: [Caml-list] GODI">
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
<msg 
  url="2003/07/3001bb0ec83622213b1bd18747888dce"
  from="Xavier Leroy &lt;xavier.leroy@i...&gt;"
  author="Xavier Leroy"
  date="2003-07-23T09:35:52"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/9230d148855a720312892000175b9fcd"
  from="Gerd Stolpmann &lt;info@g...&gt;"
  author="Gerd Stolpmann"
  date="2003-07-23T13:21:03"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/41ca86a45fadb7dc799ed79a9333239e"
  from="Eray Ozkural &lt;exa@k...&gt;"
  author="Eray Ozkural"
  date="2003-07-25T20:27:22"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
</msg>
</msg>
<msg 
  url="2003/07/38c33b7f235093a2587cedd867208033"
  from="David Brown &lt;caml-list@d...&gt;"
  author="David Brown"
  date="2003-07-23T17:56:48"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
<msg 
  url="2003/07/4c78d32ca53d82038fbab446ee6e1d9e"
  from="Fernando Alegre &lt;fernando@c...&gt;"
  author="Fernando Alegre"
  date="2003-07-23T18:36:23"
  subject="Re: [Caml-list] GODI (was: CTAN/CPAN for Caml (COCAN ...?))">
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</msg>
</thread>

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

Someone objected that this isn't a Caml-specific issue and that it can
be handled by standard packaging tools.  Perhaps, but the problem is
that there are no standard packaging tools.  Even among Linux
distributions, the packaging tools vary widely.  Not to mention other
Unixes (BSD, Solaris, Tru64, ...), and MS Windows.  This flies in the
face of the cross-platform portability offered by the core Caml
system.  It's not reasonable to expect that the world will convert
overnight to Debian's "apt".  It's not reasonable either to expect
library writers to package their libs for 8 different packaging
systems, especially when most of them wouldn't touch Windows with a pole.
That's why other cross-platform programming environments
such as Perl and Python have developed their own packaging technology.

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.

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.

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.

- Xavier Leroy

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

</contents>

</message>

