
Cerion Armour-Brown, cerion@open-works.co.uk

Cerion worked on PowerPC instruction set support using the Vex
dynamic-translation framework.

Jeremy Fitzhardinge, jeremy@valgrind.org

Jeremy wrote Helgrind (in the 2.X line) and totally overhauled
low-level syscall/signal and address space layout stuff, among many
other improvements.

Tom Hughes, tom@valgrind.org

Tom did a vast number of bug fixes, and helped out with support for
more recent Linux/glibc versions, and set up the present build system.

Nicholas Nethercote, njn@valgrind.org

Nick did the core/tool generalisation, wrote Cachegrind and Massif,
and tons of other stuff.

Paul Mackerras

Paul did a lot of the initial per-architecture factoring that forms
the basis of the 3.0 line and is also to be seen in 2.4.0. He also did
UCode-based dynamic translation support for PowerPC, and created a set
of ppc-linux derivatives of the 2.X release line.

Dirk Mueller, dmuell@gmx.net

Dirk contributed the malloc-free mismatch checking stuff and various
other bits and pieces, and acted as our KDE liaison.

Donna Robinson, donna@terpsichore.ws

Keeper of the very excellent http://www.valgrind.org.

Julian Seward, julian@valgrind.org

Julian was the original designer and author of Valgrind, created the
dynamic translation framework, wrote Memcheck and 3.3.X Helgrind, and
did lots of other things.

Robert Walsh, rjwalsh@valgrind.org

Robert added file descriptor leakage checking, new library
interception machinery, support for client allocation pools, and minor
other tweakage.

Josef Weidendorfer, Josef.Weidendorfer@gmx.de.

Josef wrote Callgrind and the associated KCachegrind GUI.

Omega was written by Bryan Meredith and is maintained by Rich Coe.
DRD was written by and is maintained by Bart Van Assche.

Frederic Gobry helped with autoconf and automake.  Daniel Berlin
modified readelf's dwarf2 source line reader, written by Nick Clifton,
for use in Valgrind.  Michael Matz and Simon Hausmann modified the GNU
binutils demangler(s) for use in Valgrind.

David Woodhouse and Tom Hughes have helped out with test and build
machines over the course of many releases.

Many, many people sent bug reports, patches, and helpful feedback.

Development of Valgrind was supported in part by the Tri-Lab Partners
(Lawrence Livermore National Laboratory, Los Alamos National
Laboratory, and Sandia National Laboratories) of the U.S. Department
of Energy's Advanced Simulation & Computing (ASC) Program.
