From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id 8BB1DBBAF for ; Thu, 3 Dec 2009 19:00:37 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkwDAKuLF0tQRFuwX2dsb2JhbACcBRUNCgQWvBiEMgSDGQ X-IronPort-AV: E=Sophos;i="4.47,336,1257116400"; d="scan'208";a="41314087" Received: from furbychan.cocan.org ([80.68.91.176]) by mail1-smtp-roc.national.inria.fr with ESMTP; 03 Dec 2009 19:00:37 +0100 Received: from rich by furbychan.cocan.org with local (Exim 4.63) (envelope-from ) id 1NGFym-0004l2-KT; Thu, 03 Dec 2009 18:00:36 +0000 Date: Thu, 3 Dec 2009 18:00:36 +0000 To: rixed@happyleptic.org Cc: caml-list@yquem.inria.fr Subject: What is CPAN? (was: Re: [Caml-list] Hoogle for Ocaml) Message-ID: <20091203180036.GA17732@annexia.org> References: <20091203161710.GA14880@annexia.org> <20091203165100.GA17415@fp-desktop.fr.evistel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20091203165100.GA17415@fp-desktop.fr.evistel.com> User-Agent: Mutt/1.5.13 (2006-08-11) From: Richard Jones X-Spam: no; 0.00; cpan:01 ocaml:01 0100,:01 cpan:01 ocaml:01 tarball:01 tarball:01 lib:01 lib:01 sunos:01 haskell:01 tarballs:01 gerd:01 stolpmann:01 tarballs:01 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