Skip to content
This repository

Parrot Virtual Machine

branch: master

Release 6.3.0 (supported release)

No core or build changes since 6.2.0, just tests and benchmarks
latest commit 4a661a364d
Reini Urban rurban authored
Octocat-spinner-32 compilers [cage] remove redundant duplicate declarations March 10, 2014
Octocat-spinner-32 config examples: add cleanup March 19, 2014
Octocat-spinner-32 docs Release 6.3.0 (supported release) April 15, 2014
Octocat-spinner-32 editor Added DESCRIPTION May 25, 2012
Octocat-spinner-32 examples [codingstd] fix DESCRIPTION for dispatch.winxed March 19, 2014
Octocat-spinner-32 ext [doc][ci skip] Update -> May 19, 2013
Octocat-spinner-32 frontend Correct POD syntax errors in POD embedded in .c, .pmc, .pir, etc files. March 15, 2014
Octocat-spinner-32 include [cage] change UNUSED(arg) to SHIM in the decl [GH #1052] March 10, 2014
Octocat-spinner-32 lib Correct POD syntax errors in POD embedded in .c, .pmc, .pir, etc files. March 15, 2014
Octocat-spinner-32 ports Removed 'README' and updated it to 'README.pod' May 06, 2012
Octocat-spinner-32 runtime Correct POD syntax errors in POD embedded in .c, .pmc, .pir, etc files. March 15, 2014
Octocat-spinner-32 src examples: prepare winxed pirs March 19, 2014
Octocat-spinner-32 t Release 6.3.0 (supported release) April 15, 2014
Octocat-spinner-32 tools Release 6.3.0 (supported release) April 15, 2014
Octocat-spinner-32 .gitignore [cage] add .gdbinit and .lldbinit to .gitignore February 28, 2014
Octocat-spinner-32 .travis.yml [travis] allow_failures for codingstd_tests March 17, 2014
Octocat-spinner-32 CREDITS Prepare for the 6.2.0 release. March 18, 2014
Octocat-spinner-32 ChangeLog Release 6.3.0 (supported release) April 15, 2014
Octocat-spinner-32 [GH #877] Removed Parrot::Revision dependence in March 22, 2013
Octocat-spinner-32 DEVELOPING first batch of $Id$ removals November 08, 2010
Octocat-spinner-32 DONORS.pod Update to include a DESCRIPTION and some additional information on ho… May 23, 2012
Octocat-spinner-32 LICENSE Update license to Artistic 2.0. Resolves RT #43165. June 18, 2007
Octocat-spinner-32 MANIFEST [test] add t/steps/auto/expect-01.t configure step test April 15, 2014
Octocat-spinner-32 MANIFEST.SKIP [cage] regenerate MANIFEST.SKIP February 28, 2014
Octocat-spinner-32 PBC_COMPAT Revive pbc December 06, 2012
Octocat-spinner-32 PLATFORMS Release 4.10.0 - Red-eared Parakeet November 21, 2012
Octocat-spinner-32 README.pod [docs] README.pod tell that --optimize is recommended for packagers March 05, 2014
Octocat-spinner-32 README_cygwin.pod [codingstd][GH #851] Add missing (C) lines to POD January 02, 2013
Octocat-spinner-32 README_win32.pod [codingstd][GH #851] Add missing (C) lines to POD January 02, 2013
Octocat-spinner-32 RESPONSIBLE_PARTIES [doc] Add a note about VMS make to our changelog June 24, 2013
Octocat-spinner-32 TODO replace some references to with the appropriate links… January 17, 2012
Octocat-spinner-32 VERSION Release 6.3.0 (supported release) April 15, 2014
Octocat-spinner-32 api.yaml ChangeLog and api.yaml entries for #937 October 26, 2013
Octocat-spinner-32 parrotbug replace some references to with the appropriate links… January 17, 2012


README.pod - Parrot Virtual Machine


Parrot is a virtual machine designed to efficiently compile and execute bytecode for dynamic languages.


This code is distributed under the terms of the Artistic License 2.0. For more details, see the full text of the license in the file 'LICENSE'.


You need a C compiler, a linker, and a 'make' program.

If you plan to link Parrot with the ICU library, you must download and install it before configuring Parrot. You may obtain the ICU library at

You will also need Perl 5.8.4 or newer and Storable 2.12 or newer in order to run various configure and build scripts.

For most of the platforms we support, Parrot should build out-of-the-box. 'docs/parrot.pod' lists the core platforms, and 'PLATFORMS' provides reports on the platforms on which Parrot has been built and tested.


I. Install Git.

Linux: The method depends on your distribution. To install you should execute (as root or sudo <cmd>):

On Ubuntu/Debian (apt-based):

    apt-get install git-core

On Red Hat, Fedora (rpm-based):

    yum install git

on Gentoo (portage):

    emerge -av dev-vcs/git

Windows: There are 2 Git ports on Windows:


Macintosh OS X: An Internet search will locate a variety of git installers for Mac OS X, for example,

II. Obtaining Parrot from

To obtain a copy of the Parrot Git repository:

    git clone git://

This will checkout the master branch by default. To create a local branch which tracks the branch "some_branch":

    git checkout -b --track some_branch origin/some_branch

For reference, --track is now redundant as it is now the default behavior.

All the above URLs are read-only. If you are a Parrot core developer, then use the read-write URL:

    git clone

You can view the list of branches at


For now, unpack your Parrot tarball, (if you're reading this, you've probably already done that) and type


OR perl --optimize

to run the Configure script. For packagers or if you want your Parrot to run about 2x faster, use --optimize. If you want to improve your chances in debugging programs and stacktraces, omit --optimize and add --debugging instead.

The '' script extracts configuration information from the running perl5 program. You need to explicitly tell '' which compiler and linker to use. For example:

    perl --cc=cc --link=$CC --ld=$CC

See 'perl --help' for more options and 'docs/configuration.pod' for more details.

For systems like HPUX that don't have inet_pton please run

    perl --define=inet_aton

Running '' will generate a 'config.h' header, a 'Parrot::Config' module, platform files, and many Makefiles.

The file 'myconfig' has an overview of configure settings.

Next, run 'make' or 'gmake'. ('' will tell you which version of 'make' it recommends for your system.)

If you are building the ICU library (this is the default on most systems), you need to use 'GNU make' instead (or something compatible with it).

You can test Parrot by running 'make test'. You can run the tests in parallel with 'make TEST_JOBS=3 test'.

You can run the full test suite with

    make fulltest

NOTE: PLATFORMS contains notes about whether test failures are expected on your system.

You can install Parrot with,

    make install

By default, this installs in '/usr/local', with the Parrot executable in '/usr/local/bin'. If you want to install Parrot into another location use the following:

    perl --prefix=/dir/to/install/
    make install

But please note, the dynamic libs will not be found for non-standard locations unless you set the environment variable 'LD_LIBRARY_PATH' or something similar.

For where to go from here, see docs/parrot.pod and see docs/intro.pod. If you experience problems, please see the section "How To Submit A Bug Report" in docs/submissions.pod. These documents are in POD format, and you can view them with the command,

    perldoc -F docs/intro.pod

In addition, you may obtain an html-ized version of our docs -- which, in some respects, are more extensive than our POD documents -- with the following command:

    cpan JSON       # Needed by the next command
    make html

You may then view a local copy of the html documentation by navigating your favorite browser to the index page of the 'docs/html/' directory, i.e., 'docs/html/index.html'.


For documentation on the user-visible changes between this and previous versions of Parrot, see 'ChangeLog'.


The Parrot user mailing list is ''. You may subscribe to the mailing list by filling out the form at There is an archive of the mailing list at

For development discussions, see the information in docs/gettingstarted.pod.


For more information on how to report bugs and to submit patches, see docs/submissions.pod.


For more information on Parrot, see

Have fun, The Parrot Team.


Copyright (C) 2001-2014, Parrot Foundation.

Something went wrong with that request. Please try again.