This is a live mirror of the Perl 5 development currently hosted at
Major revision of perlhack and perlrepository
authorDave Rolsky <>
Mon, 31 Jan 2011 22:15:24 +0000 (16:15 -0600)
committerJesse Vincent <>
Fri, 4 Feb 2011 17:12:28 +0000 (12:12 -0500)
The existing perlhack is huge and takes a long time to get to key
information like "how to submit a patch". It also contains a massive
amount of (very useful) detail on the Perl interpreter, debugging,
portability issues, and so on.

Some parts of perlhack are just obsolete. For example, Larry really
isn't deeply involved on p5p any more.

Meanwhile, perlrepository _also_ contains a lot of useful information
on patching Perl, as well as a small git tutorial focused on working
with the Perl repository.

Taken together, the two documents overlap and conflict with each other.

This commit does the following:

== Reconcile conflicts and overlaps, remove obsolete information

I've separated out distinct pieces of information and organized them
into individual pod files. More on that below. I've also removed anything
that was obviously out of date.

== Make it easier for casual contributors to contribute.

The perlhack document now gets to "how to make a patch" very quickly. My
assumption is that most contributors to Perl are doing something small,
like fixing pod, adding a test, etc.

The documentation aimed at people doing more extensive hacking is still
there, but it's been moved so that it comes at the end of the document
or has been moved to another document.

I've made an effort to cross-reference the various documents so that
nothing gets lost.

== Get to the point

The perlhack document had a lot of discussion of general Perl culture.
I've trimmed a lot of this and moved some of it so it comes later.

== Per-file summary

=== perlrepository.pod

This is gone. Some of its content is now in perlhack. This includes
the bits on writing good commit messages, how (and where) to submit a
patch, etc.

The rest is now called perlgit, and is _only_ a git how-to.

=== perlhack.pod

This has been cut down quite a bit.

I changed the opening so it starts with a quick guide to submitting
small patches.

The document covers bug reporting, the p5p list, a quick how-to on
getting the source (including git, gitweb, and rsync), and a lot of
general information on patching perl and running tests.

Much of this material was already present, but I've done a fair amount
of editing for modernization and clarity.

Most of the information specific to C-level hacking has been moved to
other documents.

=== perlsource.pod

This is a guide to the Perl source tree. Most of the content was extracted
from perlhack. I've edited existing content and added details on some
parts of the tree that weren't covered.

=== perlinterp.pod

This is a tour of the Perl interpreter source and a walkthrough of
how it works that originally lived in perlhack. This has received very
little editing.

=== perlhacktut.pod

This is a walkthrough of creating a sample patch to the C core code that
originally lived in perlhack. This has received very little editing.

=== perlhacktips.pod

The perlhack document contained a lot of useful information on low-level
hacking details like debugging, compilation issues, portability, etc.
This has received very little editing.

I did remove some bits on ancient stuff related to Tru64 and IRIX.

No differences found