Pool and pool class mechanisms

author Richard Brooksby
date 1996-07-31
index terms pair: pool class mechanism; design
revision //info.ravenbrook.com/project/mps/version/1.116/design/pool.txt#1
status incomplete document
tag design.mps.pool

Definitions

.def.outer-structure: The "outer structure" (of a pool) is a C object of type PoolXXXStruct or the type struct PoolXXXStruct itself.

.def.generic-structure: The "generic structure" is a C object of type PoolStruct (found embedded in the outer-structure) or the type struct PoolStruct itself.

Defaults

.align: When initialised, the pool gets the default alignment (ARCH_ALIGN).

.no: If a pool class doesn't implement a method, and doesn't expect it to be called, it should use a non-method (PoolNo*) which will cause an assertion failure if they are reached.

.triv: If a pool class supports a protocol but does not require any more than a trivial implementation, it should use a trivial method (PoolTriv*) which will do the trivial thing.

.outer-structure.sig: It is good practice to put the signature for the outer structure at the end (of the structure). This is because there's already one at the beginning (in the poolStruct) so putting it at the end gives some extra fencepost checking.

Requirements

Note

Placeholder: must derive the requirements from the architecture.

.req.fix: PoolFix() must be fast.

Other

Interface in mpm.h Types in mpmst.h See also design.mps.poolclass

Document History

  • 1996-07-31 richard incomplete doc
  • 2002-06-07 RB Converted from MMInfo database design document.
  • 2013-05-23 GDR Converted to reStructuredText.