diff --git a/mps/manual/wiki/gc.html b/mps/manual/wiki/gc.html index e30a2e5f0c7..e23d7b12aa9 100644 --- a/mps/manual/wiki/gc.html +++ b/mps/manual/wiki/gc.html @@ -65,10 +65,12 @@ as:

For each type of question, the client must provide a function that gives -the answer. These functions collected together are called a "format" +the answer. These functions are called "format methods", and are +collected together into a "format" (mps_fmt_t). Usually the client developer writes these functions, -collects them into a format, and passes this format to the MPS as an -argument to mps_pool_create().

+calls "mps_fmt_create_..." to +collect them into a format, and passes this format to the MPS as an +argument to mps_pool_create().

A client's format code is 'special'. It is called at special times (eg. when handling an interrupt), and is quite restricted in what it is @@ -108,41 +110,61 @@ whether it is a client object, a forwarding object, or a padding object.

The most important format methods are:

-

To support collectable client objects:

+

Indicate the size of a collectable client object:

-

To support movable client objects:

+

List all references from this object to (other) collectable objects:

-

To support forwarding objects (once a movable client object has been moved):

+

Move this client object:

+ + +

Create/use a forwarding object (used by an incremental moving collector after moving a client object):

-

To support padding objects:

+

Create a padding object:

+

Format Variants

+ +

There are several different ways to package-up the format methods -- these different ways are called 'variants'. MPS currently supports four format variants. The creation functions for these are:

+ + +

It's a bit messy -- sorry.

+

B. Document History

   2006-06-02  RHSK  Created.
   2006-06-02  RHSK  Introduction to MPS Formats
+  2006-06-06  RHSK  Formats: clarify explanation of methods, and list variants.