Cleaning the Parrot Cage

There are many tasks of the Parrot Cage Cleaner. The main set of documentation about which can be found in the Parrot distribution under docs/project/cage_cleaners_guide.pod.

These items might provide good entry points for new committers - they don't necessarily require knowledge of parrot internals, but help "keep parrot's cage clean", making it easier to to advance development.

Tasks include:

  • ConvertTestsToParrot
  • VerifyExamples
  • Increasing the warnings level in the various compilers and then fixing the code to remove the warnings
    • gcc
    • icc
    • Sun Studio
    • cygwin's gcc
    • mingw32
    • Microsoft Visual Studio
  • Static analysis of the code using Coverity Prevent
    • scan results:
    • to get an account to access the scan page, send an email to: scan-admin@…
    • to run Coverity Prevent against the latest Parrot release, follow these steps:
  1. Download the latest Parrot release from and unpack it somewhere
  2. Ensure that the path to cov-configure is in your PATH (something like export PATH=$PATH:$HOME/prevent-linux-2.4.0/bin/)
  3. Run cov-configure -co /usr/bin/cc
  4. Run cov-configure -co /usr/bin/g++
  5. Go into the Parrot build directory and run perl
  6. Run cov-build -e emit -o output --config $HOME/prevent-linux-2.4.0/config/coverity_config.xml make
  7. This should then produce an emit directory and an output directory
  8. Tar up the emit and output directories (call it something like parrot-<version_number>-covbuild.tar.gz) and put the file somewhere where it can be ftp'd or http'd
  9. Send an email to with the contents: v1:parrot:PASSWORD:URL, where PASSWORD is the password for submitting parrot builds, and URL is the location where the build can be downloaded.
  • Static analysis of the code using various lints
  • const ing the C-language source code.
    • this allows the compiler to pick up more potential errors in the code
  • Running (and developing!) the coding standards tests (see docs/pdd/pdd07_codingstd.pod and the t/codingstd/*.t)

Warnings explanation for gcc: