This directory contains a C++ Memory Management facility, aiming to allow full integration between coexisting different memory management techniques. The abstractions of "Container", "Heap Zone", and "Top Level Collection", are implemented as described in the paper "A Customisable Memory Management Framework" included in directory doc. A guide for users is in the file doc/CMMguide.tex; it also acts as a specification of the public interface to this package. Additionally, this file contains some information about how to incorporate your own memory manager into CMM. The included files are: cmm.{H,C} This is a rework of the Bartlett's Mostly Copying Collector for C++. The code has been modified to make it consistent with the C++ CMM interface. HeapStack.{H,C} Two versions of a stack-like CmmHeap have been implemented. A fixed size stack zone (SimpleHeapStack), made from a couple of ContainerStacks, and an expandable stack zone (HeapStack) made from a list of ContainerStacks. demo[12].C Demo programs, whose source shows how to use CMM in very simple cases. test[12345].C test suite. For a non trivial example of use of CMM, get the file groebner.tar.gz from: barsotti.dm.unipi.it:~posso/development/groebner This is a program to compute Groebner bases, whose memory management requires appropriate techniques. Different C++ GCs are included to allow experimentation. INSTALLATION ============ This program has been tested under SunOS4 and Linux. It compiles using g++ (version 2.2.2 or later) Type: > make to produce the gcposso.a library. The Makefile entry test and demo will produce and run test and demo programs. Bug Reports & Suggestions to the author: Tito Flagella - tito@di.unipi.it The following people have contributed to this work: Giuseppe Attardi is co-author of the paper "A Customisable Memory Management Framework", and of the design of CMM. Carlo Traverso and John Abbott contributed to the design of the interface, taking part in numerous meetings of the POSSO project. Joachim Hollman gave precious feedback on the first implementation of CMM.