Version 3 (modified by coke, 13 years ago)


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
  • 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 CPAN 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
    • Sun lint
    • splint
    • BSD lint
  • 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: