best-fit, rather than first-fit, algorithm.
ability to handle free()s with zero size (needed for gzip read
support).
ability to start the heap someplace else (defined by HEAP_START).
ability to limit growth of the heap (via HEAP_LIMIT).
debugging sanity checks (ifdef DEBUG).
allocation tracing support, to help debugging (ifdef ALLOC_TRACE).
and from me:
ability to pick a (smaller) first-fit algorithm (via ALLOC_FIRST_FIT).
lots of comments.
If heap limits and all of the debugging features are disabled (the default),
and ALLOC_FIRST_FIT is defined (not the default), compiled with -O on the
alpha the new version is the same (object) size as the old version.