GSoC/GCI Archive
Google Code-in 2010 Parrot Foundation and The Perl Foundation

Eliminate printf-based error handling in packfile code

completed by: Matt Rajca

mentors: cotto

Task Description

Parrot's packfile code doesn't know that it's supposed to live in a library rather than be a single-purpose command-line tool.  The packfile code needs to use exceptions to signal error conditions rather than writing to stderr and requiring the return value to be checked.  Once you're done with this task, there should be no remaining uses of printf-family functions to indicate error conditions in src/packfile.  Note that several functions write to stdout as part of their normal operation.  Don't worry about these.  Here is an example of the kinds of changes needed.


Steps To Complete This Task

  1. Create a fork of parrot.git on
  2. Perform all the necessary code and/or documentation changes.
  3. Build parrot and run its test suite (make fulltest) to verify that things still work.
  4. Create a Github pull request (button on the upper right of your fork) to have your changes incorporated into the master repository.


  1. Parrot's packfile code will be much more embedder-friendly.
  2. Error conditions will be harder to ignore.


  1. C coding

Additional Links