mmtk 0.32.0

MMTk is a framework for the design and implementation of high-performance and portable memory managers.
Documentation
# Development Principles

These define how we deal with code.

## Why we need principles?
* They keep the project focused on the right direction.
* They keep the project disciplined.
* They make users' expectation for the project clear.

## Principles

* **Enforcability**
  * Meta-principle. We enforce the principles in a systematic way. We use automated checks to enforce the principles as much as we possible.
* **Performance**
  * Our goal is to build high performance memory management systems.
  * We need to have the tools (for measuring performance) that allow us to create high performance systems.
* **Flexibility**
  * Flexibility is a prerequisite to creative, ambitious engineering, and is thus a key principle.
  * The design should maintain clear abstraction.
  * Flexibility should not be at odds with performance.   Our motto (from Ken Kennedy): _abstraction without guilt_.
  * Encapsulation is our key weapon in ensuring flexibility.
* **Clarity/Accessibility**
  * Our goal is to provide a toolkit that is widely used.    Consequently:
    * The code should be clear and easy to understand.
    * A good programmer (with no GC expertise) should be able to understand the code and make changes.
    * Use standard coding styles, use standard license, support standard IDEs, etc.
    * Systems need to work 'out of the box'.
* **Security**
  * Our system must be secure.
  * We should be a platform for research into memory management security.