From f8ae12a566a67e70d11f67dee3ecc7a68463ce81 Mon Sep 17 00:00:00 2001
From: Gareth Rees
Date: Sat, 8 Jun 2013 21:31:25 +0100
Subject: [PATCH] Updated manual html
Copied from Perforce
Change: 182650
ServerID: perforce.ravenbrook.com
---
mps/manual/html/_sources/design/abq.txt | 2 -
.../html/_sources/design/alloc-frame.txt | 4 +-
mps/manual/html/_sources/design/arena.txt | 4 +-
mps/manual/html/_sources/design/arenavm.txt | 4 +-
mps/manual/html/_sources/design/boot.txt | 37 --
mps/manual/html/_sources/design/bt.txt | 4 +-
mps/manual/html/_sources/design/buffer.txt | 4 +-
mps/manual/html/_sources/design/cbs.txt | 2 -
mps/manual/html/_sources/design/check.txt | 4 +-
.../html/_sources/design/class-interface.txt | 4 +-
.../html/_sources/design/collection.txt | 4 +-
mps/manual/html/_sources/design/config.txt | 4 +-
.../html/_sources/design/critical-path.txt | 4 +-
mps/manual/html/_sources/design/diag.txt | 4 +-
mps/manual/html/_sources/design/finalize.txt | 4 +-
mps/manual/html/_sources/design/fix.txt | 4 +-
mps/manual/html/_sources/design/freelist.txt | 2 -
.../html/_sources/design/guide.hex.trans.txt | 4 +-
.../_sources/design/guide.impl.c.format.txt | 4 +-
.../html/_sources/design/interface-c.txt | 4 +-
mps/manual/html/_sources/design/io.txt | 4 +-
.../_sources/design/keyword-arguments.txt | 4 +-
mps/manual/html/_sources/design/lib.txt | 4 +-
mps/manual/html/_sources/design/lock.txt | 4 +-
mps/manual/html/_sources/design/locus.txt | 4 +-
.../html/_sources/design/message-gc.txt | 4 +-
mps/manual/html/_sources/design/message.txt | 4 +-
.../html/_sources/design/object-debug.txt | 4 +-
mps/manual/html/_sources/design/old.txt | 4 +
mps/manual/html/_sources/design/pool.txt | 4 +-
mps/manual/html/_sources/design/poolamc.txt | 4 +-
mps/manual/html/_sources/design/poolams.txt | 4 +-
mps/manual/html/_sources/design/poolawl.txt | 4 +-
mps/manual/html/_sources/design/poollo.txt | 4 +-
mps/manual/html/_sources/design/poolmfs.txt | 4 +-
mps/manual/html/_sources/design/poolmrg.txt | 4 +-
mps/manual/html/_sources/design/poolmv.txt | 2 -
mps/manual/html/_sources/design/poolmvff.txt | 4 +-
mps/manual/html/_sources/design/poolmvt.txt | 2 -
mps/manual/html/_sources/design/prot.txt | 4 +-
mps/manual/html/_sources/design/protan.txt | 4 +-
mps/manual/html/_sources/design/protli.txt | 4 +-
mps/manual/html/_sources/design/protocol.txt | 4 +-
mps/manual/html/_sources/design/protsu.txt | 4 +-
.../html/_sources/design/pthreadext.txt | 4 +-
mps/manual/html/_sources/design/range.txt | 2 -
mps/manual/html/_sources/design/reservoir.txt | 4 +-
mps/manual/html/_sources/design/ring.txt | 4 +-
mps/manual/html/_sources/design/root.txt | 4 +-
mps/manual/html/_sources/design/scan.txt | 4 +-
mps/manual/html/_sources/design/seg.txt | 4 +-
mps/manual/html/_sources/design/shield.txt | 4 +-
mps/manual/html/_sources/design/sig.txt | 4 +-
mps/manual/html/_sources/design/splay.txt | 4 +-
mps/manual/html/_sources/design/sso1al.txt | 8 +-
mps/manual/html/_sources/design/strategy.txt | 2 -
mps/manual/html/_sources/design/telemetry.txt | 4 +-
mps/manual/html/_sources/design/tests.txt | 2 -
.../html/_sources/design/thread-manager.txt | 4 +-
.../html/_sources/design/thread-safety.txt | 4 +-
mps/manual/html/_sources/design/trace.txt | 4 +-
mps/manual/html/_sources/design/type.txt | 4 +-
.../html/_sources/design/version-library.txt | 4 +-
mps/manual/html/_sources/design/version.txt | 4 +-
mps/manual/html/_sources/design/vm.txt | 4 +-
mps/manual/html/_sources/design/vman.txt | 4 +-
mps/manual/html/_sources/design/vmo1.txt | 4 +-
mps/manual/html/_sources/design/vmso.txt | 4 +-
mps/manual/html/_sources/design/writef.txt | 4 +-
mps/manual/html/_sources/index.txt | 1 +
mps/manual/html/_sources/pool/intro.txt | 71 +--
mps/manual/html/_sources/pool/mv.txt | 2 +-
mps/manual/html/_sources/pool/mvff.txt | 2 +-
mps/manual/html/_sources/pool/mvt.txt | 30 +-
mps/manual/html/_sources/release.txt | 72 +++
mps/manual/html/_sources/topic/error.txt | 7 +
mps/manual/html/_static/pygments.css | 4 +-
mps/manual/html/contact.html | 12 +-
mps/manual/html/design/abq.html | 2 +-
mps/manual/html/design/alloc-frame.html | 10 +-
mps/manual/html/design/arena.html | 4 +-
mps/manual/html/design/arenavm.html | 4 +-
mps/manual/html/design/boot.html | 125 -----
mps/manual/html/design/bt.html | 6 +-
mps/manual/html/design/buffer.html | 4 +-
mps/manual/html/design/cbs.html | 2 +-
mps/manual/html/design/check.html | 4 +-
mps/manual/html/design/class-interface.html | 4 +-
mps/manual/html/design/collection.html | 4 +-
mps/manual/html/design/config.html | 14 +-
mps/manual/html/design/critical-path.html | 16 +-
mps/manual/html/design/diag.html | 57 +--
mps/manual/html/design/finalize.html | 4 +-
mps/manual/html/design/fix.html | 4 +-
mps/manual/html/design/freelist.html | 2 +-
mps/manual/html/design/guide.hex.trans.html | 4 +-
.../html/design/guide.impl.c.format.html | 4 +-
mps/manual/html/design/interface-c.html | 12 +-
mps/manual/html/design/io.html | 16 +-
mps/manual/html/design/keyword-arguments.html | 10 +-
mps/manual/html/design/lib.html | 4 +-
mps/manual/html/design/lock.html | 4 +-
mps/manual/html/design/locus.html | 4 +-
mps/manual/html/design/message-gc.html | 4 +-
mps/manual/html/design/message.html | 4 +-
mps/manual/html/design/object-debug.html | 4 +-
mps/manual/html/design/old.html | 441 ++++++++++--------
mps/manual/html/design/pool.html | 4 +-
mps/manual/html/design/poolamc.html | 4 +-
mps/manual/html/design/poolams.html | 4 +-
mps/manual/html/design/poolawl.html | 4 +-
mps/manual/html/design/poollo.html | 4 +-
mps/manual/html/design/poolmfs.html | 4 +-
mps/manual/html/design/poolmrg.html | 14 +-
mps/manual/html/design/poolmv.html | 41 +-
mps/manual/html/design/poolmvff.html | 50 +-
mps/manual/html/design/poolmvt.html | 125 +++--
mps/manual/html/design/prot.html | 32 +-
mps/manual/html/design/protan.html | 40 +-
mps/manual/html/design/protli.html | 44 +-
mps/manual/html/design/protocol.html | 80 ++--
mps/manual/html/design/protsu.html | 48 +-
mps/manual/html/design/pthreadext.html | 58 +--
mps/manual/html/design/range.html | 2 +-
mps/manual/html/design/reservoir.html | 36 +-
mps/manual/html/design/ring.html | 4 +-
mps/manual/html/design/root.html | 48 +-
mps/manual/html/design/scan.html | 36 +-
mps/manual/html/design/seg.html | 52 +--
mps/manual/html/design/shield.html | 48 +-
mps/manual/html/design/sig.html | 4 +-
mps/manual/html/design/splay.html | 80 ++--
mps/manual/html/design/sso1al.html | 60 +--
mps/manual/html/design/strategy.html | 81 ++--
mps/manual/html/design/telemetry.html | 80 ++--
mps/manual/html/design/tests.html | 49 +-
mps/manual/html/design/thread-manager.html | 66 +--
mps/manual/html/design/thread-safety.html | 76 +--
mps/manual/html/design/trace.html | 60 +--
mps/manual/html/design/type.html | 40 +-
mps/manual/html/design/version-library.html | 48 +-
mps/manual/html/design/version.html | 32 +-
mps/manual/html/design/vm.html | 40 +-
mps/manual/html/design/vman.html | 22 +-
mps/manual/html/design/vmo1.html | 32 +-
mps/manual/html/design/vmso.html | 40 +-
mps/manual/html/design/writef.html | 24 +-
mps/manual/html/glossary/c.html | 2 +-
mps/manual/html/guide/advanced.html | 106 ++---
mps/manual/html/guide/debug.html | 8 +-
mps/manual/html/guide/lang.html | 108 ++---
mps/manual/html/index.html | 57 +--
mps/manual/html/mmref/index.html | 8 +-
mps/manual/html/objects.inv | Bin 24228 -> 25141 bytes
mps/manual/html/pool/amc.html | 8 +-
mps/manual/html/pool/amcz.html | 8 +-
mps/manual/html/pool/ams.html | 16 +-
mps/manual/html/pool/awl.html | 38 +-
mps/manual/html/pool/index.html | 6 +-
mps/manual/html/pool/intro.html | 174 +++----
mps/manual/html/pool/lo.html | 6 +-
mps/manual/html/pool/mfs.html | 8 +-
mps/manual/html/pool/mv.html | 22 +-
mps/manual/html/pool/mvff.html | 34 +-
mps/manual/html/pool/mvt.html | 37 +-
mps/manual/html/pool/snc.html | 10 +-
mps/manual/html/release.html | 172 +++++++
mps/manual/html/searchindex.js | 2 +-
mps/manual/html/topic/allocation.html | 46 +-
mps/manual/html/topic/arena.html | 10 +-
mps/manual/html/topic/cache.html | 6 +-
mps/manual/html/topic/collection.html | 4 +-
mps/manual/html/topic/debugging.html | 4 +-
mps/manual/html/topic/error.html | 6 +
mps/manual/html/topic/finalization.html | 2 +-
mps/manual/html/topic/format.html | 52 +--
mps/manual/html/topic/interface.html | 4 +-
mps/manual/html/topic/keyword.html | 6 +-
mps/manual/html/topic/location.html | 18 +-
mps/manual/html/topic/message.html | 6 +-
mps/manual/html/topic/plinth.html | 4 +-
mps/manual/html/topic/root.html | 16 +-
mps/manual/html/topic/scanning.html | 20 +-
mps/manual/html/topic/weak.html | 8 +-
184 files changed, 2087 insertions(+), 1846 deletions(-)
delete mode 100644 mps/manual/html/_sources/design/boot.txt
create mode 100644 mps/manual/html/_sources/release.txt
delete mode 100644 mps/manual/html/design/boot.html
create mode 100644 mps/manual/html/release.html
diff --git a/mps/manual/html/_sources/design/abq.txt b/mps/manual/html/_sources/design/abq.txt
index a6846871029..97022f2265d 100644
--- a/mps/manual/html/_sources/design/abq.txt
+++ b/mps/manual/html/_sources/design/abq.txt
@@ -1,5 +1,3 @@
-.. _design-abq:
-
Queue design
============
diff --git a/mps/manual/html/_sources/design/alloc-frame.txt b/mps/manual/html/_sources/design/alloc-frame.txt
index 9333d6e4414..09e5adb2521 100644
--- a/mps/manual/html/_sources/design/alloc-frame.txt
+++ b/mps/manual/html/_sources/design/alloc-frame.txt
@@ -1,9 +1,9 @@
-.. _design-alloc-frame:
-
.. index::
pair: allocation frames; design
+.. _design-alloc-frame:
+
Allocation frame protocol
=========================
diff --git a/mps/manual/html/_sources/design/arena.txt b/mps/manual/html/_sources/design/arena.txt
index c0f671e419d..379816523b0 100644
--- a/mps/manual/html/_sources/design/arena.txt
+++ b/mps/manual/html/_sources/design/arena.txt
@@ -1,9 +1,9 @@
-.. _design-arena:
-
.. index::
pair: arena; design
+.. _design-arena:
+
Arena
=====
diff --git a/mps/manual/html/_sources/design/arenavm.txt b/mps/manual/html/_sources/design/arenavm.txt
index a5a7483dde7..ded7b9af631 100644
--- a/mps/manual/html/_sources/design/arenavm.txt
+++ b/mps/manual/html/_sources/design/arenavm.txt
@@ -1,10 +1,10 @@
-.. _design-arenavm:
-
.. index::
pair: virtual memory arena; design
pair: VM arena; design
+.. _design-arenavm:
+
Virtual Memory Arena
====================
diff --git a/mps/manual/html/_sources/design/boot.txt b/mps/manual/html/_sources/design/boot.txt
deleted file mode 100644
index ce4d55de18e..00000000000
--- a/mps/manual/html/_sources/design/boot.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-.. _design-boot:
-
-
-The MPS Bootstrap
-=================
-
-.. mps:prefix:: design.mps.boot
-
-
-Introduction
-------------
-The `Memory Pool System`_ starts with no memory, but must somehow
-allocate its own control structures in order to provide memory to the
-client program. The MPS is freestanding [ref?] and so it can't get its
-memory from the C library's ``malloc``. So how does it get off the
-ground? It pulls itself up by its own bootstraps. This document
-describes how.
-
-.. note::
-
- This document was written as a prelude to reforming the bootstrap,
- so it shouldn't be taken as advocating it as an amazing piece of
- design.
-
-
-Pretty much the first call to the MPS is to ``ArenaCreate``, which calls the
-arena class specific ``init`` method. That must create an initialized arena,
-except for the "control pool", from which many MPS data structures will be
-allocated.
-
-In the case of the VM arena, ``VMArenaInit`` creates a VM large enough to hold
-a :c:type:`VMArenaStruct` (which contains the generic :c:type:`ArenaStruct`) and maps
-pages into it. It then calls ``ArenaInit`` to initialise the generic part,
-before filling in the VM-specific part. Having done that, it adds the initial
-``VMChunk`` -- a large area of address space -- that will be used to supply
-memory via ``ArenaAlloc``.
-
diff --git a/mps/manual/html/_sources/design/bt.txt b/mps/manual/html/_sources/design/bt.txt
index fa2f3bb6722..5ccd999e60e 100644
--- a/mps/manual/html/_sources/design/bt.txt
+++ b/mps/manual/html/_sources/design/bt.txt
@@ -1,9 +1,9 @@
-.. _design-bt:
-
.. index::
pair: bit tables; design
+.. _design-bt:
+
Bit tables
==========
diff --git a/mps/manual/html/_sources/design/buffer.txt b/mps/manual/html/_sources/design/buffer.txt
index fdef030275c..bc6f4e43437 100644
--- a/mps/manual/html/_sources/design/buffer.txt
+++ b/mps/manual/html/_sources/design/buffer.txt
@@ -1,9 +1,9 @@
-.. _design-buffer:
-
.. index::
pair: buffers; design
+.. _design-buffer:
+
Allocation buffers and allocation points
========================================
diff --git a/mps/manual/html/_sources/design/cbs.txt b/mps/manual/html/_sources/design/cbs.txt
index 8cc005422f0..6204c0ef394 100644
--- a/mps/manual/html/_sources/design/cbs.txt
+++ b/mps/manual/html/_sources/design/cbs.txt
@@ -1,5 +1,3 @@
-.. _design-cbs:
-
Coalescing block structure
==========================
diff --git a/mps/manual/html/_sources/design/check.txt b/mps/manual/html/_sources/design/check.txt
index 8e7a121b38b..c68b439e3e1 100644
--- a/mps/manual/html/_sources/design/check.txt
+++ b/mps/manual/html/_sources/design/check.txt
@@ -1,9 +1,9 @@
-.. _design-check:
-
.. index::
pair: checking; design
+.. _design-check:
+
Checking
========
diff --git a/mps/manual/html/_sources/design/class-interface.txt b/mps/manual/html/_sources/design/class-interface.txt
index 8e317c93e21..fda134cd5f0 100644
--- a/mps/manual/html/_sources/design/class-interface.txt
+++ b/mps/manual/html/_sources/design/class-interface.txt
@@ -1,9 +1,9 @@
-.. _design-class-interface:
-
.. index::
pair: class interface; design
+.. _design-class-interface:
+
Pool class interface
====================
diff --git a/mps/manual/html/_sources/design/collection.txt b/mps/manual/html/_sources/design/collection.txt
index fae198acf86..89e176837e2 100644
--- a/mps/manual/html/_sources/design/collection.txt
+++ b/mps/manual/html/_sources/design/collection.txt
@@ -1,9 +1,9 @@
-.. _design-collection:
-
.. index::
pair: collection framework; design
+.. _design-collection:
+
Collection framework
====================
diff --git a/mps/manual/html/_sources/design/config.txt b/mps/manual/html/_sources/design/config.txt
index d045a51225c..d80ca819cbb 100644
--- a/mps/manual/html/_sources/design/config.txt
+++ b/mps/manual/html/_sources/design/config.txt
@@ -1,9 +1,9 @@
-.. _design-config:
-
.. index::
pair: configuration; design
+.. _design-config:
+
MPS Configuration
=================
diff --git a/mps/manual/html/_sources/design/critical-path.txt b/mps/manual/html/_sources/design/critical-path.txt
index 26830c82baf..7ff7c56651c 100644
--- a/mps/manual/html/_sources/design/critical-path.txt
+++ b/mps/manual/html/_sources/design/critical-path.txt
@@ -1,11 +1,11 @@
-.. _design-critical-path:
-
.. index::
single: critical path
single: path; critical
single: Memory Pool System; critical path
+.. _design-critical-path:
+
The critical path through the MPS
=================================
diff --git a/mps/manual/html/_sources/design/diag.txt b/mps/manual/html/_sources/design/diag.txt
index d13cdd6d0f9..a244ba58832 100644
--- a/mps/manual/html/_sources/design/diag.txt
+++ b/mps/manual/html/_sources/design/diag.txt
@@ -1,9 +1,9 @@
-.. _design-diag:
-
.. index::
pair: diagnostic feedback; design
+.. _design-diag:
+
Diagnostic feedback
===================
diff --git a/mps/manual/html/_sources/design/finalize.txt b/mps/manual/html/_sources/design/finalize.txt
index 01fbc83f1ab..1b1f09ee99c 100644
--- a/mps/manual/html/_sources/design/finalize.txt
+++ b/mps/manual/html/_sources/design/finalize.txt
@@ -1,9 +1,9 @@
-.. _design-finalize:
-
.. index::
pair: finalization; design
+.. _design-finalize:
+
Finalization
============
diff --git a/mps/manual/html/_sources/design/fix.txt b/mps/manual/html/_sources/design/fix.txt
index 9b2b059bc0a..38903133dcc 100644
--- a/mps/manual/html/_sources/design/fix.txt
+++ b/mps/manual/html/_sources/design/fix.txt
@@ -1,9 +1,9 @@
-.. _design-fix:
-
.. index::
pair: fix function; design
+.. _design-fix:
+
The generic fix function
========================
diff --git a/mps/manual/html/_sources/design/freelist.txt b/mps/manual/html/_sources/design/freelist.txt
index c8a12533345..444244901b5 100644
--- a/mps/manual/html/_sources/design/freelist.txt
+++ b/mps/manual/html/_sources/design/freelist.txt
@@ -1,5 +1,3 @@
-.. _design-freelist:
-
Free list allocator
===================
diff --git a/mps/manual/html/_sources/design/guide.hex.trans.txt b/mps/manual/html/_sources/design/guide.hex.trans.txt
index 5f31fb48d26..887a10e362f 100644
--- a/mps/manual/html/_sources/design/guide.hex.trans.txt
+++ b/mps/manual/html/_sources/design/guide.hex.trans.txt
@@ -1,9 +1,9 @@
-.. _design-guide.hex.trans:
-
.. index::
pair: hexadecimal; transliterating
+.. _design-guide.hex.trans:
+
Transliterating the alphabet into hexadecimal
=============================================
diff --git a/mps/manual/html/_sources/design/guide.impl.c.format.txt b/mps/manual/html/_sources/design/guide.impl.c.format.txt
index 89dad45e73b..513a5329db6 100644
--- a/mps/manual/html/_sources/design/guide.impl.c.format.txt
+++ b/mps/manual/html/_sources/design/guide.impl.c.format.txt
@@ -1,10 +1,10 @@
-.. _design-guide.impl.c.format:
-
.. index::
pair: C language; formatting guide
pair: C language formatting; guide
+.. _design-guide.impl.c.format:
+
C Style -- formatting
=====================
diff --git a/mps/manual/html/_sources/design/interface-c.txt b/mps/manual/html/_sources/design/interface-c.txt
index b8db5831226..0dcaa658138 100644
--- a/mps/manual/html/_sources/design/interface-c.txt
+++ b/mps/manual/html/_sources/design/interface-c.txt
@@ -1,9 +1,9 @@
-.. _design-interface-c:
-
.. index::
pair: C interface; design
+.. _design-interface-c:
+
C interface design
==================
diff --git a/mps/manual/html/_sources/design/io.txt b/mps/manual/html/_sources/design/io.txt
index d5cecd5b936..ba09800ad3e 100644
--- a/mps/manual/html/_sources/design/io.txt
+++ b/mps/manual/html/_sources/design/io.txt
@@ -1,9 +1,9 @@
-.. _design-io:
-
.. index::
pair: I/O subsystem; design
+.. _design-io:
+
I/O subsystem
=============
diff --git a/mps/manual/html/_sources/design/keyword-arguments.txt b/mps/manual/html/_sources/design/keyword-arguments.txt
index 179ba64fde9..aed39c24af4 100644
--- a/mps/manual/html/_sources/design/keyword-arguments.txt
+++ b/mps/manual/html/_sources/design/keyword-arguments.txt
@@ -1,9 +1,9 @@
-.. _design-keyword-arguments:
-
.. index::
pair: keyword arguments; design
+.. _design-keyword-arguments:
+
Keyword arguments in the MPS
============================
diff --git a/mps/manual/html/_sources/design/lib.txt b/mps/manual/html/_sources/design/lib.txt
index e176f8f6995..f4ffa9b52bc 100644
--- a/mps/manual/html/_sources/design/lib.txt
+++ b/mps/manual/html/_sources/design/lib.txt
@@ -1,9 +1,9 @@
-.. _design-lib:
-
.. index::
pair: library interface; design
+.. _design-lib:
+
Library interface
=================
diff --git a/mps/manual/html/_sources/design/lock.txt b/mps/manual/html/_sources/design/lock.txt
index d89df3d7788..43110279314 100644
--- a/mps/manual/html/_sources/design/lock.txt
+++ b/mps/manual/html/_sources/design/lock.txt
@@ -1,9 +1,9 @@
-.. _design-lock:
-
.. index::
pair: locking; design
+.. _design-lock:
+
The lock module
===============
diff --git a/mps/manual/html/_sources/design/locus.txt b/mps/manual/html/_sources/design/locus.txt
index 3525778a872..6e7776dbcc8 100644
--- a/mps/manual/html/_sources/design/locus.txt
+++ b/mps/manual/html/_sources/design/locus.txt
@@ -1,9 +1,9 @@
-.. _design-locus:
-
.. index::
pair: locus manager; design
+.. _design-locus:
+
MPS Configuration
=================
diff --git a/mps/manual/html/_sources/design/message-gc.txt b/mps/manual/html/_sources/design/message-gc.txt
index da5e614e286..d9d20c28833 100644
--- a/mps/manual/html/_sources/design/message-gc.txt
+++ b/mps/manual/html/_sources/design/message-gc.txt
@@ -1,9 +1,9 @@
-.. _design-message-gc:
-
.. index::
pair: garbage collection messages; design
+.. _design-message-gc:
+
GC messages
===========
diff --git a/mps/manual/html/_sources/design/message.txt b/mps/manual/html/_sources/design/message.txt
index c46909e8b69..b34cf5f218a 100644
--- a/mps/manual/html/_sources/design/message.txt
+++ b/mps/manual/html/_sources/design/message.txt
@@ -1,10 +1,10 @@
-.. _design-message:
-
.. index::
pair: messages; design
single: client message protocol
+.. _design-message:
+
Client message protocol
=======================
diff --git a/mps/manual/html/_sources/design/object-debug.txt b/mps/manual/html/_sources/design/object-debug.txt
index d8072476c52..1e59bec0552 100644
--- a/mps/manual/html/_sources/design/object-debug.txt
+++ b/mps/manual/html/_sources/design/object-debug.txt
@@ -1,9 +1,9 @@
-.. _design-object-debug:
-
.. index::
pair: debugging; design
+.. _design-object-debug:
+
Debugging features for client objects
=====================================
diff --git a/mps/manual/html/_sources/design/old.txt b/mps/manual/html/_sources/design/old.txt
index 29525beab6d..38d22aa270d 100644
--- a/mps/manual/html/_sources/design/old.txt
+++ b/mps/manual/html/_sources/design/old.txt
@@ -40,6 +40,8 @@ Old design
poollo
poolmfs
poolmrg
+ poolmv
+ poolmvt
poolmvff
prot
protan
@@ -54,7 +56,9 @@ Old design
shield
splay
sso1al
+ strategy
telemetry
+ tests
thread-manager
thread-safety
trace
diff --git a/mps/manual/html/_sources/design/pool.txt b/mps/manual/html/_sources/design/pool.txt
index fbfb9fcd36c..dceb7aa7b44 100644
--- a/mps/manual/html/_sources/design/pool.txt
+++ b/mps/manual/html/_sources/design/pool.txt
@@ -1,9 +1,9 @@
-.. _design-pool:
-
.. index::
pair: pool class mechanism; design
+.. _design-pool:
+
Pool and pool class mechanisms
==============================
diff --git a/mps/manual/html/_sources/design/poolamc.txt b/mps/manual/html/_sources/design/poolamc.txt
index b40c1f01d28..19d13d9c8ef 100644
--- a/mps/manual/html/_sources/design/poolamc.txt
+++ b/mps/manual/html/_sources/design/poolamc.txt
@@ -1,10 +1,10 @@
-.. _design-poolamc:
-
.. index::
pair: AMC pool class; design
single: pool class; AMC design
+.. _design-poolamc:
+
AMC pool class
==============
diff --git a/mps/manual/html/_sources/design/poolams.txt b/mps/manual/html/_sources/design/poolams.txt
index 7bd64320d64..94bd80af9dc 100644
--- a/mps/manual/html/_sources/design/poolams.txt
+++ b/mps/manual/html/_sources/design/poolams.txt
@@ -1,10 +1,10 @@
-.. _design-poolams:
-
.. index::
pair: AMS pool class; design
single: pool class; AMS design
+.. _design-poolams:
+
AMS pool class
==============
diff --git a/mps/manual/html/_sources/design/poolawl.txt b/mps/manual/html/_sources/design/poolawl.txt
index 53350ff20e5..e0859d89085 100644
--- a/mps/manual/html/_sources/design/poolawl.txt
+++ b/mps/manual/html/_sources/design/poolawl.txt
@@ -1,10 +1,10 @@
-.. _design-poolawl:
-
.. index::
pair: AWL pool class; design
single: pool class; AWL design
+.. _design-poolawl:
+
AWL pool class
==============
diff --git a/mps/manual/html/_sources/design/poollo.txt b/mps/manual/html/_sources/design/poollo.txt
index 8a51b2ebb2f..82bd7be57f7 100644
--- a/mps/manual/html/_sources/design/poollo.txt
+++ b/mps/manual/html/_sources/design/poollo.txt
@@ -1,10 +1,10 @@
-.. _design-poollo:
-
.. index::
pair: LO pool class; design
single: pool class; LO design
+.. _design-poollo:
+
LO pool class
=============
diff --git a/mps/manual/html/_sources/design/poolmfs.txt b/mps/manual/html/_sources/design/poolmfs.txt
index c817b64fc91..f0213e2b501 100644
--- a/mps/manual/html/_sources/design/poolmfs.txt
+++ b/mps/manual/html/_sources/design/poolmfs.txt
@@ -1,10 +1,10 @@
-.. _design-poolmfs:
-
.. index::
pair: MFS pool class; design
single: pool class; MFS design
+.. _design-poolmfs:
+
MFS pool class
==============
diff --git a/mps/manual/html/_sources/design/poolmrg.txt b/mps/manual/html/_sources/design/poolmrg.txt
index 853983cce87..91aa61a5c3e 100644
--- a/mps/manual/html/_sources/design/poolmrg.txt
+++ b/mps/manual/html/_sources/design/poolmrg.txt
@@ -1,10 +1,10 @@
-.. _design-poolmrg:
-
.. index::
pair: MRG pool class; design
single: pool class; MRG design
+.. _design-poolmrg:
+
MRG pool class
==============
diff --git a/mps/manual/html/_sources/design/poolmv.txt b/mps/manual/html/_sources/design/poolmv.txt
index dd15e4381af..76fbbd24cb4 100644
--- a/mps/manual/html/_sources/design/poolmv.txt
+++ b/mps/manual/html/_sources/design/poolmv.txt
@@ -1,5 +1,3 @@
-.. _design-poolmv:
-
MV pool class
=============
diff --git a/mps/manual/html/_sources/design/poolmvff.txt b/mps/manual/html/_sources/design/poolmvff.txt
index c01308cf2f5..9c8a17eb456 100644
--- a/mps/manual/html/_sources/design/poolmvff.txt
+++ b/mps/manual/html/_sources/design/poolmvff.txt
@@ -1,10 +1,10 @@
-.. _design-poolmvff:
-
.. index::
pair: MVFF pool class; design
single: pool class; MVFF design
+.. _design-poolmvff:
+
MVFF pool class
===============
diff --git a/mps/manual/html/_sources/design/poolmvt.txt b/mps/manual/html/_sources/design/poolmvt.txt
index 32bb4ef900d..a3a5e9fc6d5 100644
--- a/mps/manual/html/_sources/design/poolmvt.txt
+++ b/mps/manual/html/_sources/design/poolmvt.txt
@@ -1,5 +1,3 @@
-.. _design-poolmvt:
-
Manual Variable Temporal (MVT) pool design
diff --git a/mps/manual/html/_sources/design/prot.txt b/mps/manual/html/_sources/design/prot.txt
index a3b9ad04a02..84ddcd8208b 100644
--- a/mps/manual/html/_sources/design/prot.txt
+++ b/mps/manual/html/_sources/design/prot.txt
@@ -1,9 +1,9 @@
-.. _design-prot:
-
.. index::
pair: protection interface; design
+.. _design-prot:
+
The protection module
=====================
diff --git a/mps/manual/html/_sources/design/protan.txt b/mps/manual/html/_sources/design/protan.txt
index 9ceb972aad1..c7d81177c13 100644
--- a/mps/manual/html/_sources/design/protan.txt
+++ b/mps/manual/html/_sources/design/protan.txt
@@ -1,10 +1,10 @@
-.. _design-protan:
-
.. index::
pair: ANSI; protection interface design
pair: ANSI protection interface; design
+.. _design-protan:
+
ANSI implementation of protection module
========================================
diff --git a/mps/manual/html/_sources/design/protli.txt b/mps/manual/html/_sources/design/protli.txt
index a10e4077e19..461fd889592 100644
--- a/mps/manual/html/_sources/design/protli.txt
+++ b/mps/manual/html/_sources/design/protli.txt
@@ -1,10 +1,10 @@
-.. _design-protli:
-
.. index::
pair: Linux; protection interface design
pair: Linux protection interface; design
+.. _design-protli:
+
Linux implementation of protection module
=========================================
diff --git a/mps/manual/html/_sources/design/protocol.txt b/mps/manual/html/_sources/design/protocol.txt
index 74020429335..da603657764 100644
--- a/mps/manual/html/_sources/design/protocol.txt
+++ b/mps/manual/html/_sources/design/protocol.txt
@@ -1,9 +1,9 @@
-.. _design-protocol:
-
.. index::
pair: protocol inheritance; design
+.. _design-protocol:
+
Protocol inheritance
====================
diff --git a/mps/manual/html/_sources/design/protsu.txt b/mps/manual/html/_sources/design/protsu.txt
index 530e446ae76..c8c32f6853b 100644
--- a/mps/manual/html/_sources/design/protsu.txt
+++ b/mps/manual/html/_sources/design/protsu.txt
@@ -1,10 +1,10 @@
-.. _design-protsu:
-
.. index::
pair: SunOS 4; protection interface design
pair: SunOS 4 protection interface; design
+.. _design-protsu:
+
SunOS 4 protection module
=========================
diff --git a/mps/manual/html/_sources/design/pthreadext.txt b/mps/manual/html/_sources/design/pthreadext.txt
index 90ed4a1a3b6..2e2154eaf2c 100644
--- a/mps/manual/html/_sources/design/pthreadext.txt
+++ b/mps/manual/html/_sources/design/pthreadext.txt
@@ -1,9 +1,9 @@
-.. _design-pthreadext:
-
.. index::
pair: POSIX thread extensions; design
+.. _design-pthreadext:
+
POSIX thread extensions
=======================
diff --git a/mps/manual/html/_sources/design/range.txt b/mps/manual/html/_sources/design/range.txt
index a681fd4d6c6..02a0cd08c06 100644
--- a/mps/manual/html/_sources/design/range.txt
+++ b/mps/manual/html/_sources/design/range.txt
@@ -1,5 +1,3 @@
-.. _design-range:
-
Ranges
======
diff --git a/mps/manual/html/_sources/design/reservoir.txt b/mps/manual/html/_sources/design/reservoir.txt
index 0bc6dcce290..e9ab2519206 100644
--- a/mps/manual/html/_sources/design/reservoir.txt
+++ b/mps/manual/html/_sources/design/reservoir.txt
@@ -1,9 +1,9 @@
-.. _design-reservoir:
-
.. index::
pair: reservoir; design
+.. _design-reservoir:
+
The low-memory reservoir
========================
diff --git a/mps/manual/html/_sources/design/ring.txt b/mps/manual/html/_sources/design/ring.txt
index 501e3d52c82..deba7b03ff2 100644
--- a/mps/manual/html/_sources/design/ring.txt
+++ b/mps/manual/html/_sources/design/ring.txt
@@ -1,9 +1,9 @@
-.. _design-ring:
-
.. index::
pair: ring structure; design
+.. _design-ring:
+
Ring data structure
===================
diff --git a/mps/manual/html/_sources/design/root.txt b/mps/manual/html/_sources/design/root.txt
index 26c74156c05..276144997e5 100644
--- a/mps/manual/html/_sources/design/root.txt
+++ b/mps/manual/html/_sources/design/root.txt
@@ -1,9 +1,9 @@
-.. _design-root:
-
.. index::
pair: root manager; design
+.. _design-root:
+
Root manager
============
diff --git a/mps/manual/html/_sources/design/scan.txt b/mps/manual/html/_sources/design/scan.txt
index ef6b29ceb35..36dedd72a00 100644
--- a/mps/manual/html/_sources/design/scan.txt
+++ b/mps/manual/html/_sources/design/scan.txt
@@ -1,9 +1,9 @@
-.. _design-scan:
-
.. index::
pair: generic scanner; design
+.. _design-scan:
+
The generic scanner
===================
diff --git a/mps/manual/html/_sources/design/seg.txt b/mps/manual/html/_sources/design/seg.txt
index 7dae28c1715..2c0f6488cac 100644
--- a/mps/manual/html/_sources/design/seg.txt
+++ b/mps/manual/html/_sources/design/seg.txt
@@ -1,9 +1,9 @@
-.. _design-seg:
-
.. index::
pair: segments; design
+.. _design-seg:
+
Segment data structure
======================
diff --git a/mps/manual/html/_sources/design/shield.txt b/mps/manual/html/_sources/design/shield.txt
index 653937a2449..16d1e0ab08f 100644
--- a/mps/manual/html/_sources/design/shield.txt
+++ b/mps/manual/html/_sources/design/shield.txt
@@ -1,9 +1,9 @@
-.. _design-shield:
-
.. index::
pair: shield; design
+.. _design-shield:
+
Shield
======
diff --git a/mps/manual/html/_sources/design/sig.txt b/mps/manual/html/_sources/design/sig.txt
index d450855903d..2a7370d13d1 100644
--- a/mps/manual/html/_sources/design/sig.txt
+++ b/mps/manual/html/_sources/design/sig.txt
@@ -1,10 +1,10 @@
-.. _design-sig:
-
.. index::
pair: structure signatures; design
single: signatures
+.. _design-sig:
+
Signatures in the MPS
=====================
diff --git a/mps/manual/html/_sources/design/splay.txt b/mps/manual/html/_sources/design/splay.txt
index 2b1ab560fc2..c6f778d97b4 100644
--- a/mps/manual/html/_sources/design/splay.txt
+++ b/mps/manual/html/_sources/design/splay.txt
@@ -1,9 +1,9 @@
-.. _design-splay:
-
.. index::
pair: splay trees; design
+.. _design-splay:
+
Splay trees
===========
diff --git a/mps/manual/html/_sources/design/sso1al.txt b/mps/manual/html/_sources/design/sso1al.txt
index bad65430022..58292857e36 100644
--- a/mps/manual/html/_sources/design/sso1al.txt
+++ b/mps/manual/html/_sources/design/sso1al.txt
@@ -1,10 +1,10 @@
-.. _design-sso1al:
-
.. index::
pair: Digital Unix on Alpha stack scanner; design
pair: Digital Unix on Alpha; stack scanner design
+.. _design-sso1al:
+
Stack scanner for Digital Unix on Alpha
=======================================
@@ -126,6 +126,8 @@ is lower in memory than the bottom of the stack.
References
----------
-.. [DEC_Assembler] Digital Equipment Corporation. 1996; . .. [DEC_Alpha_Calling_Standard] "Calling Standard for Alpha Systems"; Digital Equipment Corporation. 1996. "`Assembly Language Programmer's Guide `__".
+.. [DEC_Assembler] Digital Equipment Corporation. 1996. "`Assembly Language Programmer's Guide `__".
+
+.. [DEC_Alpha_Calling_Standard] Digital Equipment Corporation. 1996. "`Calling Standard for Alpha Systems `__".
diff --git a/mps/manual/html/_sources/design/strategy.txt b/mps/manual/html/_sources/design/strategy.txt
index 03671cdf9f7..9286f8cdbf8 100644
--- a/mps/manual/html/_sources/design/strategy.txt
+++ b/mps/manual/html/_sources/design/strategy.txt
@@ -1,5 +1,3 @@
-.. _design-strategy:
-
MPS Strategy
============
diff --git a/mps/manual/html/_sources/design/telemetry.txt b/mps/manual/html/_sources/design/telemetry.txt
index e9e682896ac..58964d1fdd1 100644
--- a/mps/manual/html/_sources/design/telemetry.txt
+++ b/mps/manual/html/_sources/design/telemetry.txt
@@ -1,9 +1,9 @@
-.. _design-telemetry:
-
.. index::
pair: telemetry; design
+.. _design-telemetry:
+
Telemetry
=========
diff --git a/mps/manual/html/_sources/design/tests.txt b/mps/manual/html/_sources/design/tests.txt
index 2d6ab4addca..b9fd87a4e4f 100644
--- a/mps/manual/html/_sources/design/tests.txt
+++ b/mps/manual/html/_sources/design/tests.txt
@@ -1,5 +1,3 @@
-.. _design-tests:
-
Tests
=====
diff --git a/mps/manual/html/_sources/design/thread-manager.txt b/mps/manual/html/_sources/design/thread-manager.txt
index 4392775d217..dc34c1e241e 100644
--- a/mps/manual/html/_sources/design/thread-manager.txt
+++ b/mps/manual/html/_sources/design/thread-manager.txt
@@ -1,9 +1,9 @@
-.. _design-thread-manager:
-
.. index::
pair: thread manager; design
+.. _design-thread-manager:
+
Thread Manager
==============
diff --git a/mps/manual/html/_sources/design/thread-safety.txt b/mps/manual/html/_sources/design/thread-safety.txt
index eb43b437ff3..b0dded04f6c 100644
--- a/mps/manual/html/_sources/design/thread-safety.txt
+++ b/mps/manual/html/_sources/design/thread-safety.txt
@@ -1,9 +1,9 @@
-.. _design-thread-safety:
-
.. index::
pair: thread safety; design
+.. _design-thread-safety:
+
Thread safety in the MPS
========================
diff --git a/mps/manual/html/_sources/design/trace.txt b/mps/manual/html/_sources/design/trace.txt
index 0816dea309e..b87a51a0a6a 100644
--- a/mps/manual/html/_sources/design/trace.txt
+++ b/mps/manual/html/_sources/design/trace.txt
@@ -1,9 +1,9 @@
-.. _design-trace:
-
.. index::
pair: tracer; design
+.. _design-trace:
+
Tracer
======
diff --git a/mps/manual/html/_sources/design/type.txt b/mps/manual/html/_sources/design/type.txt
index c931c65fafb..29ffb23658b 100644
--- a/mps/manual/html/_sources/design/type.txt
+++ b/mps/manual/html/_sources/design/type.txt
@@ -1,9 +1,9 @@
-.. _design-type:
-
.. index::
pair: general types; design
+.. _design-type:
+
General MPS types
=================
diff --git a/mps/manual/html/_sources/design/version-library.txt b/mps/manual/html/_sources/design/version-library.txt
index 4b5d59a4f35..dd7f4366555 100644
--- a/mps/manual/html/_sources/design/version-library.txt
+++ b/mps/manual/html/_sources/design/version-library.txt
@@ -1,9 +1,9 @@
-.. _design-version-library:
-
.. index::
pair: library version mechanism; design
+.. _design-version-library:
+
Library version mechanism
=========================
diff --git a/mps/manual/html/_sources/design/version.txt b/mps/manual/html/_sources/design/version.txt
index 9cdb3e9fb8d..ad09d6bce60 100644
--- a/mps/manual/html/_sources/design/version.txt
+++ b/mps/manual/html/_sources/design/version.txt
@@ -1,10 +1,10 @@
-.. _design-version:
-
.. index::
pair: software versions; design
single: versions; design
+.. _design-version:
+
Software versions
=================
diff --git a/mps/manual/html/_sources/design/vm.txt b/mps/manual/html/_sources/design/vm.txt
index 919145babb9..fbe6862dc09 100644
--- a/mps/manual/html/_sources/design/vm.txt
+++ b/mps/manual/html/_sources/design/vm.txt
@@ -1,9 +1,9 @@
-.. _design-vm:
-
.. index::
pair: virtual mapping; design
+.. _design-vm:
+
Virtual mapping
===============
diff --git a/mps/manual/html/_sources/design/vman.txt b/mps/manual/html/_sources/design/vman.txt
index 73c46235d1d..23ff51f3fc1 100644
--- a/mps/manual/html/_sources/design/vman.txt
+++ b/mps/manual/html/_sources/design/vman.txt
@@ -1,9 +1,9 @@
-.. _design-vman:
-
.. index::
pair: ANSI fake VM; design
+.. _design-vman:
+
ANSI fake VM
============
diff --git a/mps/manual/html/_sources/design/vmo1.txt b/mps/manual/html/_sources/design/vmo1.txt
index 6715c5bd01f..575ff93cc3e 100644
--- a/mps/manual/html/_sources/design/vmo1.txt
+++ b/mps/manual/html/_sources/design/vmo1.txt
@@ -1,9 +1,9 @@
-.. _design-vmo1:
-
.. index::
pair: VM for Digital Unix; design
+.. _design-vmo1:
+
VM for Digital Unix
===================
diff --git a/mps/manual/html/_sources/design/vmso.txt b/mps/manual/html/_sources/design/vmso.txt
index 561a07dec5e..3ab20b63a8e 100644
--- a/mps/manual/html/_sources/design/vmso.txt
+++ b/mps/manual/html/_sources/design/vmso.txt
@@ -1,9 +1,9 @@
-.. _design-vmso:
-
.. index::
pair: VM for Solaris; design
+.. _design-vmso:
+
VM for Solaris
==============
diff --git a/mps/manual/html/_sources/design/writef.txt b/mps/manual/html/_sources/design/writef.txt
index 6d442ee1f01..4432ff5060b 100644
--- a/mps/manual/html/_sources/design/writef.txt
+++ b/mps/manual/html/_sources/design/writef.txt
@@ -1,9 +1,9 @@
-.. _design-writef:
-
.. index::
pair: WriteF function; design
+.. _design-writef:
+
The WriteF function
===================
diff --git a/mps/manual/html/_sources/index.txt b/mps/manual/html/_sources/index.txt
index a3fdc221aff..161a13ad3b3 100644
--- a/mps/manual/html/_sources/index.txt
+++ b/mps/manual/html/_sources/index.txt
@@ -35,5 +35,6 @@ Appendices
glossary/index
copyright
contact
+ release
* :ref:`genindex`
diff --git a/mps/manual/html/_sources/pool/intro.txt b/mps/manual/html/_sources/pool/intro.txt
index 2228a66c8de..f94336a4194 100644
--- a/mps/manual/html/_sources/pool/intro.txt
+++ b/mps/manual/html/_sources/pool/intro.txt
@@ -20,50 +20,63 @@ of pools, choosing the most appropriate pool class for each.
class in the open source MPS exactly matches your needs, then it
is possible to develop new pool classes. See :ref:`pool-writing`.
-First, answer these questions about your data:
+First, do you need the MPS to :term:`automatically ` :term:`reclaim` :term:`unreachable` blocks? If so, you
+need an automatically managed (garbage collected) pool class and you
+should consult :ref:`pool-choose-automatic` below.
+Otherwise, you need a manually managed pool class and you should
+consult :ref:`pool-choose-manual` below.
-1. Do you need the MPS to :term:`automatically ` :term:`reclaim` :term:`unreachable` blocks?
-2. Is it acceptable for the MPS to :term:`move ` blocks in memory and to place :term:`barriers (1)` on
blocks? (For example, it might not be acceptable to move a block if
it has been passed to :term:`foreign code` that remembered its
location.)
-3. Do your blocks contain :term:`references` to blocks stored in
+2. Do your blocks contain :term:`references` to blocks stored in
automatically managed pools (including references to other blocks
in the same pool, if it's automatically managed)? And if so, are
- these references :term:`exact `, :term:`ambiguous
- ` or :term:`weak `?
+ these references :term:`exact ` or :term:`weak
+ `?
Second, look up your answers in this table to find the recommended
pool class to use:
-========== ====================== =========== ====================================
-Automatic? Movable & protectable? References? Use this pool class
-========== ====================== =========== ====================================
-yes yes none :ref:`pool-amcz`
-yes yes exact :ref:`pool-amc`
-yes yes ambiguous nothing suitable
-yes yes weak :ref:`pool-awl`
-yes no none :ref:`pool-lo`
-yes no exact :ref:`pool-ams`
-yes no ambiguous nothing suitable
-yes no weak nothing suitable
-no *any* none :ref:`pool-mvff`
-no *any* exact :ref:`pool-mvff` [1]_
-no *any* ambiguous :ref:`pool-mvff` [1]_
-no *any* weak :ref:`pool-mvff` [1]_
-========== ====================== =========== ====================================
+====================== =========== ===================
+Movable & protectable? References? Use this pool class
+====================== =========== ===================
+yes none :ref:`pool-amcz`
+yes exact :ref:`pool-amc`
+yes weak :ref:`pool-awl`
+no none :ref:`pool-lo`
+no exact :ref:`pool-ams`
+no weak nothing suitable
+====================== =========== ===================
-.. note::
- .. [1] :ref:`pool-mvff` doesn't scan for references, but you can
- work around this by registering your blocks as
- :term:`roots` (with the appropriate :term:`rank`) just
- after they are allocated, and deregistering them just
- before freeing them.
+.. _pool-choose-manual:
+
+Choosing a manual pool class
+----------------------------
+
+Answer these questions about your data:
+
+1. Are the blocks fixed in size? If so, use :ref:`pool-mfs`.
+
+2. Are the lifetimes of blocks predictable? If so, use
+ :ref:`pool-mvt`, and arrange that objects that are predicted to die
+ at about the same time are allocated from the same
+ :term:`allocation point`.
+
+3. Otherwise, use :ref:`pool-mvff`.
.. Sources:
diff --git a/mps/manual/html/_sources/pool/mv.txt b/mps/manual/html/_sources/pool/mv.txt
index 7d9b32cbf8c..810460f6ff9 100644
--- a/mps/manual/html/_sources/pool/mv.txt
+++ b/mps/manual/html/_sources/pool/mv.txt
@@ -9,7 +9,7 @@ MV (Manual Variable)
.. deprecated:: starting with version 1.111.
- :ref:`pool-mvff` should be used instead.
+ :ref:`pool-mvff` or :ref:`pool-mvt` should be used instead.
**MV** is a general-purpose :term:`manually managed ` :term:`pool class` that manages :term:`blocks` of
diff --git a/mps/manual/html/_sources/pool/mvff.txt b/mps/manual/html/_sources/pool/mvff.txt
index 4f105bffc28..1ceae617f2b 100644
--- a/mps/manual/html/_sources/pool/mvff.txt
+++ b/mps/manual/html/_sources/pool/mvff.txt
@@ -125,7 +125,7 @@ MVFF interface
efficient if this is wrong, but nothing will break.
* :c:macro:`MPS_KEY_ALIGN` (type :c:type:`mps_align_t`, default is
- smallest general purpose alignment for the architecture) is the
+ :c:macro:`MPS_PF_ALIGN`) is the
:term:`alignment` of addresses for allocation (and freeing) in
the pool. If an unaligned size is passed to :c:func:`mps_alloc` or
:c:func:`mps_free`, it will be rounded up to the pool's alignment.
diff --git a/mps/manual/html/_sources/pool/mvt.txt b/mps/manual/html/_sources/pool/mvt.txt
index fd56d1a299c..30b63d90be0 100644
--- a/mps/manual/html/_sources/pool/mvt.txt
+++ b/mps/manual/html/_sources/pool/mvt.txt
@@ -78,10 +78,6 @@ MVT properties
* Allocations may be variable in size.
-* The :term:`alignment` of blocks is not configurable: it is the
- :term:`natural alignment` of the platform (see
- :c:macro:`MPS_PF_ALIGN`).
-
* Blocks do not have :term:`dependent objects`.
* Blocks are not automatically :term:`reclaimed`.
@@ -116,7 +112,7 @@ MVT interface
six :term:`keyword arguments`:
* :c:macro:`MPS_KEY_ALIGN` (type :c:type:`mps_align_t`, default is
- smallest general purpose alignment for the architecture) is the
+ :c:macro:`MPS_PF_ALIGN`) is the
:term:`alignment` of addresses for allocation (and freeing) in
the pool. If an unaligned size is passed to :c:func:`mps_alloc` or
:c:func:`mps_free`, it will be rounded up to the pool's alignment.
@@ -124,7 +120,7 @@ MVT interface
``sizeof(void *)``.
* :c:macro:`MPS_KEY_MIN_SIZE` (type :c:type:`size_t`, default is
- smallest general purpose alignment for the architecture) is the
+ :c:macro:`MPS_PF_ALIGN`) is the
predicted minimum size of blocks that will be allocated from the
pool.
@@ -143,9 +139,9 @@ MVT interface
that will break is the partial freeing of large blocks.
* :c:macro:`MPS_KEY_MVT_RESERVE_DEPTH` (type
- :c:type:`mps_count_t`) is the expected hysteresis of the
- population of the pool. When blocks are freed, the pool will
- retain sufficient storage to allocate this many blocks of the
+ :c:type:`mps_count_t`, default 1024) is the expected hysteresis
+ of the population of the pool. When blocks are freed, the pool
+ will retain sufficient storage to allocate this many blocks of the
mean size for near term allocations (rather than immediately
making that storage available to other pools).
@@ -167,14 +163,14 @@ MVT interface
object population does vary, at a slight cost in efficiency. The
reserve does not guarantee any particular amount of allocation.
- * :c:macro:`MPS_KEY_MVT_FRAG_LIMIT` (type :c:type:`mps_count_t`)
- is a double from 0.0 to 1.0 (inclusive). It sets an upper
- limit on the space overhead of an MVT pool, in case block death
- times and allocations do not correlate well. If the free space
- managed by the pool as a ratio of all the space managed by the
- pool exceeds the fragmentation limit, the pool falls back to a
- first fit allocation policy, exploiting space more efficiently
- at a cost in time efficiency. A fragmentation limit of 0.0 would
+ * :c:macro:`MPS_KEY_MVT_FRAG_LIMIT` (type :c:type:`double`,
+ default 0.3) is a double from 0.0 to 1.0 (inclusive). It sets an
+ upper limit on the space overhead of an MVT pool, in case block
+ death times and allocations do not correlate well. If the free
+ space managed by the pool as a ratio of all the space managed by
+ the pool exceeds the fragmentation limit, the pool falls back to a
+ first fit allocation policy, exploiting space more efficiently at
+ a cost in time efficiency. A fragmentation limit of 0.0 would
cause the pool to operate as a first-fit pool, at a significant
cost in time efficiency: therefore this is not permitted.
diff --git a/mps/manual/html/_sources/release.txt b/mps/manual/html/_sources/release.txt
new file mode 100644
index 00000000000..d780237bd7b
--- /dev/null
+++ b/mps/manual/html/_sources/release.txt
@@ -0,0 +1,72 @@
+.. _release-notes:
+
+Release notes
+=============
+
+.. _release-notes-1.112:
+
+Release 1.112.0
+---------------
+
+Interface changes
+.................
+
+1. In the :term:`hot` (production) variety, the MPS now prints
+ assertion messages to standard error but does *not* terminate the
+ program. This is because most assertions do not indicate *fatal*
+ error conditions, and continuing gives the application a chance to
+ shut down safely and save work, or even to limp along indefinitely.
+ See :ref:`topic-error-assertion-handling`.
+
+2. The behaviour when an assertion is triggered is now configurable in
+ the standard ANSI :term:`plinth` by installing an assertion
+ handler. See :c:func:`mps_lib_assert_fail_install`.
+
+3. Functions that take a variable number of arguments
+ (:c:func:`mps_arena_create`, :c:func:`mps_pool_create`,
+ :c:func:`mps_fmt_create` and :c:func:`mps_ap_create`) are now
+ deprecated in favour of functions that use a :term:`keyword
+ argument` interface (:c:func:`mps_arena_create_k`,
+ :c:func:`mps_pool_create_k`, :c:func:`mps_fmt_create_k` and
+ :c:func:`mps_ap_create_k`). The new interface provides better
+ reporting of errors, provides default values for arguments, and
+ provides forward compatibility. See :ref:`topic-keyword`.
+
+ (The old interface continues to be supported, but new features will
+ only be available through the keyword interface.)
+
+4. :ref:`pool-mfs` no longer refuses to manage blocks that are smaller
+ than the platform alignment. It now rounds up smaller sizes
+ internally if necessary.
+
+5. :ref:`pool-mvt` now allows the client to specify the alignment of
+ blocks allocated from the pool. Use the keyword argument
+ :c:macro:`MPS_KEY_ALIGN` when creating a pool of class
+ :c:func:`mps_class_mvt`.
+
+6. On Windows, you can now request that the MPS allocate address space
+ from the top down, allowing a 32-bit executable linked with
+ ``/LARGEADDRESSAWARE`` to use the top half of the address space.
+ Use the keyword argument :c:macro:`MPS_KEY_VMW3_TOP_DOWN` when
+ creating an arena of class :c:func:`mps_arena_class_vm`.
+
+
+Other changes
+.............
+
+1. On Windows, an execute exception no longer triggers an assertion.
+ See job003301_.
+
+ .. _job003301: https://www.ravenbrook.com/project/mps/issue/job003301/
+
+2. Rehashing of large address-based hash tables no longer provokes a
+ nursery collection that immediately renders the hash table stale
+ again. See job003435_.
+
+ .. _job003435: https://www.ravenbrook.com/project/mps/issue/job003435/
+
+3. :ref:`pool-mvt` no longer triggers an assertion failure when it
+ runs out of space on its reserved block queue. See job003486_.
+
+ .. _job003486: https://www.ravenbrook.com/project/mps/issue/job003486/
+
diff --git a/mps/manual/html/_sources/topic/error.txt b/mps/manual/html/_sources/topic/error.txt
index abf1a1c2600..97ec2f73216 100644
--- a/mps/manual/html/_sources/topic/error.txt
+++ b/mps/manual/html/_sources/topic/error.txt
@@ -232,6 +232,13 @@ assertion that is listed here but for which you discovered a different
cause), please :ref:`let us know ` so that we can improve
this documentation.
+``arenavm.c: BTIsResRange(vmChunk->pageTableMapped, 0, chunk->pageTablePages)``
+
+ The client program called :c:func:`mps_arena_destroy` without
+ having destroyed all pools in that arena first. (The assertion is
+ from the virtual memory manager which is checking that all pages
+ have been unmapped.)
+
``dbgpool.c: fencepost check on free``
diff --git a/mps/manual/html/_static/pygments.css b/mps/manual/html/_static/pygments.css
index d79caa151c2..1a14f2ae1ab 100644
--- a/mps/manual/html/_static/pygments.css
+++ b/mps/manual/html/_static/pygments.css
@@ -13,11 +13,11 @@
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #333333 } /* Generic.Output */
+.highlight .go { color: #303030 } /* Generic.Output */
.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0044DD } /* Generic.Traceback */
+.highlight .gt { color: #0040D0 } /* Generic.Traceback */
.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
diff --git a/mps/manual/html/contact.html b/mps/manual/html/contact.html
index 91a7007fbfe..b82ffcc0113 100644
--- a/mps/manual/html/contact.html
+++ b/mps/manual/html/contact.html
@@ -27,6 +27,7 @@
+
@@ -36,6 +37,9 @@
index
+
+ next |
previous |
@@ -80,7 +84,10 @@ Ravenbrook’s web site.
Previous topic
Memory Pool System Kit Open Source License
Downloads
+ title="previous chapter">Memory Pool System Kit Open Source License
+ Next topic
+ Release notes
Downloads
MPS Kit release 1.111.0
@@ -105,6 +112,9 @@ Ravenbrook’s web site.
index
+
+ next |
previous |
diff --git a/mps/manual/html/design/abq.html b/mps/manual/html/design/abq.html
index 405c1e57661..52dda7a90ea 100644
--- a/mps/manual/html/design/abq.html
+++ b/mps/manual/html/design/abq.html
@@ -55,7 +55,7 @@
-
1. Queue design
+
1. Queue design
1.1. Introduction
.intro: This is the design of the ABQ module, which implements a
diff --git a/mps/manual/html/design/alloc-frame.html b/mps/manual/html/design/alloc-frame.html
index 51d1c2656d6..aec754e14be 100644
--- a/mps/manual/html/design/alloc-frame.html
+++ b/mps/manual/html/design/alloc-frame.html
@@ -54,8 +54,8 @@
-
-
1. Allocation frame protocol
+
+
1. Allocation frame protocol
1.1. Introduction
.intro: This document explains the design of the support for
@@ -407,9 +407,9 @@ responding to a Sel
.lw-frame.state-impl: Each AP contains 3 additional fields to hold this state:
-mps_addr_t frameptr ;
-mps_bool_t enabled ;
-mps_bool_t lwPopPending ;
+mps_addr_t frameptr ;
+mps_bool_t enabled ;
+mps_bool_t lwPopPending ;
.lw-frame.enabled: The enabled slot holds the following values for
diff --git a/mps/manual/html/design/arena.html b/mps/manual/html/design/arena.html
index 3ddabd37c0f..ea17e453da4 100644
--- a/mps/manual/html/design/arena.html
+++ b/mps/manual/html/design/arena.html
@@ -54,8 +54,8 @@
-
-
2. Arena
+
+
2. Arena
2.1. Introduction
.intro: This is the design of the arena structure.
diff --git a/mps/manual/html/design/arenavm.html b/mps/manual/html/design/arenavm.html
index 106c3a5c42f..09729528309 100644
--- a/mps/manual/html/design/arenavm.html
+++ b/mps/manual/html/design/arenavm.html
@@ -54,8 +54,8 @@
-
-
3. Virtual Memory Arena
+
+
3. Virtual Memory Arena
3.1. Introduction
.intro: This document describes the detailed design of the Virtual
diff --git a/mps/manual/html/design/boot.html b/mps/manual/html/design/boot.html
deleted file mode 100644
index bacb6afe21e..00000000000
--- a/mps/manual/html/design/boot.html
+++ /dev/null
@@ -1,125 +0,0 @@
-
-
-
-
-
-
-
-
-
-
The MPS Bootstrap — Memory Pool System 1.111.0 documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
The MPS Bootstrap
-
-
Introduction
-
The `Memory Pool System`_ starts with no memory, but must somehow
-allocate its own control structures in order to provide memory to the
-client program. The MPS is freestanding [ref?] and so it can’t get its
-memory from the C library’s malloc . So how does it get off the
-ground? It pulls itself up by its own bootstraps. This document
-describes how.
-
-
Note
-
This document was written as a prelude to reforming the bootstrap,
-so it shouldn’t be taken as advocating it as an amazing piece of
-design.
-
-
Pretty much the first call to the MPS is to ArenaCreate , which calls the
-arena class specific init method. That must create an initialized arena,
-except for the “control pool”, from which many MPS data structures will be
-allocated.
-
In the case of the VM arena, VMArenaInit creates a VM large enough to hold
-a VMArenaStruct (which contains the generic ArenaStruct ) and maps
-pages into it. It then calls ArenaInit to initialise the generic part,
-before filling in the VM-specific part. Having done that, it adds the initial
-VMChunk – a large area of address space – that will be used to supply
-memory via ArenaAlloc .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mps/manual/html/design/bt.html b/mps/manual/html/design/bt.html
index c7338dea279..f159cd81e7a 100644
--- a/mps/manual/html/design/bt.html
+++ b/mps/manual/html/design/bt.html
@@ -54,8 +54,8 @@
-
-
4. Bit tables
+
+
4. Bit tables
4.1. Introduction
.intro: This is the design of the Bit Tables module. A Bit Table is a
@@ -400,7 +400,7 @@ now return 0 for base
otherwise. Meets .non-req.ops.test.range.same .
.if.find.general: There are four functions (below) to find reset
ranges. All the functions have the same prototype (for symmetry):
-
Bool find ( Index * baseReturn , Index * limitReturn ,
+Bool find ( Index * baseReturn , Index * limitReturn ,
BT bt ,
Index searchBase , Index searchLimit ,
Count length );
diff --git a/mps/manual/html/design/buffer.html b/mps/manual/html/design/buffer.html
index ba31277c751..db7f213bca1 100644
--- a/mps/manual/html/design/buffer.html
+++ b/mps/manual/html/design/buffer.html
@@ -54,8 +54,8 @@
-
-
5. Allocation buffers and allocation points
+
+
5. Allocation buffers and allocation points
5.1. Introduction
.scope: This document describes the design of allocation buffers
diff --git a/mps/manual/html/design/cbs.html b/mps/manual/html/design/cbs.html
index 8242ce8331a..1f3a4b6c4e6 100644
--- a/mps/manual/html/design/cbs.html
+++ b/mps/manual/html/design/cbs.html
@@ -55,7 +55,7 @@
-
2. Coalescing block structure
+
2. Coalescing block structure
2.1. Introduction
.intro: This is the design for impl.c.cbs, which implements a data
diff --git a/mps/manual/html/design/check.html b/mps/manual/html/design/check.html
index 6600fa47ee5..0da920900d6 100644
--- a/mps/manual/html/design/check.html
+++ b/mps/manual/html/design/check.html
@@ -54,8 +54,8 @@
-
-
6. Checking
+
+
6. Checking
6.1. Introduction
.intro: This documents the design of structure checking within the
diff --git a/mps/manual/html/design/class-interface.html b/mps/manual/html/design/class-interface.html
index 86ddbf7b7b1..11c2952bbd0 100644
--- a/mps/manual/html/design/class-interface.html
+++ b/mps/manual/html/design/class-interface.html
@@ -54,8 +54,8 @@
-
-
7. Pool class interface
+
+
7. Pool class interface
7.1. Introduction
.intro: This document describes the interface and protocols between
diff --git a/mps/manual/html/design/collection.html b/mps/manual/html/design/collection.html
index 27fc50f68d7..d56e4ff0b9f 100644
--- a/mps/manual/html/design/collection.html
+++ b/mps/manual/html/design/collection.html
@@ -54,8 +54,8 @@
-
-
8. Collection framework
+
+
8. Collection framework
8.1. Introduction
.intro: This document describes the Collection Framework. It’s a
diff --git a/mps/manual/html/design/config.html b/mps/manual/html/design/config.html
index 4110bca1318..5988de687e4 100644
--- a/mps/manual/html/design/config.html
+++ b/mps/manual/html/design/config.html
@@ -54,8 +54,8 @@
-
-
3. MPS Configuration
+
+
3. MPS Configuration
3.1. Introduction
.intro: This document describes how the Memory Pool System source code is configured so
@@ -440,19 +440,19 @@ possibly their types, depending on the protocol defined
configuration parameter. However, the concrete interface may vary.
For example, this isn’t allowed, because there is a change in the interface:
#if defined(PROT_FOO)
-void ProtSpong ( Foo foo , Bar bar );
+void ProtSpong ( Foo foo , Bar bar );
#else
-int ProtSpong ( Bar bar , Foo foo );
+int ProtSpong ( Bar bar , Foo foo );
#endif
This example shows how:
#ifdef PROTECTION
-void ProtSync ( Space space );
-/* more decls. */
+void ProtSync ( Space space );
+/* more decls. */
#else /* PROTECTION not */
#define ProtSync(space) NOOP
-/* more decls. */
+/* more decls. */
#endif /* PROTECTION */
diff --git a/mps/manual/html/design/critical-path.html b/mps/manual/html/design/critical-path.html
index 14f379b06b8..c0eb90c825b 100644
--- a/mps/manual/html/design/critical-path.html
+++ b/mps/manual/html/design/critical-path.html
@@ -54,8 +54,8 @@
-
-
4. The critical path through the MPS
+
+
4. The critical path through the MPS
single: critical path
single: path; critical
@@ -181,18 +181,18 @@ registered with one of the
Here is an example of part of a format scanner for scanning contiguous
runs of pointers, from fmtdy.c , the scanner for the Open Dylan
runtime:
-static mps_res_t dylan_scan_contig ( mps_ss_t mps_ss ,
- mps_addr_t * base , mps_addr_t * limit )
+static mps_res_t dylan_scan_contig ( mps_ss_t mps_ss ,
+ mps_addr_t * base , mps_addr_t * limit )
{
- mps_res_t res ;
- mps_addr_t * p ; /* reference cursor */
- mps_addr_t r ; /* reference to be fixed */
+ mps_res_t res ;
+ mps_addr_t * p ; /* reference cursor */
+ mps_addr_t r ; /* reference to be fixed */
MPS_SCAN_BEGIN ( mps_ss ) {
p = base ;
loop: if ( p >= limit ) goto out ;
r = * p ++ ;
- if ((( mps_word_t ) r & 3 ) != 0 ) /* pointers tagged with 0 */
+ if ((( mps_word_t ) r & 3 ) != 0 ) /* pointers tagged with 0 */
goto loop ; /* not a pointer */
if ( ! MPS_FIX1 ( mps_ss , r )) goto loop ;
res = MPS_FIX2 ( mps_ss , p - 1 );
diff --git a/mps/manual/html/design/diag.html b/mps/manual/html/design/diag.html
index 2f0dca5841a..0a5c0f34206 100644
--- a/mps/manual/html/design/diag.html
+++ b/mps/manual/html/design/diag.html
@@ -54,8 +54,8 @@
-
-
9. Diagnostic feedback
+
+
9. Diagnostic feedback
9.1. Introduction
.intro: This document describes how to use the diagnostic feedback
@@ -99,33 +99,34 @@ places where you want to inspect data structures (or wait for the
debugger to be entered via an abort() call or unhandled
segmentation fault). Then at the debugger command prompt, run
Describe() commands of your choice. For example:
-
(gdb) run
-Starting program: mv2test
-Reading symbols for shared libraries +............................. done
-cbs.c:94: MPS ASSERTION FAILED: !cbs->inCBS
+( gdb ) run
+Starting program : mv2test
+Reading symbols for shared libraries + ............................. done
+cbs . c : 94 : MPS ASSERTION FAILED : ! cbs -> inCBS
-Program received signal SIGABRT, Aborted.
-0x00007fff83e42d46 in __kill ()
-(gdb) frame 12
-#12 0x000000010000b1fc in MVTFree (pool=0x103ffe160, base=0x101dfd000, size=5024) at poolmv2.c:711
-711 Res res = CBSInsert(MVTCBS(mvt), base, limit);
-(gdb) p MVTDescribe(mvt, mps_lib_get_stdout())
-MVT 0000000103FFE160
-{
- minSize: 8
- meanSize: 42
- maxSize: 8192
- fragLimit: 30
- reuseSize: 16384
- fillSize: 8192
- availLimit: 1110835
- abqOverflow: FALSE
- splinter: TRUE
- splinterSeg: 0000000103FEE780
- splinterBase: 0000000101D7ABB8
- splinterLimit: 0000000101D7B000
- # ... etc ...
-}
+
Program received signal SIGABRT , Aborted .
+
0x00007fff83e42d46 in __kill ()
+
( gdb ) frame 12
+
#12 0x000000010000b1fc in MVTFree (pool=0x103ffe160, base=0x101dfd000, size=5024) at poolmv2.c:711
+
711 Res res = CBSInsert ( MVTCBS ( mvt ), base , limit );
+
( gdb ) p MVTDescribe ( mvt , mps_lib_get_stdout ())
+
MVT 0000000103FF E160
+
{
+
minSize: 8
+
meanSize: 42
+
maxSize: 8192
+
fragLimit: 30
+
reuseSize: 16384
+
fillSize: 8192
+
availLimit: 1110835
+
abqOverflow: FALSE
+
splinter: TRUE
+
splinterSeg: 0000000103F EE780
+
splinterBase: 0000000101 D7ABB8
+
splinterLimit: 0000000101 D7B000
+
# ... etc ...
+
}
+
diff --git a/mps/manual/html/design/finalize.html b/mps/manual/html/design/finalize.html
index 0370c0446b0..62c6ce6751d 100644
--- a/mps/manual/html/design/finalize.html
+++ b/mps/manual/html/design/finalize.html
@@ -54,8 +54,8 @@
-
-
10. Finalization
+
+
10. Finalization
10.1. Overview
.overview: Finalization is implemented internally using the
diff --git a/mps/manual/html/design/fix.html b/mps/manual/html/design/fix.html
index f6730444bfd..3a0057a275e 100644
--- a/mps/manual/html/design/fix.html
+++ b/mps/manual/html/design/fix.html
@@ -54,8 +54,8 @@
-
-
11. The generic fix function
+
+
11. The generic fix function
11.1. Introduction
.intro: Fix is the interface through which the existence of
diff --git a/mps/manual/html/design/freelist.html b/mps/manual/html/design/freelist.html
index 6b6e7447d95..13482cccabd 100644
--- a/mps/manual/html/design/freelist.html
+++ b/mps/manual/html/design/freelist.html
@@ -55,7 +55,7 @@
-
5. Free list allocator
+
5. Free list allocator
5.1. Introduction
.intro: This document describes the free list allocator for the
diff --git a/mps/manual/html/design/guide.hex.trans.html b/mps/manual/html/design/guide.hex.trans.html
index 3af49325e2c..5764ebc1aee 100644
--- a/mps/manual/html/design/guide.hex.trans.html
+++ b/mps/manual/html/design/guide.hex.trans.html
@@ -54,8 +54,8 @@
-
-
6. Transliterating the alphabet into hexadecimal
+
+
6. Transliterating the alphabet into hexadecimal
6.1. Introduction
.scope: This document explains how to represent the alphabet as
diff --git a/mps/manual/html/design/guide.impl.c.format.html b/mps/manual/html/design/guide.impl.c.format.html
index 35f39a9dbaf..51775d94743 100644
--- a/mps/manual/html/design/guide.impl.c.format.html
+++ b/mps/manual/html/design/guide.impl.c.format.html
@@ -54,8 +54,8 @@