General Documentation ^

docs/overview.pod
A Parrot Overview.

docs/intro.pod
The Parrot Primer.

docs/gettingstarted.pod
Parrot Developer FAQ.

docs/submissions.pod
How to submit bug reports, patches and new files to Parrot.

docs/glossary.pod
Parrot Glossary.

docs/faq.pod
Parrot FAQ.

docs/parrot.pod
Parrot.

Specific Documentation ^

docs/configuration.pod
Parrot Configuration System.

docs/vtables.pod
Parrot Vtables.

docs/mmd.pod
Multimethod dispatch for binary opcode functions.

docs/strings.pod
This document describes how Parrot abstracts the programmer's interface to string types.

docs/memory_internals.pod
This document tries to explain the internals of parrot structures related to memory management and should give the answer 42, when questions are related to the whole and everything and memory management.

docs/parrotbyte.pod
The Parrot Bytecode (PBC) Format.

docs/jit.pod
This PDD describes the Parrot Just In Time compilation subsystem.

docs/native_exec.pod
Parrot Native Object Execution Subsystem.

docs/running.pod
running.

docs/porting_intro.pod
Parrot Subsystem Porting Introduction.

docs/debug.pod
This document describes how to debug various parts of Parrot.

docs/debugger.pod
This document describes pdb, the Parrot Debugger.

docs/tests.pod
Testing Parrot.

docs/embed.pod
Parrot embedding system.

Development Documentation ^

docs/dev/byteorder.pod
Byteorder Conversion Functions.

docs/dev/debugging_with_msvc.pod
This document describes how to get started with debugging on Microsoft Windows using Visual C++ 7 and later.

docs/dev/events.pod
Design Notes for Events.

docs/dev/fhs.pod

docs/dev/headerizer.pod
The Headerizer.

docs/dev/infant.pod
Infant Mortality.

docs/dev/jit_i386.pod
This PDD describes the i386 gcc JIT implementation.

docs/dev/longopt.pod
Long option parsing.

docs/dev/optimizer.pod
This document describes how the IMCC optimizer works.

docs/dev/parrot_api.pod
Notes on the PARROT_API macro.

docs/dev/pcc_state.pod

docs/dev/pccmethods.pod
Parrot Calling Conventions in C.

docs/dev/pmc_freeze.pod
Freeze/Thaw Design Notes.

docs/dev/pmc_obj_design_meeting_notes.pod
docs/dev/seatbelts.pod

PMC Documentation ^

docs/pmc/array.pod
This pod file documents the Array base class usage. For implementation details you should look inside the class file, found at src/pmc/array.pmc in the parrot source code.

docs/pmc/documentation.pod

docs/pmc/struct.pod
Accessing C Structs from Parrot.

docs/pmc/subs.pod
Parrot Subroutines.

Parrot Design Documents (PDD) ^

docs/pdds/README

docs/pdds/pdd00_pdd.pod
This document defines the content and format of Parrot Design Documents (PDDs).

docs/pdds/pdd03_calling_conventions.pod
Parrot's inter-routine calling conventions.

docs/pdds/pdd07_codingstd.pod
This document describes the various rules, guidelines and advice for those wishing to contribute to the source code of Parrot, in such areas as code structure, naming conventions, comments etc.

docs/pdds/pdd09_gc.pod
This PDD specifies Parrot's garbage collection subsystems.

docs/pdds/pdd13_bytecode.pod
This PDD describes the file format for Parrot Bytecode (PBC) files and the interface through which they may be manipulated programatically.

docs/pdds/pdd15_objects.pod
This PDD describes the semantics of Parrot's object and class systems.

docs/pdds/pdd17_pmc.pod
This PDD describes the internal structure and behavior of the Parrot Magic Cookie (PMC) data type.

docs/pdds/pdd20_lexical_vars.pod
This document defines the requirements and implementation strategy for lexically scoped variables.

docs/pdds/pdd21_namespaces.pod
Parrot Namespaces.

docs/pdds/pdd22_io.pod
Parrot's I/O subsystem.

docs/pdds/pdd23_exceptions.pod
This document defines the requirements and implementation strategy for Parrot's exception system.

docs/pdds/pdd24_events.pod
This document defines the requirements and implementation strategy for Parrot's event subsystem.

docs/pdds/pdd25_concurrency.pod
This document defines the requirements and implementation strategy for Parrot's concurrency models.

docs/pdds/pdd26_ast.pod
This PDD describes the node types and semantics of the Parrot Abstract Syntax Tree representation.

docs/pdds/pdd27_multiple_dispatch.pod
This PDD defines Parrot's multiple dispatch system.

docs/pdds/pdd_template.pod
Summary of the contents of the PDD.

docs/pdds/draft/pdd01_overview.pod
A high-level overview of the Parrot system.

docs/pdds/draft/pdd04_datatypes.pod
This PDD describes Parrot's internal data types.

docs/pdds/draft/pdd05_opfunc.pod
This PDD specifies how the opcode functions should behave and how they are called by the Parrot interpreter.

docs/pdds/draft/pdd06_pasm.pod
The format of Parrot's bytecode assembly language.

docs/pdds/draft/pdd08_keys.pod
This PDD aims to clear up the confusion regarding the implementation of keyed access to PMCs in Parrot.

docs/pdds/draft/pdd10_embedding.pod
What we believe people will do when embedding and extending Parrot, why they do it, and how.

docs/pdds/draft/pdd11_extending.pod
The extension API for Parrot is a simple, somewhat abstract, interface to Parrot for code written in C or other compiled languages. It provides about the same level of access to Parrot that bytecode programs have.

docs/pdds/draft/pdd14_bignum.pod
{{ NOTE: needs to be compared to current behavior of bignum library. Future directions?}}.

docs/pdds/draft/pdd16_native_call.pod
This PDD describes the native call interface, and the function signatures used to describe those functions.

docs/pdds/draft/pdd18_security.pod
This PDD describes the security infrastructure of Parrot.

docs/pdds/draft/pdd19_pir.pod
This document outlines the architecture and core syntax of the Parrot Intermediate Representation (PIR).

docs/pdds/draft/pdd28_character_sets.pod
This PDD describes the conventions expected for users of Parrot strings, including but not limited to support for multiple character sets, encodings and languages.

Articles ^

docs/art/pp001-intro.pod
docs/art/pp002-pmc.pod
docs/art/pp003-oop.pod


parrot