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;
Memory Pool System Kit Open Source License
MPS Kit release 1.111.0
@@ -105,6 +112,9 @@ Ravenbrook’s web site.
.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 @@
.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: .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 @@
.intro: This is the design of the arena structure. .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 `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. .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): .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 @@
.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 @@
.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 @@
.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 @@
.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 @@
.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: This example shows how: .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: .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 @@
.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 @@
.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 @@
.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 @@
.scope: This document describes the Ravenbrook conventions for the
diff --git a/mps/manual/html/design/interface-c.html b/mps/manual/html/design/interface-c.html
index b04ebc977c7..77ca5f53ef7 100644
--- a/mps/manual/html/design/interface-c.html
+++ b/mps/manual/html/design/interface-c.html
@@ -54,8 +54,8 @@
.scope: This document is the design for the Memory Pool System
@@ -175,19 +175,19 @@ as pointer to function) are declared a prototype should be used and
the parameters to the function should not be named. This includes the
case where you are declaring the prototype for an interface function. .type.fun.example: So use: rather than: and: rather than: See guide.impl.c.misc.prototype.parameters. .intro: This document is the design of the MPS I/O Subsystem, a
@@ -190,7 +190,7 @@ liberty to define this structure. Up to version 1.111, the Memory Pool System used varags to pass arguments
@@ -70,9 +70,9 @@ parameters. The basic design is not specific to the MPS. The keyword argument list is
passed as an array of argument structures which look like this: .intro: This document is the design of the MPS Library Interface, a
diff --git a/mps/manual/html/design/lock.html b/mps/manual/html/design/lock.html
index 59b77ecf36b..3a644bfb3b5 100644
--- a/mps/manual/html/design/lock.html
+++ b/mps/manual/html/design/lock.html
@@ -54,8 +54,8 @@
.purpose: Support the locking needs of the thread-safe design. In
diff --git a/mps/manual/html/design/locus.html b/mps/manual/html/design/locus.html
index 5ee7f2337e4..ab8d1e542ec 100644
--- a/mps/manual/html/design/locus.html
+++ b/mps/manual/html/design/locus.html
@@ -54,8 +54,8 @@
.intro: The locus manager coordinates between the pools and takes
diff --git a/mps/manual/html/design/message-gc.html b/mps/manual/html/design/message-gc.html
index 35177656e55..27a67303e02 100644
--- a/mps/manual/html/design/message-gc.html
+++ b/mps/manual/html/design/message-gc.html
@@ -54,8 +54,8 @@
.intro: This document describes the design of the MPS garbage
diff --git a/mps/manual/html/design/message.html b/mps/manual/html/design/message.html
index 5223019b610..bd4f090bdf9 100644
--- a/mps/manual/html/design/message.html
+++ b/mps/manual/html/design/message.html
@@ -54,8 +54,8 @@
.intro: The client message protocol provides a means by which
diff --git a/mps/manual/html/design/object-debug.html b/mps/manual/html/design/object-debug.html
index d684197a658..ac0633385d7 100644
--- a/mps/manual/html/design/object-debug.html
+++ b/mps/manual/html/design/object-debug.html
@@ -54,8 +54,8 @@
.intro: This is the design for all the various debugging features
diff --git a/mps/manual/html/design/old.html b/mps/manual/html/design/old.html
index ceacd37afa8..d6fc8aa1c39 100644
--- a/mps/manual/html/design/old.html
+++ b/mps/manual/html/design/old.html
@@ -505,265 +505,324 @@ date, they will be moved to the main 26.12. Notes
- .def.outer-structure: The “outer structure” (of a pool) is a C
diff --git a/mps/manual/html/design/poolamc.html b/mps/manual/html/design/poolamc.html
index 0fcd97c3b6b..0f2a1d5b7a6 100644
--- a/mps/manual/html/design/poolamc.html
+++ b/mps/manual/html/design/poolamc.html
@@ -54,8 +54,8 @@
.intro: This document contains a guide (.guide) to the MPS AMC
diff --git a/mps/manual/html/design/poolams.html b/mps/manual/html/design/poolams.html
index 4413379c251..303953eb629 100644
--- a/mps/manual/html/design/poolams.html
+++ b/mps/manual/html/design/poolams.html
@@ -54,8 +54,8 @@
mps_addr_t frameptr;
-mps_bool_t enabled;
-mps_bool_t lwPopPending;
+
mps_addr_t frameptr;
+mps_bool_t enabled;
+mps_bool_t lwPopPending;
2. Arena¶
+ 2. Arena¶
2.1. Introduction¶
3. Virtual Memory Arena¶
+ 3. Virtual Memory Arena¶
3.1. Introduction¶
The MPS Bootstrap¶
-Introduction¶
-4. Bit tables¶
+ 4. Bit tables¶
4.1. Introduction¶
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¶
2. Coalescing block structure¶
+2. Coalescing block structure¶
2.1. Introduction¶
6. Checking¶
+ 6. Checking¶
6.1. Introduction¶
7. Pool class interface¶
+ 7. Pool class interface¶
7.1. Introduction¶
8. Collection framework¶
+ 8. Collection framework¶
8.1. Introduction¶
3. MPS Configuration¶
+ 3. MPS Configuration¶
3.1. Introduction¶
#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
#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 */
4. The critical path through the MPS¶
+ 4. The critical path through the MPS¶
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¶
(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 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 ...
+}
+10. Finalization¶
+ 10. Finalization¶
10.1. Overview¶
11. The generic fix function¶
+ 11. The generic fix function¶
11.1. Introduction¶
5. Free list allocator¶
+5. Free list allocator¶
5.1. Introduction¶
6. Transliterating the alphabet into hexadecimal¶
+ 6. Transliterating the alphabet into hexadecimal¶
6.1. Introduction¶
7. C Style – formatting¶
+ 7. C Style – formatting¶
7.1. Introduction¶
12. C interface design¶
+ 12. C interface design¶
12.1. Introduction¶
extern mps_res_t mps_alloc(mps_addr_t *, mps_pool_t, size_t, ...);
+
extern mps_res_t mps_alloc(mps_addr_t *, mps_pool_t, size_t, ...);
extern mps_res_t mps_alloc(mps_addr_t *addr_return, mps_pool_t pool , size_t size, ...);
+
extern mps_res_t mps_alloc(mps_addr_t *addr_return, mps_pool_t pool , size_t size, ...);
typedef mps_addr_t (*mps_fmt_class_t)(mps_addr_t);
+
typedef mps_addr_t (*mps_fmt_class_t)(mps_addr_t);
typedef mps_addr_t (*mps_fmt_class_t)(mps_addr_t object);
+
typedef mps_addr_t (*mps_fmt_class_t)(mps_addr_t object);
13. I/O subsystem¶
+ 13. I/O subsystem¶
13.1. Introduction¶
typedef int mps_io_type_t;
+
typedef int mps_io_type_t;
enum {
MPS_IO_TYPE_TELEMETRY,
MPS_IO_TYPE_DEBUG
@@ -293,11 +293,11 @@ just a few old messages. What can you do with it?
struct sockaddr_in debugging;
} mps_io_s;
-static mps_bool_t inited = 0;
+static mps_bool_t inited = 0;
static mps_io_s state;
-mps_res_t mps_io_create(mps_io_t *mps_io_o)
+mps_res_t mps_io_create(mps_io_t *mps_io_o)
{
int sock, r;
@@ -329,7 +329,7 @@ just a few old messages. What can you do with it?
}
-void mps_io_destroy(mps_io_t mps_io)
+void mps_io_destroy(mps_io_t mps_io)
{
assert(mps_io == &state);
assert(inited);
@@ -340,7 +340,7 @@ just a few old messages. What can you do with it?
}
-mps_res_t mps_io_send(mps_io_t mps_io, mps_type_t type,
+mps_res_t mps_io_send(mps_io_t mps_io, mps_type_t type,
void *message, size_t size)
{
struct sockaddr *toaddr;
@@ -368,7 +368,7 @@ just a few old messages. What can you do with it?
}
-mps_res_t mps_io_receive(mps_io_t mps_io,
+mps_res_t mps_io_receive(mps_io_t mps_io,
void **message_o, size_t **size_o)
{
int r;
diff --git a/mps/manual/html/design/keyword-arguments.html b/mps/manual/html/design/keyword-arguments.html
index 19f17506f36..57e1ca1135c 100644
--- a/mps/manual/html/design/keyword-arguments.html
+++ b/mps/manual/html/design/keyword-arguments.html
@@ -54,8 +54,8 @@
8. Keyword arguments in the MPS¶
+ 8. Keyword arguments in the MPS¶
8.1. Introduction¶
8.2. Overview¶
typedef struct mps_key_s *mps_key_t;
+
typedef struct mps_key_s *mps_key_t;
typedef struct mps_arg_s {
- mps_key_t key;
+ mps_key_t key;
union {
int i;
char c;
@@ -127,7 +127,7 @@ a checking method for the argument, like this:
typedef struct mps_key_s {
Sig sig; /* Always KeySig */
const char *name;
- Bool check(Arg arg);
+ Bool check(Arg arg);
} KeyStruct;
14. Library interface¶
+ 14. Library interface¶
14.1. Introduction¶
15. The lock module¶
+ 15. The lock module¶
15.1. Purpose¶
16. MPS Configuration¶
+ 16. MPS Configuration¶
16.1. Introduction¶
18. GC messages¶
+ 18. GC messages¶
18.1. Introduction¶
17. Client message protocol¶
+ 17. Client message protocol¶
17.1. Introduction¶
19. Debugging features for client objects¶
+ 19. Debugging features for client objects¶
19.1. Introduction¶
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
+
-
-
-
-
-
-
-
-
+
+
-
+
-
-
+
-
diff --git a/mps/manual/html/design/pool.html b/mps/manual/html/design/pool.html
index 849d883626b..17b27896732 100644
--- a/mps/manual/html/design/pool.html
+++ b/mps/manual/html/design/pool.html
@@ -54,8 +54,8 @@
20. Pool and pool class mechanisms¶
+ 20. Pool and pool class mechanisms¶
20.1. Definitions¶
21. AMC pool class¶
+ 21. AMC pool class¶
21.1. Introduction¶