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/multidispatch.pod
Multimethod dispatch for binary opcode functions.

docs/memory_internals.pod
This document tries to explain the internals of the Parrot memory subsystem, and the data structures related to memory management and garbage collection.

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 parrot_debugger, 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/c_functions.pod
C function decoration guidelines.

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

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
This document describes how to define, call, and return from Parrot subroutine objects and other invokables.

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/pdd18_security.pod
This PDD describes the security infrastructure of Parrot.

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

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

docs/pdds/pdd21_namespaces.pod
Description and implementation of 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/pdd28_strings.pod
This PDD describes the conventions for strings in Parrot, including but not limited to support for multiple character sets, encodings, and languages.

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 virtual machine.

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/pdd29_compiler_tools.pod
This PDD specifies the Parrot Compiler Tools (PCT).

docs/pdds/draft/pdd30_install.pod
This PDD outlines Parrot's installation system and support. Parrot's core installation system will provide support for binary packages, a working make install target, compiled installables, and FHS compliant search paths for the installables. This document also aims to solve the current problem of accessing installed source-only files, and to allow the optimization of config bootstrapping if a frozen config_hash is already linked.

docs/pdds/draft/pdd31_hll_interop.pod
This PDD describes Parrot's conventions and support for communication between high-level languages (HLLs). It is focused mostly on what implementors should do in order to provide this capability to their users.

Articles ^

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


parrot