Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Completeness of "Unix" run-time library
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Alex Baretta <alex@b...>
Subject: [Caml-list] Re: OCaml's Cathedral & Bazaar
Diego Olivier Fernandez Pons wrote:
> 
> Integer une bibliotheque a une distribution est un choix quasi
> irrevocable. Les mesaventures de SML sont suffisamment demonstratives
> : les differentes equipes ne sont toujours pas parvenues a se mettre
> d'accord et a implementer uniformement une norme qui change tout le
> temps alors qu'elle ne prevoit rien de plus que des tableaux, quelques
> foncteurs et des entrees sorties basiques.

Diego is right. We don't need to integrate all external contributions to 
the standard library. Yes, a central repository would be cool, and my 
company, too, would help finance it or staff it. Yet, the Caml team 
should consider some necessary completions or corrections to the 
standard library. Here are some points worth considering:

* We have functional Maps and imperative Hashtbls; we have imperative 
Queues but no functional BatchedQueues or the like. I have a 
BatchedQueue module which I'd be more than glad to contribute to the 
standard library, but it's really a half hour job anyway.

* We have data structure modules with grossly incoherent signatures:
(* Hashtbl module *)
val add : ('a, 'b) t -> 'a -> 'b -> unit

e.g. Hashtbl.add table key value

(* Map.S signature *)
val add : key -> 'a -> 'a t -> 'a

e.g. MyMap.add key value map

* Ocaml is a functional programming language but the only regular 
expression library in the standard distribution (Str) is stateful 
(hence, non-reentrant) library. A better approach that would guarantee 
an ample degree of backward compatibility would be to create and 
Str.Make functor instantiating a copy of all the state variables, so 
that multithreaded programs could instantiate a copy of Str for every 
thread. It would be something. Yet a functional regexp library is needed 
in the standard distribution.

I could probably think of a couple more issues if I had time enough. 
Anyhow, such inconsistencies and deficiencies should be avoided in 
well-thought standard library for a well thought and well supported 
"programming tool of choice for the discriminating hacker". In my 
opinion, it would be reasonable for INRIA to delegate the development of 
such a replacement standard library to a managed community project (see 
Mozilla, the Linux kernel, the Fedora project and whatnot). The 
community could do a lot to support the Ocaml development effort, if 
only there were some official protocol for cooperation with the official 
Caml team.

***

In consideration of our common belief that all Camlers are created equal 
and endowed by their License with certain unalienable rights, and that 
among these are Use, Modification, and the pursuit of Higher 
abstractions, it is their duty, to throw off such a Standard Library, 
and to provide new Modules for their future software development.

Alex "Hancock" Baretta, with some help from Tom Jefferson ;)

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