Version française
Home     About     Download     Resources     Contact us    
Browse thread
Hoogle for Ocaml
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Richard Jones <rich@a...>
Subject: What is CPAN? (was: Re: [Caml-list] Hoogle for Ocaml)
On Thu, Dec 03, 2009 at 05:51:00PM +0100, rixed@happyleptic.org wrote:
> > Not really ..  I have been meaning for several years to implement
> > something like *CPAN* for OCaml.  CPAN is much more than what people
> > here seem to think it is.
> 
> Out of curiosity, what's in CPAN that's not in GODI ?

OK, I knew I'd have to answer this question :-)

CPAN is:

(1) A network of redundant mirrors which means you can always get the
tarball you need, even when the original site is down:

http://mirrors.geoexpat.com/cpan/authors/id/R/RW/RWMJ/
http://mirror.unej.ac.id/cpan/authors/id/R/RW/RWMJ/
http://mirrors.ucr.ac.cr/CPAN/authors/id/R/RW/RWMJ/
(more: http://search.cpan.org/mirror)

(2) CPAN unpacks each tarball and makes the source and documentation
available in a browsable way:

http://search.cpan.org/~rwmj/Net-FTPServer-1.122/lib/Net/FTPServer.pm
http://cpansearch.perl.org/src/RWMJ/Net-FTPServer-1.122/lib/Net/FTPServer.pm

(3) An excellent search tool:

http://search.cpan.org/search?query=IO%3A%3Astringy&mode=all

(4) A central namespace registry for Perl modules.  Once someone has
the name 'Net::FTPServer', if you want to write an FTP server, you
know you need to give it a different name.

(5) A testing network.  When you submit a new version of your module,
it is picked up by automated and manual testers around the world, who
build and test it on their systems (often oddball ones - eg. I get
reports about it failing to build on SunOS and AIX).

(6) A place where you can browse everything that Perl supports:

http://www.cpan.org/modules/by-module/
http://www.cpan.org/modules/01modules.index.html

Which is great advertising for Perl, because you can immediately
see the breadth of available libraries for Perl.

(7) A command line tool to download and install CPAN modules:

http://search.cpan.org/~andk/CPAN-1.9402/lib/CPAN.pm#DESCRIPTION

-- Note what CPAN is *not*:

It's not a packaging system.  Perl has its own packaging standard(s)
(like cabal for Haskell), but CPAN doesn't care.  It hosts source
tarballs.

It doesn't store binaries.

It's not strongly centralized.  Actually, it's very loose indeed.
Although there is a central place where you upload modules, they are
very loose about naming, content, licensing etc. (within limits of
course).

--

> Out of curiosity, what's in CPAN that's not in GODI ?

I think that Gerd Stolpmann has (to his credit) done a lot of the work
that CPAN does, but I also think it should be on a firmer footing,
mirrored more widely, the search tools should be linked from the OCaml
home page, and not tied to building modules, but to hosting source
tarballs.  And more inclusive - it should include *every* source
tarball -- as much OCaml source as possible.

Rich.

-- 
Richard Jones
Red Hat