Perl 6
Getting Involved: Revision 36
{toc: }

^ Introduction

See "Getting Involved with Perl 6 - an Update"<> by moritz.

^ Hacking on Perl 6 {Code, Tests, or Docs}

^^ Hacking on the VM (Parrot)

See the "Official Parrot Wiki"<> section on "Contributing to parrot".

^^ Hacking on the compiler and related tasks

If you haven't already, [Download Perl 6] to prepare. The "Perl 6 Community Development Server"<> provides free accounts for Perl 6 development.

^^^ Reading material for Pugs hackers

Besides these links, the Pugs distribution also provides README, `READTHEM` and `READTOO`.

* "Pugs Apocryphon 1"<> Overview of the Pugs project.
* "Doing Pugs-related development: Getting Started with Perl 6"<>.
* "A Peek Into Pugs Internals"<>
* "German language notes about compiling Pugs"<>

^^^ General Perl 6 tasks

A running list of tasks is kept at ""<>. It's a catch-all list so something on it is bound to match your skill set!

The precursor TASKS list is "in the repo"<>. This document is kept for posterity but is not maintained.

A specific test to help with is [Smart Linking].

^^^ Hacking on Rakudo

[Rakudo Hacking] - Information for hacking and contributing to Rakudo

Patches for updates to Rakudo should be sent to with {{[PATCH]}} in the subject.

You can then see all patches (and others) on "Perlbug"<[PATCH]%27%20)> or just "not-yet-applied patches"<|ASC|ASC|ASC&Query=%20%20(%20%20Queue%20%3D%20%27perl6%27%20)%20AND%20%20(%20%20Subject%20LIKE%20%27[PATCH]%27%20)%20AND%20%20(%20%20Status%20%3D%20%27new%27%20OR%20Status%20%3D%20%27open%27%20)&Rows=100&OrderBy=Created|||&Page=1&Format=%27%20%20%20%3Cb%3E%3Ca%20href%3D%22%2Frt3%2FTicket%2FDisplay.html%3Fid%3D__id__%22%3E__id__%3C%2Fa%3E%3C%2Fb%3E%2FTITLE%3A%23%27%2C%0A%27%3Cb%3E%3Ca%20href%3D%22%2Frt3%2FTicket%2FDisplay.html%3Fid%3D__id__%22%3E__Subject__%3C%2Fa%3E%3C%2Fb%3E%2FTITLE%3ASubject%27%2C%0A%27__Status__%27%2C%0A%27__QueueName__%27%2C%0A%27__OwnerName__%27%2C%0A%27__Priority__%27%2C%0A%27__NEWLINE__%27%2C%0A%27%27%2C%0A%27%3Csmall%3E__Requestors__%3C%2Fsmall%3E%27%2C%0A%27%3Csmall%3E__CreatedRelative__%3C%2Fsmall%3E%27%2C%0A%27%3Csmall%3E__ToldRelative__%3C%2Fsmall%3E%27%2C%0A%27%3Csmall%3E__LastUpdatedRelative__%3C%2Fsmall%3E%27%2C%0A%27%3Csmall%3E__TimeLeft__%3C%2Fsmall%3E%27>

^^^^ Rakudo Links

* "HTMLified Tests"<>
* "Graph of Current Test Progress"<>
* "#perl6 IRC Log"<>

^^^ Perl 6 tasks for Perl 6 programmers

[Preludification Candidates] discusses parts of Perl 6 that can be written in Perl 6.

There's also plenty to do related to the test suite, which is written in Perl 6. The *most urgent need now* is [test suite refactoring].
See "t/TASKS"<> for other work to do there.

You might also be interested to "Start Your Own Perl 6 Module"[How to Start a Perl 6 module project], or work one of the existing ones. (You might also want to check out [CPAN6].)

"Twenty or so of the 99Problems"<> series remain "unsolved" in perl6. Try coding a perl6 solution, express the solution as a test, and add to t/spec/integration/ in the test suite (see [test suite refactoring]). Use the "existing solutions"<> as guidance. If you have a solution, but do not have a comit bit for the pugs repository, try posting the solution on perl6-users list.

^^^ Hacking the Perl 6 docs

In general, official docs are stored in `docs/Perl6` and `docs/Pugs` in POD format, and they are fair game to improve directly. The exception is most of the documents in `docs/Perl6/Spec` which is the official Perl 6 specification. Improvements to the official spec should be suggested to the "perl6-language list"[Mail Lists, IRC, Archives].

* The "README"<> for would-be Pugs documentation contributors
* "The evil plan"<>. This mentions many things you can do to help out with docs, although it is a bit dated.
* A current task that needs help with filling out the "Spec for IPC, IO and Signals"<>. As a starting point, a lot of functions could just use the official Perl 5 docs copy/pasted in.
* "Perl 6 Tables"<> All in one Tutorial, linked and indexed. (English version just started.) It always needs help: write chapters, updates, fix typos.
* A central place for relevant introductions, tutorials, specifications is the Perl6::Doc Module, which also installs the p6doc commandline viewer; expect to see more content here in the near future.:
** (<>),
** (<>).

^ Fundraising and networking

* Anything you could do in the way of [Perl 6 Donations and Fundraising] and soliciting $$$ to support Perl 6 and Parrot development would be wonderful.

* See [Perl 6 Donors, Sponsors, and Supporters]. Become one! Find one! Thanks!!

* Every year, people, companies, "professionals"<> and foundations give numerous multi-million donations to universities for new buildings, new faculty, and so on. Perl 6 is at least as important, and will have far greater ultimate techno-economic leverage in the great majority of cases. (Also, don't just think about Perl 6.0 — you want to establish major momentum to carry on through Perl 6.2, Perl 6.4, and so on — including the production of a growing series of CPAN6 power modules.)

^ Work on this wiki

See [About This Wiki].

^ Donate computers for test and development systems

Anything reasonable would probably be helpful somewhere.

* There's a shortage of Windows PCs for Parrot testing at the moment (see "What You Test Changes How You Test"<>).
* When you donate equipment, be sure to update [Perl 6 Donors, Sponsors, and Supporters].

Upload Files

Click "Browse" to find the file you want to upload. When you click "Upload file" your file will be uploaded and added to the list of attachments for this page.

Maximum file size: 50MB

File Name Author Date Uploaded Size

Save Page As

Enter a meaningful and distinctive title for your page.

Page Title:

Tip: You'll be able to find this page later by using the title you choose.

Page Already Exists

There is already a page named XXX. Would you like to:

Save with a different name:

Save the page with the name "XXX"

Append your text to the bottom of the existing page named: "XXX"

Upload Files

Click "Browse" to find the file you want to upload. When you click "Add file" this file will be added to the list of attachments for this page, and uploaded when you save the page.

Add Tags

Enter a tag and click "Add tag". The tag will be saved when you save the page.