# Copyright (C) 2001-2010, Parrot Foundation.

=head1 NAME

docs/parrot.pod - Parrot

=head1 The Parrot Virtual Machine

Parrot is a language-agnostic common bytecode format and an interpreter for
dynamic languages.

=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<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<parrot_debugger>, 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 (x86), OS X (x86 and PPC), Cygwin,
FreeBSD (x86), NetBSD, OpenBSD, Solaris.
Here x86 includes the x86_64 architecture. x86 describes that Parrot is
supported to run on a 32-bit and 64-bit (AMD64 and Intel 64) CPU.

=head2 Authors

Parrot is developed and maintained by the members of the
C<parrot-dev@lists.parrot.org> mailing list. The list is archived at:
L<http://groups.google.com/group/parrot-dev/>
Many people have contributed their time and expertise
to the Parrot project; see the F<CREDITS> file for details.

=head2 Web pages

See:

=over 4

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

=item * L<https://trac.parrot.org/>

=item * L<http://github.com/parrot/parrot>

=back

for more information.

