Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] [ANN] The Missing Library
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-04-25 (15:38)
From: Brian Hurt <bhurt@s...>
Subject: Re: [Caml-list] [ANN] The Missing Library
On Fri, 23 Apr 2004, Kenneth Knowles wrote:

> On Fri, Apr 23, 2004 at 03:23:42PM -0500, John Goerzen wrote:
> > But the fact that these libraries exist is, at its heart, a symptom of
> > the problems with the OCaml standard library.
> I'm just encouraging the dissenters to cooperate to more thoroughly demonstrate
> their case, and get a well-design library.

A large part of the problem is one of mindshare.  The fact that extlib is
out there isn't immediately obvious to someone just comming into Ocaml.  
In fact, it's rather hard to find.  So, someone new comes in, discovers
that such-and-such a function or functionality is missing from the
standard library, doesn't see a standard way to get said added to the 
standard library, and decides to help out the community by starting a 
parallel standard library with looser submission rules.  Lather, rinse, 

> I do suggest splitting domain-independent stuff like extended list and
> hashtable functions from specialized stuff like IMAP and config file
> parsers.

Personally, I see three levels of library functionality:

1) Core libraries, those libraries which are so core, so important that
it's hard to impossible to write programs without them.  Examples would be
Pervasives (duh), List, Array, etc.  This list may be expanded to include
those libraries needed to compile/run the compiler.  This level would be
maintained by the INRIA folks.

2) Standard Environment Libraries.  These would be the libraries a program
could count on to be installed in normal environments.  Examples would
include GUI libraries, various network protocols, an XML parser, etc.  
This would be a single, monolithic, project under a single license, but
one maintained by the community as a whole.

3) A CPAN-like tool.  This is for libraries that are not commonly used 
enough for inclusion into the standard environment (ex. PSQueue), or 
libraries with licensing issues.  Most programs shouldn't need any OPAN 
libraries, and no project should depend upon more than 1-2 of them.  The 
key here is a simple, common, install procedure for libraries.

Note that particular features/functionality can migrate between the 
levels.  The INRIA folks could decide that, for example, Hashtbl should 
get kicked out and moved down to the standard environment.  Or they could 
decide to move XML parsing into the core libraries.  The standard 
environment could decide to start including encryption libraries from 
OPAN, or they could kick PSQueue out into OPAN because not enough people 
are using it.

"Usenet is like a herd of performing elephants with diarrhea -- massive,
difficult to redirect, awe-inspiring, entertaining, and a source of
mind-boggling amounts of excrement when you least expect it."
                                - Gene Spafford 

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: