Ravenbrook / Projects


Memory Pool System Project

Richard Brooksby, Ravenbrook Limited, 2002-06-18

Quick Q&A

What? The Memory Pool System (MPS) is a flexible and adaptable memory management software library.
Why? The MPS Project aims to disseminate this technology through sharing and licensing.
When? MPS is available now. Open-source licensing was announced at ISMM 2002.
Where? From Ravenbrook.
Now read on.

Introduction

This is the project document for the Memory Pool System Project. It is maintained to provide an index to all the project materials, and an overview of the project, and its status. It's the starting point for anyone interested in the project, and a document to read to check on the project's progress.

The readership of this document is anyone interested in the project.

This document is not confidential.

Contents

Overview

This is a project to develop the Memory Pool System (MPS).

The Memory Pool System is a very general, adaptable, flexible, reliable, and efficient memory management system. It permits the flexible combination of memory management techniques, supporting manual and automatic memory management, in-line allocation, finalization, weakness, and multiple concurrent co-operating incremental generational garbage collections. It also includes a library of memory pool classes implementing specialized memory management policies.

For a more detailed overview of the MPS, see "The Memory Pool System: Thirty person-years of memory management development goes Open Source" [RB 2002-01-30].

For an introduction to memory management in general, see the Memory Management Reference Beginner's Guide, which also has links to numerous other resources.

Downloads

The latest open-source release of the software is freely downloadable from release/1.106.2/. There is also a full list of releases.

Status

This section was updated on 2011-07-15.

Currently

August 2010: Making the MPS give more feedback about its state and current activities.

July 2011: Revising the build and release framework for Windows to support NT6.1 and its SDK and to document it better.

Next

2010: Changes in zone->generation allocation. Changes in collection scheduling, particularly initiation and rate of progress of incremental full collections.

2011: Provide support for 64-bit Windows.

Previously

2001: We obtained the remaining project sources and documents from Global Graphics and imported them into our repository. We knocked as many as possible into shape and prepared them for publication.

2002: The MPS was made open source at the 2002 International Symposium on Memory Management. You can download the sources from the release directory or browse them in place.

2003-2006: Further commercial support and development.

2007: The MPS is in use by various proprietary and open-source projects. We gave a tutorial talk (2007-04-01) on using the MPS, and the techniques it uses, at ILC07 -- the International Lisp Conference 2007.

2008: Ongoing commercial support & development.

2009: Ongoing commercial support & development.

2010: Ongoing commercial support & development.

Documentation

Product documentation

Master
The master codeline, which contains code, designs, manuals and so on.
Task branches
Lists and links to all task branches associated with the product. These are mostly branches made to work on specific features before merging the changes back into the master codeline.

The list includes branches that predate our acquisition of the MPS (and in particular the imported trunk). Most of these documents are confidential and not available to the public.

Version branches
Branches (from master: 1.100 .. 1.108...) from which releases of a particular specification are made.
Releases
Product releases (built from version sources): 1.100.0 .. 1.108.0...

Project documentation

Material about the management of the MPS project.
Project documents
Reports, meeting notes and so on.
Issues
Issues with the project and its products.
Changes.
Changes made to the product. These documents are not available to the public.
Procedures
Procedures governing the project. Procedures governing things like build, testing and release are maintained with the product itself - see the Master procedures documentation for that.
Import
Material imported from outside the project. Some of these documents are confidential and not available to the public.
Tools
Tools for managing the project (but not for development, building, or testing).
Mail
Mail archives of the MM group at Harlequin (as was). These documents are confidential and not available to the public.

Contacts

If you have questions about the project please write to mps-questions@ravenbrook.com

You can also join the mps-discussion mailing list if you are interested in project progress, or if you're adapting or extending the MPS. The goals of the list are:

  1. to provide feedback to the project on requirements, design, implementation, etc.;
  2. to allow people to exchange information and experience with using and adapting the project;
  3. to keep people informed about project progress.

To join, send a message with the word "subscribe" in the body to mps-discussion-request@ravenbrook.com or send the word "help" for general information.

Please note that the mailing list will be archived and the archive may be published.

References

[RB 2002-01-30] "The Memory Pool System: Thirty person-years of memory management development goes Open Source"; Richard Brooksby; Ravenbrook Limited; 2002-01-30.

Document History

2001-08-13 NDL Created.
2001-10-05 NDL Added MM group mail archives, 1994-2000.
2001-10-08 NDL Links to MMDoc and MMInfo.
2001-10-31 NDL Added master/.
2002-06-18 RB Added doc/.
2002-06-18 RB Substantial rewrite. Claimed authorship. Added version 1.100 and release 1.100.0.
2002-06-20 NDL Updated copyright / license to match the rest of the open-source distribution. Added glossary link for "incremental".
2002-06-21 NB Added release 1.100.1.
2004-12-13 RHSK Starting MPS Project Review: add link. Changed Quick Q&A. Other updates.
2006-01-19 RHSK Update for start of 2006.
2006-04-13 RHSK Update with release/1.106.2.
2006-12-13 RHSK Version 1.107.
2007-02-21 RHSK Update project status.
2007-07-06 RHSK Version 1.108 and release 1.108.0.
2010-08-10 RHSK Update prohect status.
2011-07-15 PNJ
  1. Altered the document style to make it more readable and practical to navigate to sections and documents of current interest. Introduced a project.css infosys style sheet during this process.
  2. Removed the section numbering. This wasn't appropriate for a live document that's likely to be refactored from time to time. The labelled anchors have been retained so that external references will still work. Introduced extra, more semantic, IDs for future reference.
  3. Updated the project status.

Copyright and License

This document is copyright © 2001, 2002, 2004, 2006-2007, 2010 Ravenbrook Limited. All rights reserved. This is an open source license. Contact Ravenbrook for commercial licensing options.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Redistributions in any form must be accompanied by information on how to obtain complete source code for this software and any accompanying software that uses this software. The source code must either be included in the distribution or be available for no more than the cost of distribution plus a nominal fee, and must be freely redistributable under reasonable conditions. For an executable file, complete source code means the source code for all modules it contains. It does not include source code for modules or files that typically accompany the major components of the operating system on which the executable file runs.

This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement, are disclaimed. In no event shall the copyright holders and contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.


$Id: //info.ravenbrook.com/project/mps/index.html#27 $

Ravenbrook / Projects