Mining software repositories at the source code level can provide a
greater understanding of how software evolves.
We present a tool for quickly comparing the source code of different
versions of a C program. The approach is based on partial abstract
syntax tree matching, and can track simple
changes to global variables, types and functions. These changes can
characterize aspects of software evolution useful for answering higher
level questions. In particular, we consider how they could be used to
inform the design of a dynamic software updating system.
We report results based on measurements of various versions of
popular open source
programs, including BIND, OpenSSH, Apache, Vsftpd and the Linux kernel.