# Copyright (C) 2001-2005, The Perl Foundation.
# $Id: parrot.pod 18689 2007-05-30 15:58:47Z coke $
=head1 NAME
docs/parrot.pod - Parrot
=head1 The Parrot Bytecode Interpreter
Parrot is a common bytecode format and interpreter for dynamic languages; it is
designed to run Perl 6 code efficiently, but is also intended to be
language-agnostic.
=head2 Documentation
The Parrot documentation is spread across a wide range of files. Good starting
points are:
=over 4
=item F<intro.pod>
An introductory article on what Parrot is and how to do some interesting things
with it.
=item F<overview.pod>
An overview of the Parrot architecture and design.
=item F<running.pod>
Brief descriptions of the different executables and how to run them.
=item F<faq.pod>
The Parrot FAQ.
=item F<glossary.pod>
A guide to some of the jargon that crops up repeatedly in Parrot development
(and in the documentation...)
=back
More detailed information on the design and implementation of Parrot can be
found in:
=over 4
=item F<pdds/>
This subdirectory contains all of the current Parrot Design Documents (PDDs).
These are intended to be detailed guides to the design of the various Parrot
subsystems; for instance, F<pdd03_calling_conventions.pod> specifies Parrot's
inter-routine calling conventions.
=item F<ops/>
This subdirectory contains documentation files that are created from the
corresponding opcode files at build time. These files describe what each opcode
does and specify what arguments they take.
=item F<pmc/>
This subdirectory contains documentation on several of the PMC types available
to Parrot. Currently only a few of the available PMCs have been documented.
(Patches welcome!)
=item F<dev/>
This subdirectory contains a number of files discussing various implementation
decisions made during the course of the development of Parrot. The intent is to
keep discussion of implementation-specific issues separate from the basic
design issues discussed in the PDDs.
=item F<vtables.pod>
A brief introduction to the vtable at the heart of all PMCs, and how to
implement your own PMC type.
=item F<embed.pod>
Describes the embedding subsystem in excruciating detail.
=item F<jit.pod>
A brief description of Parrot's Just-In-Time compiler.
=item F<memory_internals.pod>
An introduction to the Parrot GC subsystem
=item F<parrotbyte.pod>
The Parrot bytecode format.
=item F<packfile-perl.pod>, F<packfile-c.pod>
The APIs for accessing packed bytecode files (packfiles) from Perl and C.
=item F<strings.pod>
A description of the string implementation.
=item F<tests.pod>
Hints on writing tests for the Parrot interpreter.
=item F<debug.pod>
A beginner's guide to debugging the Parrot executable.
=item F<debugger.pod>
Documentation for C<pdb>, the Parrot debugger.
=back
=head2 Supported Platforms
Parrot compiles and runs on a large number of platforms, including all common
ones. The Parrot team is committed to supporting the following combinations as
"core platforms": Linux (x86), Win32, OS X (x86 and PPC), Cygwin, Tru64,
OpenVMS (Alpha), Solaris (Sparc), FreeBSD (x86).
=head2 Authors
Parrot is developed and maintained by the members of the
C<parrot-porters@perl.org> mailing list. The list is archived at:
L<http://nntp.perl.org/group/perl.perl6.internals>
=over 4
=item * Allison Randal is the chief architect.
=item * Chip Salzenberg (C<chip@pobox.com>) was the second chief architect.
=item * Dan Sugalski (C<dan@sidhe.org>) was the chief architect for the first
I<5 years> of the project. Parrot is largely his brainchild.
=item * Leopold Toetsch (C<lt@toetsch.at>) was the release manager for some
time. This position is currently rotated through several members of the
project team.
=item * Simon Cozens, Jeff Goff and Steve Fink were the release managers
for releases 0.0.1 - 0.0.4, 0.0.5 - 0.0.8, and 0.0.9 - 0.0.11 respectively.
They have all subsequently recovered.
=item * Many, many other people have contributed their time and expertise
to the Parrot project; see the F<CREDITS> file for details.
=back
=head2 Web pages
See:
=over 4
=item * L<http://www.parrotcode.org/>
=item * L<http://dev.perl.org/>
=item * L<http://svn.perl.org/>
=back
for more information.
syntax highlighted by Code2HTML, v. 0.9.1