Involved Projects and Packages
The Google SparseHash project contains several C++ template hash-map implementations with different performance characteristics, including an implementation that optimizes for space and one that optimizes for speed.
Coccinelle is a program matching and transformation engine which
provides the language SmPL (Semantic Patch Language) for specifying
desired matches and transformations in C code. Coccinelle was
initially targeted towards performing collateral evolutions in Linux.
Such evolutions comprise the changes that are needed in client code
in response to evolutions in library APIs, and may include
modifications such as renaming a function, adding a function argument
whose value is somehow context-dependent, and reorganizing a data
structure. Beyond collateral evolutions, Coccinelle is successfully
used (by us and others) for finding and fixing bugs in systems code.
dwarves is a set of tools that use the DWARF debugging information inserted in
ELF binaries by compilers such as GCC, used by well known debuggers such as
GDB, and more recent ones such as systemtap.
Utilities in the dwarves suite include pahole, that can be used to find
alignment holes in structs and classes in languages such as C, C++, but not
limited to these.
It also extracts other information such as CPU cacheline alignment, helping
pack those structures to achieve more cache hits.
A diff like tool, codiff can be used to compare the effects changes in source
code generate on the resulting binaries.
Another tool is pfunct, that can be used to find all sorts of information about
functions, inlines, decisions made by the compiler about inlining, etc.
This package provides a code generator and runtime libraries to use Protocol
Buffers from pure C (not C++).
It uses a modified version of protoc called protoc-c.
This is an attempt to create a fast web interface for the git scm, using a builtin cache to decrease server io-pressure.