Proto -- making your life slightly easier Proto is (C) Copyright 2010 by the Proto contributors (as listed in AUTHORS). The license is Artistic 2.0; see LICENCE. Proto is a hyper-lightweight dependency tracking and module installation system. Its only purpose is to help you set up a running environment where you can play with Perl 6 modules with minimal hassle. It is not to be taken too seriously. It is not a full-fledged module installation system, as Parrot's Plumage aims to be. It is a prototype; in fact, its very name was chosen to indicate this fact. It is currently trying to prototype ideas for the loadable module ecosystem of Rakudo *, which can also handle multiple copies of modules distinguished by :auth and :ver name parts. Proto bootstraps on Unix and Windows from a single file download. It keeps terminal output concise. It has few commands and options. It does automatically handle the dependencies between your projects. What proto will do for you: 1. Download, compile and install Parrot and Rakudo 2. Download, test and install Perl 6 modules 3. Create new modules (in projects, with tests) 4. Help your Perl 6 code use all these modules To install Rakudo (and Parrot), type the following at the prompt: % ./proto configure % ./proto install rakudo Installation of Parrot and Rakudo is merely a convenience; what proto was really built for is installing modules. The command % ./proto 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 % ./proto 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 % ./proto 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.