[% setvar title More modules %]

This file is part of the Perl 6 Archive

Note: these documents may be out of date. Do not use as reference!

To see what is currently happening visit http://www.perl6.org/


More modules


  Maintainer: Michael G Schwern <schwern@pobox.com>
  Date: 19 Sep 2000
  Mailing List: perl6-stdlib@perl.org
  Number: 260
  Version: 1
  Status: Developing


Perl should come distributed with more modules.


Currently, in order to get a really useful Perl installation you have to immediately hit CPAN and download a battery of modules. This is kind of silly. Its a tedious step that can be eliminated if we expand what Perl comes with.

When a "how do I do X" type question pops up and is answered "module Y does X", a typical response is "is module Y in the core?" There is some trepidation about using CPAN modules because they must be downloaded and installed (often a difficult problem for programs which are to be distributed, especially to Windows and MacOS), and because of perceived instability.

Core modules also establish a lowest common version. If version 1.5 of module Y is distributed with Perl, yet version 1.6 is on CPAN, a program author can code for 1.5's API and be fairly certain it will work on most installations.

Core bloat?

The most obvious objection is core bloat. 5.6.0 is already over 5 megs and only going to get fatter. Throwing lots of modules into the core will only make it even bigger, possibly getting up to 10 megs! There are a few solutions for this.

The first is to provide several distributions of Perl. A minimalistic distribution might provide just perl and a handful of modules. Another provides the docs. Another a set of modules equivalent to the current set and yet another provides our extended set. CPAN/src/perl-X.X.X.tar.gz would be one big bundle encompassing all these sets. Other combinations might be made available.

Another is to provide several different install options. "make install" installs everything, as usual. "make small_install" installs just the current set of modules. "make tiny_install" installs a bare minimum, not even docs.

There's alot of crufy stuff in the source distribution that could be dumped. Eliminating lib/*.pl (except perl5db.pl) and eg/ will free up over 200k which makes room for a couple more modules.

Finally, we've got about 18 months before Perl 6 is expected to ship. In that time, DSL and cable modems will become more and more ubiquitous (my dad has one!) and pulling down 10 megs will be less of an issue for Joe Average. Users still on low bandwidth can get one of the slimmer distributions.

Which modules?

Some of the more obvious modules are:

The exact set is not so important as a consensus that its a Good Idea to start distributing more modules.




The integration and upkeep of existing CPAN modules is already a fairly well-understood procedure. The only foreseeable problem is configuring and testing those modules requiring network access, as this is not always available.


RFC 228 - Add memoize into the standard library