Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 31af06939b
Fetching contributors…

Cannot retrieve contributors at this time

file 75 lines (52 sloc) 3.089 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
Proto -- making your Perl 6 work slightly easier

Proto is a hyper-lightweight dependency tracking and module installation
system. It helps you set up a running environment where you can play
with Rakudo Perl 6 and library modules with minimal hassle. It's not
comprehensive like Parrot's Plumage will be, it's an unreliable
prototype, as the name suggests. It is currently experimenting with the
module ecosystem of Rakudo *, which should accommodate multiple
instances of modules distinguished by :auth and :ver name parts.

Proto can bootstrap on Unix and Windows from a single file download, or
by cloning its Github repository. It keeps terminal output concise and
has few commands and options. You can use it to:

 1. Download, compile and install Parrot and Rakudo
 2. Download, compile, test and install Perl 6 modules
 3. Create new modules (in projects, with tests)

To install Proto, get the main script with this command (or a browser)
(all on one line without the \ if not in a Unix compatible shell):

 perl -MLWP::UserAgent -e"LWP::UserAgent->new->mirror( \
    '', '')"

To configure proto, type the following at the prompt:

 perl configure proto

To then install Rakudo (and Parrot), type the following at the prompt:

 perl install rakudo

If you already had a Rakudo installed, instead of having proto install
it again, you can simply adjust ~/.perl6/proto/proto.conf to tell it
where Rakudo and Parrot are on the system.

Installation of Parrot and Rakudo is merely a convenience; what proto
was really built for is installing modules. The command

 perl install <module> [<module> ...]

will look among its list of registered modules for <module>, and
download and build whatever it finds.

Should the downloaded module happen to explicitly depend on other
modules, these will be downloaded and built before the dependent module
is built. And so on, until it all bottoms out.

The upgrade command

 perl upgrade <module>

will check the module <module> and all that depend on it for upgrades,
and rebuild them in the required order. Omit the name of the module, and
all your installed modules will be upgraded.

See the file PIONEER for how to set up your project with proto, or let
the create-new-project script make one semi-automatically. TODO: convert
create-new-project (a bash script) into another Perl 6 module.

Removing a module is as simple as

 perl uninstall <module>

If a dependency cycle is detected during the download process, the
install is aborted and the dependency cycle is described. It might still
be possible to install all modules despite the cycle, but the mere fact
that there's a cycle merits human attention.

There are many things which proto does not do. Even so, it is the hope
of its authors that it might be of some use, and make Perl 6 poets bold
in splitting up their work into logical independent units.

Proto is (C) Copyright 2010 by the Proto contributors (as listed in
AUTHORS). The license is Artistic 2.0; see LICENCE.
Something went wrong with that request. Please try again.