\section{\module{cmpcache} ---
         Efficient file comparisons}

\declaremodule{standard}{cmpcache}
\sectionauthor{Moshe Zadka}{mzadka@geocities.com}
\modulesynopsis{Compare files very efficiently.}

The \module{cmpcache} module defines a function to compare files, taking all
sort of short-cuts to make it a highly efficient operation.

The \module{cmpcache} module defines the following function:

\begin{funcdesc}{cmp}{f1, f2}
Compare two files given as names. The following tricks are used to
optimize the comparisons:

\begin{itemize}
        \item Signatures (type, size and mtime) are computed via
              \refmodule{statcache}
        \item Files with identical type, size and mtime are assumed equal.
        \item Files with different type or size are never equal.
        \item The module only compares files it already compared if their
              signature changed.
        \item No external programs are called.
\end{itemize}
\end{funcdesc}

Example:

\begin{verbatim}
>>> import cmpcache
>>> cmpcache.cmp('libundoc.tex', 'libundoc.tex')
1
>>> cmpcache.cmp('libundoc.tex', 'lib.tex')
0
\end{verbatim}
