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/practical_notes.pod
Practical Parrot Notes.

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/events.pod
Design Notes for Events.

docs/dev/fhs.pod

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/pmc_freeze.pod
Freeze/Thaw Design Notes.

docs/dev/pmc_object_design_meeting_notes.pod

docs/dev/wranglers.pod
This document attempts to outline a set of "best practices" for dealing with tickets in Parrot's RT system. It is targeted at Parrot developers and "Ticket Wranglers" and is I intended as advice or instruction for end users. Ticket filing procedures for end users are documented in docs/submissions.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/iterator.pod
Parrot Iterator Class.

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/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/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/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/pdd02_vtables.pod
This PDD presents the vtable entries, and their order, that all variables MUST provide.

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/pdd09_gc.pod
This PDD describes how DOD/GC systems work, and what's required of PMC classes.

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/pdd12_assembly.pod

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

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

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/pdd17_basic_types.pod
This PDD documents the core Parrot PMC types and their behavior.

docs/pdds/draft/pdd18_security.pod
This PDD describes the safety, security, and quota infrastructure of Parrot.

docs/pdds/draft/pdd19_pir.pod
This PDD describes PIR, a stable, middle-level language for both compiler and human to target on.

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

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

docs/pdds/draft/pddXX_cstruct.pod
The ParrotClass PMC is the default implementation (and the meta class) of parrot's HLL classes. It provides attribute access and (TODO) introspection of attribute names. It is also handling method dispatch and inheritance.

docs/pdds/draft/pddXX_pmc.pod
This document defines Parrot Magic Cookies (PMCs).

Articles ^

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


parrot