=head1 TITLE

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.

(Note that this was originally written around the time of Parrot v0.0.2,
and is in need of some updating).

=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<parrot_assembly.pod>

The master list of Parrot assembly operations; not all of these have
been implemented, so you should stick to those listed in the documentation
in F<ops/> when writing Parrot assembly.

There is significant overlap between this file and F<pdds/pdd06_pasm.pod>;
they may well be merged at some point in the future

=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), CygWin,
Win32, Tru64, OpenVMS (Alpha), Solaris (Sparc), FreeBSD (x86).

=head2 Authors

Parrot is developed and maintained by the members of the
C<perl6-internals@perl.org> mailing list. The list is archived at:
C<http://nntp.perl.org/group/perl.perl6.internals> 

=over 4

=item * Dan Sugalski (C<dan@sidhe.org>) is the chief architect.

=item * Simon Cozens (C<simon@netthink.co.uk>) was the release manager for 
releases 0.0.1 through 0.0.4.

=item * Jeff Goff (C<drforr@hargray.com>) was the release manager for 
releases 0.0.5 through 0.0.8.

=item * Steve Fink (C<steve@fink.com>) is the current release manager.

=back

=head2 Web pages

See:

=over 4

=item * L<http://dev.perl.org/>

=item * L<http://cvs.perl.org/>

=item * L<http://www.parrotcode.org/>

=back

for more information.
