<P>Needless to say, the source code in perl-current is usually in a perpetual
state of evolution. You should expect it to be very buggy. Do <STRONG>not</STRONG> use
it for any purpose other than testing and development.</P>
<P>Always submit patches to <EM><A HREF="mailto:perl5-porters@perl.org">perl5-porters@perl.org</A></EM>. This lets other
porters review your patch, which catches a surprising number of errors
in patches. Either use the diff program (available in source code
form from <EM><A HREF="ftp://ftp.gnu.org/pub/gnu/">ftp://ftp.gnu.org/pub/gnu/</A></EM>), or use Johan Vromans'
<EM>makepatch</EM> (available from <EM>CPAN/authors/id/JV/</EM>). Unified diffs
are preferred, but context diffs are accepted. Do not send RCS-style
diffs or diffs without context lines. More information is given in
the <EM>Porting/patching.pod</EM> file in the Perl source distribution.
Please patch against the latest <STRONG>development</STRONG> version (e.g., if
you're fixing a bug in the 5.005 track, patch against the latest
5.005_5x version). Only patches that survive the heat of the
development branch get applied to maintenance versions.</P>
<P>Your patch should update the documentation and test suite.</P>
<P>To report a bug in Perl, use the program <EM>perlbug</EM> which comes with
Perl (if you can't get Perl to work, send mail to the address
<EM><A HREF="mailto:perlbug@perl.com">perlbug@perl.com</A></EM> or <EM><A HREF="mailto:perlbug@perl.org">perlbug@perl.org</A></EM>). Reporting bugs through
<EM>perlbug</EM> feeds into the automated bug-tracking system, access to
which is provided through the web at <EM><A HREF="http://bugs.perl.org/">http://bugs.perl.org/</A></EM>. It
often pays to check the archives of the perl5-porters mailing list to
see whether the bug you're reporting has been reported before, and if
so whether it was considered a bug. See above for the location of
the searchable archives.</P>
<P>The CPAN testers (<EM><A HREF="http://testers.cpan.org/">http://testers.cpan.org/</A></EM>) are a group of
volunteers who test CPAN modules on a variety of platforms. Perl Labs
(<EM><A HREF="http://labs.perl.org/">http://labs.perl.org/</A></EM>) automatically tests Perl source releases on
platforms and gives feedback to the CPAN testers mailing list. Both
efforts welcome volunteers.</P>
<P>To become an active and patching Perl porter, you'll need to learn how
Perl works on the inside. Chip Salzenberg, a pumpking, has written
articles on Perl internals for The Perl Journal
(<EM><A HREF="http://www.tpj.com/">http://www.tpj.com/</A></EM>) which explain how various parts of the Perl
interpreter work. The <CODE>perlguts</CODE> manpage explains the internal data
structures. And, of course, the C source code (sometimes sparsely
commented, sometimes commented well) is a great place to start (begin
with <CODE>perl.c</CODE> and see where it goes from there). A lot of the style
of the Perl source is explained in the <EM>Porting/pumpkin.pod</EM> file in
the source distribution.</P>
<P>It is essential that you be comfortable using a good debugger
(e.g. gdb, dbx) before you can patch perl. Stepping through perl
as it executes a script is perhaps the best (if sometimes tedious)
way to gain a precise understanding of the overall architecture of
the language.</P>
<P>If you build a version of the Perl interpreter with <CODE>-DDEBUGGING</CODE>,
Perl's <STRONG>-D</STRONG> command line flag will cause copious debugging information
to be emitted (see the <CODE>perlrun</CODE> manpage). If you build a version of
Perl with compiler debugging information (e.g. with the C compiler's
<CODE>-g</CODE> option instead of <CODE>-O</CODE>) then you can step through the execution
of the interpreter with your favourite C symbolic debugger, setting
breakpoints on particular functions.</P>
<P>It's a good idea to read and lurk for a while before chipping in.
That way you'll get to see the dynamic of the conversations, learn the
personalities of the players, and hopefully be better prepared to make
a useful contribution when do you speak up.</P>
<P>If after all this you still think you want to join the perl5-porters
mailing list, send mail to <EM><A HREF="mailto:perl5-porters-subscribe@perl.org">perl5-porters-subscribe@perl.org</A></EM>. To
unsubscribe, send mail to <EM><A HREF="mailto:perl5-porters-unsubscribe@perl.org">perl5-porters-unsubscribe@perl.org</A></EM>.</P>
<P>
<HR>
<H1><A NAME="author">AUTHOR</A></H1>
<P>This document was written by Nathan Torkington, and is maintained by