The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

TITLE

Parrot

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.

Documentation

The Parrot documentation is spread across the following files:

intro.pod

An introductory article on what Parrot is and how to do some interesting things with it.

overview.pod

An overview of the Parrot architecture and design.

running.pod

Brief descriptions of the different executables and how to run them.

faq.pod

The Parrot FAQ.

core_ops.pod

Description of the core opcodes in the Parrot assembly language.

parrot_assembly.pod

The master list of Parrot assembly operations; not all of these have been implemented, so you should stick to core_ops when writing your assembly programs.

io_ops.pod

Description of the opcodes used in Parrot's IO subsystem.

vtables.pod

Describes what PMCs are and how they work.

embed.pod

Describes the embedding subsystem in excruciating detail.

jit.pod

A brief description of Parrot's Just-In-Time compiler.

parrotbyte.pod

The Parrot bytecode format.

packfile-perl.pod, packfile-c.pod

The APIs for accessing packed bytecode files (packfiles) from Perl and C.

strings.pod

A description of the string implementation.

tests.pod

Hints on writing tests for the Parrot interpreter.

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).

Authors

Parrot is developed and maintained by the members of the perl6-internals@perl.org mailing list.

  • Dan Sugalski (dan@sidhe.org) is the chief architect.

  • Simon Cozens (simon@netthink.co.uk) was the release manager for releases 0.0.1 through 0.0.4.

  • Jeff Goff (drforr@hargray.com) is the current release manager.

Web pages

See:

for more information.