diff --git a/mps/code/comm.gmk b/mps/code/comm.gmk
index 63facd0b6e5..11b54b902ab 100644
--- a/mps/code/comm.gmk
+++ b/mps/code/comm.gmk
@@ -239,7 +239,7 @@ TESTCASES=abqtest amcss amcsshe amcssth amsss amssshe apss arenacv awlut \
messtest mpmss mpsicv poolncv qs sacss segsmss steptest \
walkt0
testrun: $(TESTCASES)
- OUTPUT=$$(mktemp /tmp/mps-XXXXXX.log); \
+ OUTPUT=$$(mktemp /tmp/mps.log.XXXXXX); \
echo "Logging test output to $$OUTPUT"; \
$(^:%=(TESTCASE=$(PFM)/$(VARIETY)/%; \
echo "\n\n-- Running $$TESTCASE at $$(date) --" >> $$OUTPUT && \
diff --git a/mps/code/lockutw3.c b/mps/code/lockutw3.c
index b135f0e1d43..51a1206a37d 100644
--- a/mps/code/lockutw3.c
+++ b/mps/code/lockutw3.c
@@ -74,6 +74,7 @@ int main(int argc, char *argv[])
Insist(lock != NULL);
LockInit(lock);
+ UNUSED(argc);
shared = 0;
diff --git a/mps/code/qs.c b/mps/code/qs.c
index 2adc49ec4b9..2bf41c4c8f4 100644
--- a/mps/code/qs.c
+++ b/mps/code/qs.c
@@ -187,6 +187,7 @@ static void makerndlist(unsigned l)
{
unsigned i;
mps_word_t r;
+ mps_addr_t addr;
cdie(l > 0, "list len");
if(list != NULL) {
@@ -194,8 +195,10 @@ static void makerndlist(unsigned l)
list = NULL;
}
listl = l;
- die(mps_alloc((mps_addr_t *)&list, mpool, (l * sizeof(mps_word_t))),
+ addr = list;
+ die(mps_alloc(&addr, mpool, (l * sizeof(mps_word_t))),
"Alloc List");
+ list = addr;
reg[0] = (mps_addr_t)0;
regtag[0] = QSRef;
for(i = 0; i < l; ++i) {
@@ -330,6 +333,8 @@ static void *go(void *p, size_t s)
{
mps_fmt_t format;
mps_chain_t chain;
+ mps_addr_t base;
+ mps_addr_t *addr;
testlib_unused(p);
testlib_unused(s);
@@ -350,8 +355,11 @@ static void *go(void *p, size_t s)
reg,
NREGS),
"RootCreateTable");
+
+ base = &activationStack;
+ addr = base;
die(mps_root_create_table(&actroot, arena, mps_rank_ambig(), 0,
- (mps_addr_t *)&activationStack, sizeof(QSCell)/sizeof(mps_addr_t)),
+ addr, sizeof(QSCell)/sizeof(mps_addr_t)),
"RootCreateTable");
/* makes a random list */
@@ -396,6 +404,7 @@ static mps_res_t scan1(mps_ss_t ss, mps_addr_t *objectIO)
{
QSCell cell;
mps_res_t res;
+ mps_addr_t addr;
cdie(objectIO != NULL, "objectIO");
@@ -404,20 +413,24 @@ static mps_res_t scan1(mps_ss_t ss, mps_addr_t *objectIO)
switch(cell->tag) {
case QSRef:
- if(!MPS_FIX1(ss, (mps_addr_t)cell->value))
+ addr = cell->value;
+ if(!MPS_FIX1(ss, addr))
goto fixTail;
- res = MPS_FIX2(ss, (mps_addr_t *)&cell->value);
+ res = MPS_FIX2(ss, &addr);
if(res != MPS_RES_OK)
return res;
+ cell->value = addr;
/* fall */
case QSInt:
fixTail:
- if(!MPS_FIX1(ss, (mps_addr_t)cell->tail))
+ addr = cell->tail;
+ if(!MPS_FIX1(ss, addr))
break;
- res = MPS_FIX2(ss, (mps_addr_t *)&cell->tail);
+ res = MPS_FIX2(ss, &addr);
if(res != MPS_RES_OK)
return res;
+ cell->tail = addr;
break;
case QSEvac:
diff --git a/mps/code/version.c b/mps/code/version.c
index 03e7b78334e..0a9afed3476 100644
--- a/mps/code/version.c
+++ b/mps/code/version.c
@@ -29,7 +29,7 @@ SRCID(version, "$Id$");
* (Note: before 2006-02-01 the style was "release.epcore.chub")
*/
-#define MPS_RELEASE "release/1.110.0"
+#define MPS_RELEASE "release/1.111.0"
/* MPSCopyrightNotice -- copyright notice for the binary
diff --git a/mps/configure b/mps/configure
index 37bc1f842af..50885dcc35a 100755
--- a/mps/configure
+++ b/mps/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Memory Pool System Kit master.
+# Generated by GNU Autoconf 2.69 for Memory Pool System Kit release 1.111.0.
#
# Report bugs to
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
.tract.if.tractofaddr: The function TractOfAddr() finds the tract corresponding to an address in memory. (See .req.fun.trans):
-Bool TractOfAddr(Tract *tractReturn, Arena arena, Addr addr);
+Bool TractOfAddr(Tract *tractReturn, Arena arena, Addr addr);
If addr is an address which has been allocated to some pool, then
@@ -552,7 +552,7 @@ next root.
title="next chapter">2. Bit tablesDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -560,7 +560,7 @@ next root.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -580,7 +580,7 @@ next root.
.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);
@@ -804,7 +804,7 @@ TEST1 and TEST2.
title="next chapter">3. Coalescing block structureDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -812,7 +812,7 @@ TEST1 and TEST2.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -832,7 +832,7 @@ TEST1 and TEST2.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Design »
diff --git a/mps/manual/html/design/cbs.html b/mps/manual/html/design/cbs.html
index 9c8a10dc33f..52237bcb45d 100644
--- a/mps/manual/html/design/cbs.html
+++ b/mps/manual/html/design/cbs.html
@@ -8,7 +8,7 @@
- 3. Coalescing block structure — Memory Pool System 1.110.0 documentation
+ 3. Coalescing block structure — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Design »
@@ -737,7 +737,7 @@ supports the following methods (for sub-module internal use):
title="next chapter">4. CheckingDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -745,7 +745,7 @@ supports the following methods (for sub-module internal use):
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -765,7 +765,7 @@ supports the following methods (for sub-module internal use):
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
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 is allowed:
#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 */
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
In Scheme, an open file is represented by a port. In the toy Scheme interpreter, a port is a wrapper around a standard C file handle:
typedef struct port_s {
- type_t type; /* TYPE_PORT */
- obj_t name; /* name of stream */
+ type_t type; /* TYPE_PORT */
+ obj_t name; /* name of stream */
FILE *stream;
} port_s;
Any block in an automatically managed pool can be registered for finalization by calling mps_finalize(). In the toy Scheme interpreter, this can be done in make_port:
- static obj_t make_port(obj_t name, FILE *stream)
+ static obj_t make_port(obj_t name, FILE *stream)
{
- mps_addr_t port_ref;
- obj_t obj;
- mps_addr_t addr;
+ mps_addr_t port_ref;
+ obj_t obj;
+ mps_addr_t addr;
size_t size = ALIGN(sizeof(port_s));
do {
- mps_res_t res = mps_reserve(&addr, obj_ap, size);
+ mps_res_t res = mps_reserve(&addr, obj_ap, size);
if (res != MPS_RES_OK) error("out of memory in make_port");
obj = addr;
obj->port.type = TYPE_PORT;
@@ -127,17 +127,17 @@ reachable.
message queue is at the start of the read–eval–print loop. When a
finalization message is found, the associated file handle is closed
(unless it has been closed already), and the message is discarded.
- mps_message_type_t type;
+ mps_message_type_t type;
while (mps_message_queue_type(&type, arena)) {
- mps_message_t message;
- mps_bool_t b;
+ mps_message_t message;
+ mps_bool_t b;
b = mps_message_get(&message, arena, type);
assert(b); /* we just checked there was one */
if (type == mps_message_type_finalization()) {
- mps_addr_t port_ref;
- obj_t port;
+ mps_addr_t port_ref;
+ obj_t port;
mps_message_finalization_ref(&port_ref, arena, message);
port = port_ref;
assert(TYPE(port) == TYPE_PORT);
@@ -176,11 +176,11 @@ finalization message is found, the associated file handle is closed
optimization: setting stream to NULL ensures that the file
handle wouldn’t be closed more than once, even if the port object were
later finalized.
-static void port_close(obj_t port)
+static void port_close(obj_t port)
{
assert(TYPE(port) == TYPE_PORT);
if(port->port.stream != NULL) {
- mps_addr_t port_ref = port;
+ mps_addr_t port_ref = port;
fclose(port->port.stream);
port->port.stream = NULL;
mps_definalize(arena, &port_ref);
@@ -253,24 +253,24 @@ depended on might have moved since their location was depended upon.
case of a hash table, it is most convenient to inline it in the hash
table’s metadata:
typedef struct table_s {
- type_t type; /* TYPE_TABLE */
- hash_t hash; /* hash function */
- cmp_t cmp; /* comparison function */
+ type_t type; /* TYPE_TABLE */
+ hash_t hash; /* hash function */
+ cmp_t cmp; /* comparison function */
mps_ld_s ld; /* location dependency */
- obj_t buckets; /* hash buckets */
+ obj_t buckets; /* hash buckets */
} table_s;
Before being used, the location dependency must be reset to indicate
that nothing is depended upon, by calling mps_ld_reset().
For example:
-static obj_t make_table(size_t length, hash_t hashf, cmp_t cmpf)
+static obj_t make_table(size_t length, hash_t hashf, cmp_t cmpf)
{
- obj_t obj;
- mps_addr_t addr;
+ obj_t obj;
+ mps_addr_t addr;
size_t l, size = ALIGN(sizeof(table_s));
do {
- mps_res_t res = mps_reserve(&addr, obj_ap, size);
+ mps_res_t res = mps_reserve(&addr, obj_ap, size);
if (res != MPS_RES_OK) error("out of memory in make_table");
obj = addr;
obj->table.type = TYPE_TABLE;
@@ -296,12 +296,12 @@ have taken place after the hash was computed but before you added the
dependency.)
In the toy Scheme interpreter, this is done just before the computation
of the hash of the address.
-static unsigned long eq_hash(obj_t obj, mps_ld_t ld)
+static unsigned long eq_hash(obj_t obj, mps_ld_t ld)
{
- union {char s[sizeof(obj_t)]; obj_t addr;} u;
+ union {char s[sizeof(obj_t)]; obj_t addr;} u;
if (ld) mps_ld_add(ld, arena, obj);
u.addr = obj;
- return hash(u.s, sizeof(obj_t));
+ return hash(u.s, sizeof(obj_t));
}
@@ -309,7 +309,7 @@ of the hash of the address.
avoids adding unnecessary dependencies on a location. For example, an
eqv? hash table does not need to depend on the location of numbers
and characters:
-static unsigned long eqv_hash(obj_t obj, mps_ld_t ld)
+static unsigned long eqv_hash(obj_t obj, mps_ld_t ld)
{
switch(TYPE(obj)) {
case TYPE_INTEGER:
@@ -339,7 +339,7 @@ the key is stale: that is, if the garbage collector moved the key. The
function mps_ld_isstale() tells you if any of the blocks whose
locations you depended upon since the last call to
mps_ld_reset() might have moved.
-static obj_t table_ref(obj_t tbl, obj_t key)
+static obj_t table_ref(obj_t tbl, obj_t key)
{
struct bucket_s *b = buckets_find(tbl, tbl->table.buckets, key, NULL);
if (b && b->key != NULL && b->key != obj_deleted)
@@ -361,7 +361,7 @@ unnecessarily rehashing the whole table. (It’s crucial, however, to
actually test that key appears in the table, not just that some key
with the same hash does.)
When a table is rehashed, call mps_ld_reset() to clear the
-location dependency, and the mps_ld_add() for each key before it is added back to the table.
+location dependency, and then mps_ld_add() for each key before it is added back to the table.
Note
Somewhat misleadingly, mps_ld_isstale() takes an address as
@@ -425,7 +425,7 @@ causes static void table_delete(obj_t tbl, obj_t key)
+static void table_delete(obj_t tbl, obj_t key)
{
struct bucket_s *b;
assert(TYPE(tbl) == TYPE_TABLE);
@@ -500,9 +500,9 @@ vectors, one for the keys and the other for the values, to allow keys
and values to have different ranks.
These vectors will be allocated from an AWL pool with two allocation
points, one for strong references, and one for weak references:
-static mps_pool_t buckets_pool; /* pool for hash table buckets */
-static mps_ap_t strong_buckets_ap; /* allocation point for strong buckets */
-static mps_ap_t weak_buckets_ap; /* allocation point for weak buckets */
+static mps_pool_t buckets_pool; /* pool for hash table buckets */
+static mps_ap_t strong_buckets_ap; /* allocation point for strong buckets */
+static mps_ap_t weak_buckets_ap; /* allocation point for weak buckets */
@@ -515,16 +515,16 @@ allocated in a non-moving pool such as AWL.
replacing it with a null pointer when it is fixed by the object
format’s scan method. So the scan method for the buckets is
going to have the following structure. (See below for the actual code.)
-static mps_res_t buckets_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
+static mps_res_t buckets_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
{
MPS_SCAN_BEGIN(ss) {
while (base < limit) {
- buckets_t buckets = base;
+ buckets_t buckets = base;
size_t length = buckets->length;
for (i = 0; i < length; ++i) {
- mps_addr_t p = buckets->bucket[i];
+ mps_addr_t p = buckets->bucket[i];
if (MPS_FIX1(ss, p)) {
- mps_res_t res = MPS_FIX2(ss, &p);
+ mps_res_t res = MPS_FIX2(ss, &p);
if (res != MPS_RES_OK) return res;
if (p == NULL) {
/* TODO: key/value was splatted: splat value/key too */
@@ -556,9 +556,9 @@ and vice versa.
The AWL pool determines an object’s dependent object by calling a
function that you supply when creating the pool. This means that each
object needs to have a reference to its dependent object:
-static mps_addr_t buckets_find_dependent(mps_addr_t addr)
+static mps_addr_t buckets_find_dependent(mps_addr_t addr)
{
- buckets_t buckets = addr;
+ buckets_t buckets = addr;
return buckets->dependent;
}
@@ -580,25 +580,25 @@ See the <
size_t length; /* number of buckets (tagged) */
size_t used; /* number of buckets in use (tagged) */
size_t deleted; /* number of deleted buckets (tagged) */
- obj_t bucket[1]; /* hash buckets */
-} buckets_s, *buckets_t;
+ obj_t bucket[1]; /* hash buckets */
+} buckets_s, *buckets_t;
Now the full details of the scan method can be given, with the revised
code highlighted:
-static mps_res_t buckets_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
+static mps_res_t buckets_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
{
MPS_SCAN_BEGIN(ss) {
while (base < limit) {
- buckets_t buckets = base;
+ buckets_t buckets = base;
size_t i, length = UNTAG_SIZE(buckets->length);
FIX(buckets->dependent);
if(buckets->dependent != NULL)
assert(buckets->dependent->length == buckets->length);
for (i = 0; i < length; ++i) {
- mps_addr_t p = buckets->bucket[i];
+ mps_addr_t p = buckets->bucket[i];
if (MPS_FIX1(ss, p)) {
- mps_res_t res = MPS_FIX2(ss, &p);
+ mps_res_t res = MPS_FIX2(ss, &p);
if (res != MPS_RES_OK) return res;
if (p == NULL) {
/* key/value was splatted: splat value/key too */
@@ -649,9 +649,9 @@ used”, and NULL
The skip method is straightforward:
-static mps_addr_t buckets_skip(mps_addr_t base)
+static mps_addr_t buckets_skip(mps_addr_t base)
{
- buckets_t buckets = base;
+ buckets_t buckets = base;
size_t length = UNTAG_SIZE(buckets->length);
return (char *)base +
ALIGN(offsetof(buckets_s, bucket) +
@@ -749,15 +749,15 @@ other strong references keeping it alive.
Here’s the new symbol structure:
typedef struct symbol_s {
- type_t type; /* TYPE_SYMBOL */
- obj_t name; /* its name (a string) */
+ type_t type; /* TYPE_SYMBOL */
+ obj_t name; /* its name (a string) */
} symbol_s;
and the new implementation of intern:
-static obj_t intern_string(obj_t name)
+static obj_t intern_string(obj_t name)
{
- obj_t symbol;
+ obj_t symbol;
assert(TYPE(name) == TYPE_STRING);
symbol = table_ref(symtab, name);
if(symbol == NULL) {
@@ -767,7 +767,7 @@ other strong references keeping it alive.
return symbol;
}
-static obj_t intern(char *string)
+static obj_t intern(char *string)
{
return intern_string(make_string(strlen(string), string));
}
@@ -775,7 +775,7 @@ other strong references keeping it alive.
The symbol table now becomes a very simple root, that only has
to be registered once (not every time it is rehashed, as previously):
-mps_addr_t ref;
+mps_addr_t ref;
symtab = NULL;
ref = &symtab;
res = mps_root_create_table(&symtab_root, arena, mps_rank_exact(), 0,
@@ -823,8 +823,8 @@ avoided.
Here the appropriate class is AMCZ (Automatic Mostly-Copying Zero-rank), and the necessary code
changes are straightforward. First, global variables for the new pool
and its allocation point:
-static mps_pool_t leaf_pool; /* pool for leaf objects */
-static mps_ap_t leaf_ap; /* allocation point for leaf objects */
+static mps_pool_t leaf_pool; /* pool for leaf objects */
+static mps_ap_t leaf_ap; /* allocation point for leaf objects */
Second, the leaf objects must be allocated on leaf_ap instead of
@@ -886,7 +886,7 @@ objects that have been left behind.
title="next chapter">ReferenceDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -894,7 +894,7 @@ objects that have been left behind.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -914,7 +914,7 @@ objects that have been left behind.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Guide »
diff --git a/mps/manual/html/guide/build.html b/mps/manual/html/guide/build.html
index 088852866ba..9eea0908491 100644
--- a/mps/manual/html/guide/build.html
+++ b/mps/manual/html/guide/build.html
@@ -8,7 +8,7 @@
- 2. Building the Memory Pool System — Memory Pool System 1.110.0 documentation
+ 2. Building the Memory Pool System — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Guide »
@@ -377,7 +377,7 @@ the command:
title="next chapter">3. Garbage collecting a language with the Memory Pool SystemDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -385,7 +385,7 @@ the command:
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -405,7 +405,7 @@ the command:
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Guide »
diff --git a/mps/manual/html/guide/debug.html b/mps/manual/html/guide/debug.html
index f8b570687f3..7e52d984e9c 100644
--- a/mps/manual/html/guide/debug.html
+++ b/mps/manual/html/guide/debug.html
@@ -8,7 +8,7 @@
- 4. Debugging with the Memory Pool System — Memory Pool System 1.110.0 documentation
+ 4. Debugging with the Memory Pool System — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Guide »
@@ -227,13 +227,13 @@ up to the detection of the error. See 4.3. Example: allocating with wrong size¶
Here’s another kind of mistake: an off-by-one error in make_string
leading to the allocation of string objects with the wrong size:
-static obj_t make_string(size_t length, char *string)
+static obj_t make_string(size_t length, char *string)
{
- obj_t obj;
- mps_addr_t addr;
+ obj_t obj;
+ mps_addr_t addr;
size_t size = ALIGN(offsetof(string_s, string) + length/* oops, forgot: +1 */);
do {
- mps_res_t res = mps_reserve(&addr, obj_ap, size);
+ mps_res_t res = mps_reserve(&addr, obj_ap, size);
if (res != MPS_RES_OK) error("out of memory in make_string");
obj = addr;
obj->string.type = TYPE_STRING;
@@ -389,7 +389,7 @@ see if we can help.
title="next chapter">5. Tuning the Memory Pool System for performanceDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -397,7 +397,7 @@ see if we can help.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -417,7 +417,7 @@ see if we can help.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Guide »
diff --git a/mps/manual/html/guide/index.html b/mps/manual/html/guide/index.html
index eed324c5ae1..b3538698ef5 100644
--- a/mps/manual/html/guide/index.html
+++ b/mps/manual/html/guide/index.html
@@ -8,7 +8,7 @@
- Guide — Memory Pool System 1.110.0 documentation
+ Guide — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -43,7 +43,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -143,7 +143,7 @@
title="next chapter">1. Overview of the Memory Pool SystemDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -151,7 +151,7 @@
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -171,7 +171,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -90,7 +90,7 @@ pointers to strings.
A Scheme object (whose type is not necessarily known) is represented by
an obj_t, which is a pointer to a union of every type in the
language:
-typedef union obj_u *obj_t;
+typedef union obj_u *obj_t;
typedef union obj_u {
type_s type;
pair_s pair;
@@ -113,8 +113,8 @@ specifying the type of the object (pair_s defined as
follows:
typedef struct pair_s {
- type_t type; /* TYPE_PAIR */
- obj_t car, cdr; /* first and second projections */
+ type_t type; /* TYPE_PAIR */
+ obj_t car, cdr; /* first and second projections */
} pair_s;
@@ -122,7 +122,7 @@ follows:
operate on objects generically, testing TYPE(obj) as necessary
(which is a macro for obj->type.type). For example, the
print() function is implemented like this:
-static void print(obj_t obj, unsigned depth, FILE *stream)
+static void print(obj_t obj, unsigned depth, FILE *stream)
{
switch (TYPE(obj)) {
case TYPE_INTEGER:
@@ -140,9 +140,9 @@ operate on objects generically, testing
Each constructor allocates memory for the new object by calling
malloc. For example, make_pair is the constructor for pairs:
-static obj_t make_pair(obj_t car, obj_t cdr)
+static obj_t make_pair(obj_t car, obj_t cdr)
{
- obj_t obj = (obj_t)malloc(sizeof(pair_s));
+ obj_t obj = (obj_t)malloc(sizeof(pair_s));
if (obj == NULL) error("out of memory");
obj->pair.type = TYPE_PAIR;
CAR(obj) = car;
@@ -181,7 +181,7 @@ general-purpose programs you’ll want to use the virtual memory arena.
There’s only one arena, and many MPS functions take an arena as an
argument, so it makes sense for the arena to be a global variable
rather than having to pass it around everywhere:
-static mps_arena_t arena;
+static mps_arena_t arena;
Create an arena by calling mps_arena_create(). This function
@@ -193,7 +193,7 @@ its address space, the less efficient garbage collection will become.
The MPS works best if you reserve an address space that is several times
larger than your peak memory usage.
Let’s reserve 32 megabytes:
-mps_res_t res;
+mps_res_t res;
res = mps_arena_create(&arena,
mps_arena_class_vm(),
(size_t)(32 * 1024 * 1024));
@@ -266,7 +266,7 @@ code for creating the object format for the toy Scheme interpreter:
obj_pad,
};
-mps_fmt_t obj_fmt;
+mps_fmt_t obj_fmt;
res = mps_fmt_create_A(&obj_fmt, arena, &obj_fmt_s);
if (res != MPS_RES_OK) error("Couldn't create obj format");
@@ -324,11 +324,11 @@ which the scan method was called. The scan method is called to
discover references and so determine which objects are alive and which are dead, and also to update references
after objects have been moved.
Here’s the scan method for the toy Scheme interpreter:
-static mps_res_t obj_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
+static mps_res_t obj_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
{
MPS_SCAN_BEGIN(ss) {
while (base < limit) {
- obj_t obj = base;
+ obj_t obj = base;
switch (TYPE(obj)) {
case TYPE_PAIR:
FIX(CAR(obj));
@@ -406,9 +406,9 @@ soon as practicable.
mps_fmt_skip_t. It is called by the MPS to skip over an
object belonging to the format, and also to determine its size.
Here’s the skip method for the toy Scheme interpreter:
-static mps_addr_t obj_skip(mps_addr_t base)
+static mps_addr_t obj_skip(mps_addr_t base)
{
- obj_t obj = base;
+ obj_t obj = base;
switch (TYPE(obj)) {
case TYPE_PAIR:
base = (char *)base + ALIGN(sizeof(pair_s));
@@ -461,24 +461,24 @@ objects might be as small as two words (for example, integers).
The first type is suitable for forwarding objects of three words or
longer:
typedef struct fwd_s {
- type_t type; /* TYPE_FWD */
- obj_t fwd; /* forwarded object */
+ type_t type; /* TYPE_FWD */
+ obj_t fwd; /* forwarded object */
size_t size; /* total size of this object */
} fwd_s;
while the second type is suitable for forwarding objects of two words:
typedef struct fwd2_s {
- type_t type; /* TYPE_FWD2 */
- obj_t fwd; /* forwarded object */
+ type_t type; /* TYPE_FWD2 */
+ obj_t fwd; /* forwarded object */
} fwd2_s;
Here’s the forward method for the toy Scheme interpreter:
-static void obj_fwd(mps_addr_t old, mps_addr_t new)
+static void obj_fwd(mps_addr_t old, mps_addr_t new)
{
- obj_t obj = old;
- mps_addr_t limit = obj_skip(old);
+ obj_t obj = old;
+ mps_addr_t limit = obj_skip(old);
size_t size = (char *)limit - (char *)old;
assert(size >= ALIGN_UP(sizeof(fwd2_s)));
if (size == ALIGN_UP(sizeof(fwd2_s))) {
@@ -537,9 +537,9 @@ scanning them could be avoided.
object is a forwarding object, and if it is, to determine the
location where that object was moved.
Here’s the is-forwarded method for the toy Scheme interpreter:
-static mps_addr_t obj_isfwd(mps_addr_t addr)
+static mps_addr_t obj_isfwd(mps_addr_t addr)
{
- obj_t obj = addr;
+ obj_t obj = addr;
switch (TYPE(obj)) {
case TYPE_FWD2:
return obj->fwd2.fwd;
@@ -573,7 +573,7 @@ word. As with forwarding objects, this can be solved by having two
types of padding object. The first type is suitable for padding
objects of two words or longer:
typedef struct pad_s {
- type_t type; /* TYPE_PAD */
+ type_t type; /* TYPE_PAD */
size_t size; /* total size of this object */
} pad_s;
@@ -581,14 +581,14 @@ objects of two words or longer:
while the second type is suitable for padding objects consisting of a
single word:
typedef struct pad1_s {
- type_t type; /* TYPE_PAD1 */
+ type_t type; /* TYPE_PAD1 */
} pad1_s;
Here’s the padding method:
-static void obj_pad(mps_addr_t addr, size_t size)
+static void obj_pad(mps_addr_t addr, size_t size)
{
- obj_t obj = addr;
+ obj_t obj = addr;
assert(size >= ALIGN(sizeof(pad1_s)));
if (size == ALIGN(sizeof(pad1_s))) {
TYPE(obj) = TYPE_PAD1;
@@ -664,7 +664,7 @@ the pool creation code. First, the header for the AMC pool class:
Second, the object format:
struct mps_fmt_A_s obj_fmt_s = {
- sizeof(mps_word_t),
+ sizeof(mps_word_t),
obj_scan,
obj_skip,
NULL,
@@ -673,7 +673,7 @@ the pool creation code. First, the header for the AMC pool class:
obj_pad,
};
-mps_fmt_t obj_fmt;
+mps_fmt_t obj_fmt;
res = mps_fmt_create_A(&obj_fmt, arena, &obj_fmt_s);
if (res != MPS_RES_OK) error("Couldn't create obj format");
@@ -684,7 +684,7 @@ the pool creation code. First, the header for the AMC pool class:
{ 170, 0.45 },
};
-mps_chain_t obj_chain;
+mps_chain_t obj_chain;
res = mps_chain_create(&obj_chain,
arena,
LENGTH(obj_gen_params),
@@ -693,7 +693,7 @@ the pool creation code. First, the header for the AMC pool class:
And finally the pool:
-mps_pool_t obj_pool;
+mps_pool_t obj_pool;
res = mps_pool_create(&obj_pool,
arena,
mps_class_amc(),
@@ -721,15 +721,15 @@ memory allocated by other memory managers. For these roots you must
describe to the MPS how to scan them for references.
The toy Scheme interpreter has a number of static variables that point
to heap-allocated objects. First, the special objects, including:
-static obj_t obj_empty; /* (), the empty list */
+static obj_t obj_empty; /* (), the empty list */
Second, the predefined symbols, including:
-static obj_t obj_quote; /* "quote" symbol */
+static obj_t obj_quote; /* "quote" symbol */
And third, the global symbol table:
-static obj_t *symtab;
+static obj_t *symtab;
static size_t symtab_size;
@@ -740,7 +740,7 @@ described above.
In the case of the toy Scheme interpreter, the root scanning function
for the special objects and the predefined symbols could be written
like this:
-static mps_res_t globals_scan(mps_ss_t ss, void *p, size_t s)
+static mps_res_t globals_scan(mps_ss_t ss, void *p, size_t s)
{
MPS_SCAN_BEGIN(ss) {
FIX(obj_empty);
@@ -755,7 +755,7 @@ like this:
but in fact the interpreter already has tables of these global
objects, so it’s simpler and more extensible for the root scanning
function to iterate over them:
-static mps_res_t globals_scan(mps_ss_t ss, void *p, size_t s)
+static mps_res_t globals_scan(mps_ss_t ss, void *p, size_t s)
{
MPS_SCAN_BEGIN(ss) {
size_t i;
@@ -770,7 +770,7 @@ function to iterate over them:
Each root scanning function must be registered with the MPS by calling
mps_root_create(), like this:
-mps_root_t globals_root;
+mps_root_t globals_root;
res = mps_root_create(&globals_root, arena, mps_rank_exact(), 0,
globals_scan, NULL, 0);
if (res != MPS_RES_OK) error("Couldn't register globals root");
@@ -808,11 +808,11 @@ after the rehash has completed, de-registering the old root by calling
the global symbol table, but the case of a table of references is
sufficiently common that the MPS provides a convenient (and optimized)
function, mps_root_create_table(), for registering it:
-static mps_root_t symtab_root;
+static mps_root_t symtab_root;
/* ... */
-mps_addr_t ref = symtab;
+mps_addr_t ref = symtab;
res = mps_root_create_table(&symtab_root, arena, mps_rank_exact(), 0,
ref, symtab_size);
if (res != MPS_RES_OK) error("Couldn't register new symtab root");
@@ -821,15 +821,15 @@ function, The root must be re-registered whenever the global symbol table
changes size:
static void rehash(void) {
- obj_t *old_symtab = symtab;
+ obj_t *old_symtab = symtab;
unsigned old_symtab_size = symtab_size;
- mps_root_t old_symtab_root = symtab_root;
+ mps_root_t old_symtab_root = symtab_root;
unsigned i;
- mps_addr_t ref;
- mps_res_t res;
+ mps_addr_t ref;
+ mps_res_t res;
symtab_size *= 2;
- symtab = malloc(sizeof(obj_t) * symtab_size);
+ symtab = malloc(sizeof(obj_t) * symtab_size);
if (symtab == NULL) error("out of memory");
/* Initialize the new table to NULL so that "find" will work. */
@@ -843,7 +843,7 @@ changes size:
for (i = 0; i < old_symtab_size; ++i)
if (old_symtab[i] != NULL) {
- obj_t *where = find(old_symtab[i]->symbol.string);
+ obj_t *where = find(old_symtab[i]->symbol.string);
assert(where != NULL); /* new table shouldn't be full */
assert(*where == NULL); /* shouldn't be in new table */
*where = old_symtab[i];
@@ -906,7 +906,7 @@ programs written in arena by calling
mps_thread_reg():
-mps_thr_t thread;
+mps_thr_t thread;
res = mps_thread_reg(&thread, arena);
if (res != MPS_RES_OK) error("Couldn't register thread");
@@ -915,7 +915,7 @@ programs written in mps_root_create_reg() and passing
mps_stack_scan_ambig():
void *marker = ▮
-mps_root_t reg_root;
+mps_root_t reg_root;
res = mps_root_create_reg(®_root,
arena,
mps_rank_ambig(),
@@ -946,11 +946,11 @@ to start allocating.
Manual pools typically support
malloc-like allocation using the function
mps_alloc(). But automatic pools cannot, because of the following problem:
-static obj_t make_pair(obj_t car, obj_t cdr)
+static obj_t make_pair(obj_t car, obj_t cdr)
{
- obj_t obj;
- mps_addr_t addr;
- mps_res_t res;
+ obj_t obj;
+ mps_addr_t addr;
+ mps_res_t res;
res = mps_alloc(&addr, pool, sizeof(pair_s));
if (res != MPS_RES_OK) error("out of memory in make_pair");
obj = addr;
@@ -973,7 +973,7 @@ may abort.
Allocation point protocol. This needs an additional
structure, an allocation point, to be attached to the pool by
calling mps_ap_create():
-static mps_ap_t obj_ap;
+static mps_ap_t obj_ap;
/* ... */
@@ -982,13 +982,13 @@ calling static obj_t make_pair(obj_t car, obj_t cdr)
+static obj_t make_pair(obj_t car, obj_t cdr)
{
- obj_t obj;
- mps_addr_t addr;
+ obj_t obj;
+ mps_addr_t addr;
size_t size = ALIGN(sizeof(pair_s));
do {
- mps_res_t res = mps_reserve(&addr, obj_ap, size);
+ mps_res_t res = mps_reserve(&addr, obj_ap, size);
if (res != MPS_RES_OK) error("out of memory in make_pair");
obj = addr;
obj->pair.type = TYPE_PAIR;
@@ -1150,7 +1150,7 @@ then you’ll be more interested in the chapter 4. Debugging with the Memory Pool SystemDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -1158,7 +1158,7 @@ then you’ll be more interested in the chapter
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -1178,7 +1178,7 @@ then you’ll be more interested in the chapter
previous |
-
Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Guide »
diff --git a/mps/manual/html/guide/overview.html b/mps/manual/html/guide/overview.html
index c8686f9d32e..5a20b0269de 100644
--- a/mps/manual/html/guide/overview.html
+++ b/mps/manual/html/guide/overview.html
@@ -8,7 +8,7 @@
- 1. Overview of the Memory Pool System — Memory Pool System 1.110.0 documentation
+ 1. Overview of the Memory Pool System — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Guide »
@@ -179,7 +179,7 @@ to learn how to integrate it with the Memory Pool System. See
title="next chapter">2. Building the Memory Pool SystemDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -187,7 +187,7 @@ to learn how to integrate it with the Memory Pool System. See
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -207,7 +207,7 @@ to learn how to integrate it with the Memory Pool System. See
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Guide »
diff --git a/mps/manual/html/guide/perf.html b/mps/manual/html/guide/perf.html
index c95c6eb271b..71ea4bde8af 100644
--- a/mps/manual/html/guide/perf.html
+++ b/mps/manual/html/guide/perf.html
@@ -8,7 +8,7 @@
- 5. Tuning the Memory Pool System for performance — Memory Pool System 1.110.0 documentation
+ 5. Tuning the Memory Pool System for performance — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Guide »
@@ -407,7 +407,7 @@ very large address space is ruinous to performance.
title="next chapter">6. Advanced topicsDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -415,7 +415,7 @@ very large address space is ruinous to performance.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -435,7 +435,7 @@ very large address space is ruinous to performance.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Guide »
diff --git a/mps/manual/html/index.html b/mps/manual/html/index.html
index 64218494bcd..cff70dc3459 100644
--- a/mps/manual/html/index.html
+++ b/mps/manual/html/index.html
@@ -8,7 +8,7 @@
- Memory Pool System — Memory Pool System 1.110.0 documentation
+ Memory Pool System — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -39,7 +39,7 @@
next |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -188,7 +188,7 @@
title="next chapter">GuideDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -196,7 +196,7 @@
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -213,7 +213,7 @@
next |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -222,7 +222,7 @@ manager that can respond dynamically to changing requirements.
title="next chapter">3. Recycling techniquesDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -230,7 +230,7 @@ manager that can respond dynamically to changing requirements.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -250,7 +250,7 @@ manager that can respond dynamically to changing requirements.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Introduction to memory management »
diff --git a/mps/manual/html/mmref/begin.html b/mps/manual/html/mmref/begin.html
index 7eab925c3df..01c0ffcd970 100644
--- a/mps/manual/html/mmref/begin.html
+++ b/mps/manual/html/mmref/begin.html
@@ -8,7 +8,7 @@
- 1. Overview — Memory Pool System 1.110.0 documentation
+ 1. Overview — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Introduction to memory management »
@@ -309,7 +309,7 @@ handbook covering all aspects of garbage collection.
title="next chapter">2. Allocation techniquesDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -317,7 +317,7 @@ handbook covering all aspects of garbage collection.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -337,7 +337,7 @@ handbook covering all aspects of garbage collection.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Introduction to memory management »
diff --git a/mps/manual/html/mmref/bib.html b/mps/manual/html/mmref/bib.html
index 94cefb372e9..a521d287424 100644
--- a/mps/manual/html/mmref/bib.html
+++ b/mps/manual/html/mmref/bib.html
@@ -8,7 +8,7 @@
- Bibliography — Memory Pool System 1.110.0 documentation
+ Bibliography — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -43,7 +43,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -437,7 +437,7 @@
title="next chapter">AcknowledgementsDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -445,7 +445,7 @@
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -465,7 +465,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -129,7 +129,7 @@ help of:
title="next chapter">Memory Management GlossaryDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -137,7 +137,7 @@ help of:
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -157,7 +157,7 @@ help of:
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -611,7 +611,7 @@ that poor BibliographyDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -619,7 +619,7 @@ that poor
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -639,7 +639,7 @@ that poor
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Introduction to memory management »
diff --git a/mps/manual/html/mmref/index.html b/mps/manual/html/mmref/index.html
index c8fd56cf9b8..b6876bb11eb 100644
--- a/mps/manual/html/mmref/index.html
+++ b/mps/manual/html/mmref/index.html
@@ -8,7 +8,7 @@
- Introduction to memory management — Memory Pool System 1.110.0 documentation
+ Introduction to memory management — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -43,7 +43,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -106,7 +106,7 @@
title="next chapter">1. OverviewDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -114,7 +114,7 @@
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -134,7 +134,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -679,7 +679,7 @@ developed or implemented for Smalltalk.
title="next chapter">5. Frequently Asked QuestionsDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -687,7 +687,7 @@ developed or implemented for Smalltalk.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -707,7 +707,7 @@ developed or implemented for Smalltalk.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Introduction to memory management »
diff --git a/mps/manual/html/mmref/recycle.html b/mps/manual/html/mmref/recycle.html
index 290c44ba981..640d100fff7 100644
--- a/mps/manual/html/mmref/recycle.html
+++ b/mps/manual/html/mmref/recycle.html
@@ -8,7 +8,7 @@
- 3. Recycling techniques — Memory Pool System 1.110.0 documentation
+ 3. Recycling techniques — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Introduction to memory management »
@@ -292,7 +292,7 @@ references are deleted.
title="next chapter">4. Memory management in various languagesDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -300,7 +300,7 @@ references are deleted.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -320,7 +320,7 @@ references are deleted.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Introduction to memory management »
diff --git a/mps/manual/html/objects.inv b/mps/manual/html/objects.inv
index f53c5242384..b079c65a7e0 100644
Binary files a/mps/manual/html/objects.inv and b/mps/manual/html/objects.inv differ
diff --git a/mps/manual/html/pool/amc.html b/mps/manual/html/pool/amc.html
index 5a15ca77f90..d5b53a5c9f2 100644
--- a/mps/manual/html/pool/amc.html
+++ b/mps/manual/html/pool/amc.html
@@ -8,7 +8,7 @@
- 4. AMC (Automatic Mostly-Copying) — Memory Pool System 1.110.0 documentation
+ 4. AMC (Automatic Mostly-Copying) — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
@@ -117,10 +117,10 @@ belong to an object format of variant auto-header).
Mostly-Copying) pool.
When creating an AMC pool, mps_pool_create() takes two
extra arguments:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_amc(),
- mps_fmt_t fmt,
- mps_chain_t chain)
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_amc(),
+ mps_fmt_t fmt,
+ mps_chain_t chain)
fmt specifies the object format for the objects
@@ -216,7 +216,7 @@ their contents;
title="next chapter">5. AMCZ (Automatic Mostly-Copying Zero-rank)
Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -224,7 +224,7 @@ their contents;
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -244,7 +244,7 @@ their contents;
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
diff --git a/mps/manual/html/pool/amcz.html b/mps/manual/html/pool/amcz.html
index 3aa9e3f1a26..9780b1c4bba 100644
--- a/mps/manual/html/pool/amcz.html
+++ b/mps/manual/html/pool/amcz.html
@@ -8,7 +8,7 @@
- 5. AMCZ (Automatic Mostly-Copying Zero-rank) — Memory Pool System 1.110.0 documentation
+ 5. AMCZ (Automatic Mostly-Copying Zero-rank) — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
@@ -89,10 +89,10 @@ method.
Mostly-Copying Zero-rank) pool.
When creating an AMCZ pool, mps_pool_create() takes two
extra arguments:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_amcz(),
- mps_fmt_t fmt,
- mps_chain_t chain)
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_amcz(),
+ mps_fmt_t fmt,
+ mps_chain_t chain)
fmt specifies the object format for the objects
@@ -131,7 +131,7 @@ and a 6. AMS (Automatic Mark and Sweep)
Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -139,7 +139,7 @@ and a
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -159,7 +159,7 @@ and a
previous |
-
Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
diff --git a/mps/manual/html/pool/ams.html b/mps/manual/html/pool/ams.html
index d1a39910622..7ef790a26d5 100644
--- a/mps/manual/html/pool/ams.html
+++ b/mps/manual/html/pool/ams.html
@@ -8,7 +8,7 @@
- 6. AMS (Automatic Mark and Sweep) — Memory Pool System 1.110.0 documentation
+ 6. AMS (Automatic Mark and Sweep) — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
@@ -120,10 +120,10 @@ of this is that the pool’s pool.
When creating an AMS pool, mps_pool_create() takes two
extra arguments:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_ams(),
- mps_fmt_t fmt,
- mps_chain_t chain)
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_ams(),
+ mps_fmt_t fmt,
+ mps_chain_t chain)
fmt specifies the object format for the objects
@@ -140,11 +140,11 @@ must have a single generation.
class.
When creating a debugging AMS pool, mps_pool_create()
takes three extra arguments:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_ams_debug(),
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_ams_debug(),
mps_debug_option_s debug_option,
- mps_fmt_t fmt,
- mps_chain_t chain)
+ mps_fmt_t fmt,
+ mps_chain_t chain)
debug_option specifies the debugging options. See
@@ -181,7 +181,7 @@ takes three extra arguments:
title="next chapter">7. AWL (Automatic Weak Linked)Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -189,7 +189,7 @@ takes three extra arguments:
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -209,7 +209,7 @@ takes three extra arguments:
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
diff --git a/mps/manual/html/pool/awl.html b/mps/manual/html/pool/awl.html
index 3e10a6a4030..2df8f0d2e77 100644
--- a/mps/manual/html/pool/awl.html
+++ b/mps/manual/html/pool/awl.html
@@ -8,7 +8,7 @@
- 7. AWL (Automatic Weak Linked) — Memory Pool System 1.110.0 documentation
+ 7. AWL (Automatic Weak Linked) — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
@@ -93,8 +93,8 @@ takes one additional parameter, a mps_rank_exact() (to allocate ordinary objects containing
exact references), or mps_rank_weak() (to allocate
objects that contain weak references). For example:
-mps_ap_t ap;
-mps_res_t res;
+mps_ap_t ap;
+mps_res_t res;
res = mps_ap_create(&ap, pool, mps_rank_weak());
if (res != MPS_RES_OK) error("can't create allocation point");
@@ -169,31 +169,31 @@ values object, and vice versa (if necessary). The scan method looks
out for the splatting of a reference, and when this is detected, it
splats the corresponding reference in the dependent object.
For example:
-obj_t obj_deleted; /* deleted entry in hash table */
+obj_t obj_deleted; /* deleted entry in hash table */
typedef struct weak_array_s {
struct weak_array_s *dependent;
size_t length; /* tagged as "length * 2 + 1" */
- obj_t slot[1];
-} weak_array_s, *weak_array_t;
+ obj_t slot[1];
+} weak_array_s, *weak_array_t;
typedef weak_table_s {
type_s type; /* TYPE_WEAK_TABLE */
- weak_array_t keys, values;
-} weak_table_s, *weak_table_t;
+ weak_array_t keys, values;
+} weak_table_s, *weak_table_t;
-mps_addr_t weak_array_find_dependent(mps_addr_t addr)
+mps_addr_t weak_array_find_dependent(mps_addr_t addr)
{
- weak_array_t a = addr;
+ weak_array_t a = addr;
return a->dependent;
}
-mps_res_t weak_array_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
+mps_res_t weak_array_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
{
MPS_SCAN_BEGIN(ss) {
while (base < limit) {
- mps_addr_t p;
- weak_array_t a = base;
+ mps_addr_t p;
+ weak_array_t a = base;
size_t i, length = a->length >> 1; /* untag */
p = a->dependent;
MPS_FIX12(ss, &p);
@@ -201,7 +201,7 @@ splats the corresponding reference in the dependent object.
for (i = 0; i < length; ++i) {
p = a->slot[i];
if (MPS_FIX1(ss, p)) {
- mps_res_t res = MPS_FIX2(ss, &p);
+ mps_res_t res = MPS_FIX2(ss, &p);
if (res != MPS_RES_OK) return res;
if (p == NULL && a->dependent) {
/* key/value was splatted: splat value/key too */
@@ -313,10 +313,10 @@ example above.
pool.
When creating an AWL pool, mps_pool_create() takes two
extra arguments:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_awl(),
- mps_fmt_t fmt,
- mps_awl_find_dependent_t find_dependent)
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_awl(),
+ mps_fmt_t fmt,
+ mps_awl_find_dependent_t find_dependent)
fmt specifies the object format for the objects
@@ -327,8 +327,8 @@ method and a dependent object for an object in the pool.
When creating an allocation point on an AWL pool,
mps_ap_create() takes one extra argument:
-mps_res_t mps_ap_create(mps_ap_t *ap_o, mps_pool_t pool,
- mps_rank_t rank)
+mps_res_t mps_ap_create(mps_ap_t *ap_o, mps_pool_t pool,
+ mps_rank_t rank)
rank specifies the rank of references in objects
@@ -383,7 +383,7 @@ if it is, then it must be in a 8. LO (Leaf Object)
Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -391,7 +391,7 @@ if it is, then it must be in a
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -411,7 +411,7 @@ if it is, then it must be in a
previous |
-
Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
diff --git a/mps/manual/html/pool/index.html b/mps/manual/html/pool/index.html
index b9cb583109f..e4ab514e965 100644
--- a/mps/manual/html/pool/index.html
+++ b/mps/manual/html/pool/index.html
@@ -8,7 +8,7 @@
- Pool reference — Memory Pool System 1.110.0 documentation
+ Pool reference — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -43,7 +43,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -138,7 +138,7 @@
title="next chapter">1. Choosing a pool classDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -146,7 +146,7 @@
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -166,7 +166,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -645,7 +645,7 @@ yourself, we
title="next chapter">4. AMC (Automatic Mostly-Copying)Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -653,7 +653,7 @@ yourself, we
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -673,7 +673,7 @@ yourself, we
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
diff --git a/mps/manual/html/pool/lo.html b/mps/manual/html/pool/lo.html
index bc48c35cff1..48d83ddbd40 100644
--- a/mps/manual/html/pool/lo.html
+++ b/mps/manual/html/pool/lo.html
@@ -8,7 +8,7 @@
- 8. LO (Leaf Object) — Memory Pool System 1.110.0 documentation
+ 8. LO (Leaf Object) — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
@@ -121,9 +121,9 @@ does not need a pool.
When creating an LO pool, mps_pool_create() takes one
extra argument:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_lo(),
- mps_fmt_t fmt)
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_lo(),
+ mps_fmt_t fmt)
fmt specifies the object format for the objects
@@ -160,7 +160,7 @@ method.
title="next chapter">9. MFS (Manual Fixed Small)Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -168,7 +168,7 @@ method.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -188,7 +188,7 @@ method.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
diff --git a/mps/manual/html/pool/mfs.html b/mps/manual/html/pool/mfs.html
index 6fd7bb61a66..822b00bb104 100644
--- a/mps/manual/html/pool/mfs.html
+++ b/mps/manual/html/pool/mfs.html
@@ -8,7 +8,7 @@
- 9. MFS (Manual Fixed Small) — Memory Pool System 1.110.0 documentation
+ 9. MFS (Manual Fixed Small) — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
@@ -102,10 +102,10 @@ managed pools (unless these are registered as pool.
When creating an MFS pool, mps_pool_create() takes two
extra arguments:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_mfs(),
- mps_size_t extend_size,
- mps_size_t unit_size)
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_mfs(),
+ mps_size_t extend_size,
+ mps_size_t unit_size)
extend_size is the size of segment that the pool will
@@ -146,7 +146,7 @@ from this pool, in 10. MV (Manual Variable)
Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -154,7 +154,7 @@ from this pool, in
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -174,7 +174,7 @@ from this pool, in
previous |
-
Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
diff --git a/mps/manual/html/pool/mv.html b/mps/manual/html/pool/mv.html
index effe7235f07..6fe20766412 100644
--- a/mps/manual/html/pool/mv.html
+++ b/mps/manual/html/pool/mv.html
@@ -8,7 +8,7 @@
- 10. MV (Manual Variable) — Memory Pool System 1.110.0 documentation
+ 10. MV (Manual Variable) — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
@@ -99,11 +99,11 @@ managed pools (unless these are registered as pool.
When creating an MV pool, mps_pool_create() takes three
extra arguments:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_mv(),
- mps_size_t extend_size,
- mps_size_t average_size,
- mps_size_t maximum_size)
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_mv(),
+ mps_size_t extend_size,
+ mps_size_t average_size,
+ mps_size_t maximum_size)
extend_size is the size of segment that the pool will
@@ -121,12 +121,12 @@ these are wrong.
class.
When creating a debugging MV pool, mps_pool_create()
takes four extra arguments:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_mv_debug(),
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_mv_debug(),
mps_debug_option_s debug_option,
- mps_size_t extend_size,
- mps_size_t average_size,
- mps_size_t maximum_size)
+ mps_size_t extend_size,
+ mps_size_t average_size,
+ mps_size_t maximum_size)
debug_option specifies the debugging options. See
@@ -188,7 +188,7 @@ is the sum of allocated space and free space.
title="next chapter">11. MVFF (Manual Variable First Fit)Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -196,7 +196,7 @@ is the sum of allocated space and free space.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -216,7 +216,7 @@ is the sum of allocated space and free space.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
diff --git a/mps/manual/html/pool/mvff.html b/mps/manual/html/pool/mvff.html
index c1bba4e91a1..6515ee955d9 100644
--- a/mps/manual/html/pool/mvff.html
+++ b/mps/manual/html/pool/mvff.html
@@ -8,7 +8,7 @@
- 11. MVFF (Manual Variable First Fit) — Memory Pool System 1.110.0 documentation
+ 11. MVFF (Manual Variable First Fit) — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
@@ -128,14 +128,14 @@ smaller than the pool.
When creating an MVFF pool, mps_pool_create() takes six
extra arguments:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_mvff(),
- mps_size_t extend_size,
- mps_size_t average_size,
- mps_align_t alignment,
- mps_bool_t slot_high,
- mps_bool_t arena_high,
- mps_bool_t first_fit)
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_mvff(),
+ mps_size_t extend_size,
+ mps_size_t average_size,
+ mps_align_t alignment,
+ mps_bool_t slot_high,
+ mps_bool_t arena_high,
+ mps_bool_t first_fit)
extend_size is the size of segment that the pool will
@@ -161,15 +161,15 @@ are acquired at high addresses; if false, at low addresses.
class.
When creating a debugging MVFF pool, mps_pool_create()
takes seven extra arguments:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_mvff_debug(),
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_mvff_debug(),
mps_debug_option_s debug_option,
- mps_size_t extend_size,
- mps_size_t average_size,
- mps_align_t alignment,
- mps_bool_t slot_high,
- mps_bool_t arena_high,
- mps_bool_t first_fit)
+ mps_size_t extend_size,
+ mps_size_t average_size,
+ mps_align_t alignment,
+ mps_bool_t slot_high,
+ mps_bool_t arena_high,
+ mps_bool_t first_fit)
debug_option specifies the debugging options. See
@@ -230,7 +230,7 @@ is the sum of allocated space and free space.
title="next chapter">12. MVT (Manual Variable Temporal)Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -238,7 +238,7 @@ is the sum of allocated space and free space.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -258,7 +258,7 @@ is the sum of allocated space and free space.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
diff --git a/mps/manual/html/pool/mvt.html b/mps/manual/html/pool/mvt.html
index 67e0bdc2f8c..290483047f4 100644
--- a/mps/manual/html/pool/mvt.html
+++ b/mps/manual/html/pool/mvt.html
@@ -8,7 +8,7 @@
- 12. MVT (Manual Variable Temporal) — Memory Pool System 1.110.0 documentation
+ 12. MVT (Manual Variable Temporal) — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
@@ -124,13 +124,13 @@ managed pools (unless these are registered as pool.
When creating an MVT pool, mps_pool_create() takes five
extra arguments:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_mvt(),
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_mvt(),
size_t minimum_size,
size_t mean_size,
size_t maximum_size,
- mps_count_t reserve_depth,
- mps_count_t fragmentation_limit)
+ mps_count_t reserve_depth,
+ mps_count_t fragmentation_limit)
minimum_size, mean_size, and maximum_size are the
@@ -236,7 +236,7 @@ is the sum of allocated space and free space.
title="next chapter">13. SNC (Stack No Checking)Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -244,7 +244,7 @@ is the sum of allocated space and free space.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -264,7 +264,7 @@ is the sum of allocated space and free space.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
diff --git a/mps/manual/html/pool/snc.html b/mps/manual/html/pool/snc.html
index 0bf26849aba..f3edda27d3d 100644
--- a/mps/manual/html/pool/snc.html
+++ b/mps/manual/html/pool/snc.html
@@ -8,7 +8,7 @@
- 13. SNC (Stack No Checking) — Memory Pool System 1.110.0 documentation
+ 13. SNC (Stack No Checking) — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
@@ -114,9 +114,9 @@ a format of variant auto-header.
pool.
When creating an SNC pool, mps_pool_create() takes one
extra argument:
-mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
- mps_class_t mps_class_snc(),
- mps_fmt_t fmt)
+mps_res_t mps_pool_create(mps_pool_t *pool_o, mps_arena_t arena,
+ mps_class_t mps_class_snc(),
+ mps_fmt_t fmt)
fmt specifies the object format for the objects
@@ -124,8 +124,8 @@ allocated in the pool. The format must provide a , a skip method, and a padding method.
When creating an allocation point on an SNC pool,
mps_ap_create() takes one extra argument:
-mps_res_t mps_ap_create(mps_ap_t *ap_o, mps_pool_t pool,
- mps_rank_t rank)
+mps_res_t mps_ap_create(mps_ap_t *ap_o, mps_pool_t pool,
+ mps_rank_t rank)
rank specifies the rank of references in objects
@@ -162,7 +162,7 @@ allocated on this allocation point. It must be
title="next chapter">Internals
Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -170,7 +170,7 @@ allocated on this allocation point. It must be
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -190,7 +190,7 @@ allocated on this allocation point. It must be
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Pool reference »
diff --git a/mps/manual/html/search.html b/mps/manual/html/search.html
index c55a110d4b1..5dff5398ffb 100644
--- a/mps/manual/html/search.html
+++ b/mps/manual/html/search.html
@@ -8,7 +8,7 @@
- Search — Memory Pool System 1.110.0 documentation
+ Search — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -41,7 +41,7 @@
index
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -84,7 +84,7 @@
Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -92,7 +92,7 @@
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -106,7 +106,7 @@
index
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -231,10 +231,10 @@ may point to the old location of blocks that moved.
The usual implementation of the allocation point protocol in C
is thus:
-mps_addr_t p;
-obj_t obj;
+mps_addr_t p;
+obj_t obj;
do {
- mps_res_t res = mps_reserve(&p, ap, size);
+ mps_res_t res = mps_reserve(&p, ap, size);
if (res != MPS_RES_OK) /* handle the error */;
/* p is now an ambiguous reference to the reserved block */
obj = p;
@@ -338,18 +338,18 @@ may evaluate its arguments multiple times.
5.4. Example: allocating a symbol¶
typedef struct symbol_s {
- type_t type; /* TYPE_SYMBOL */
+ type_t type; /* TYPE_SYMBOL */
size_t length; /* length of symbol string (excl. NUL) */
char string[1]; /* symbol string, NUL terminated */
-} symbol_s, *symbol_t;
+} symbol_s, *symbol_t;
-symbol_t make_symbol(size_t length, char string[])
+symbol_t make_symbol(size_t length, char string[])
{
- symbol_t symbol;
- mps_addr_t addr;
+ symbol_t symbol;
+ mps_addr_t addr;
size_t size = ALIGN(offsetof(symbol_s, string) + length+1);
do {
- mps_res_t res = mps_reserve(&addr, ap, size);
+ mps_res_t res = mps_reserve(&addr, ap, size);
if (res != MPS_RES_OK) error("out of memory in make_symbol");
symbol = addr;
symbol->type = TYPE_SYMBOL;
@@ -414,21 +414,21 @@ choosing. See 5.6. Example: inserting into a doubly linked list¶
This example contains several mistakes. See the highlighted lines:
typedef struct link_s {
- type_t type; /* TYPE_LINK */
+ type_t type; /* TYPE_LINK */
/* all three of these pointers are fixed: */
struct link_s *prev;
struct link_s *next;
- obj_t obj;
-} link_s, *link_t;
+ obj_t obj;
+} link_s, *link_t;
/* insert 'obj' into the doubly-linked list after 'head' */
-link_t insert_link(link_t head, obj_t obj)
+link_t insert_link(link_t head, obj_t obj)
{
- mps_addr_t p;
- link_t link;
+ mps_addr_t p;
+ link_t link;
size_t size = ALIGN(sizeof(link_s));
do {
- mps_res_t res = mps_reserve(&p, ap, size);
+ mps_res_t res = mps_reserve(&p, ap, size);
if (res != MPS_RES_OK) error("out of memory");
link = p;
link->type = TYPE_LINK;
@@ -454,13 +454,13 @@ be deferred until after a successful commit.
scan method, so it must be initialized before the call to commit.
A correct version of insert_link looks like this:
-link_t insert_link(link_t head, obj_t obj)
+link_t insert_link(link_t head, obj_t obj)
{
- mps_addr_t p;
- link_t link;
+ mps_addr_t p;
+ link_t link;
size_t size = ALIGN(sizeof(link_s));
do {
- mps_res_t res = mps_reserve(&p, ap, size);
+ mps_res_t res = mps_reserve(&p, ap, size);
if (res != MPS_RES_OK) error("out of memory");
link = p;
link->type = TYPE_LINK;
@@ -574,9 +574,9 @@ instruction at this point.
The type of the structure used to represent allocation
points:
typedef struct mps_ap_s {
- mps_addr_t init;
- mps_addr_t alloc;
- mps_addr_t limit;
+ mps_addr_t init;
+ mps_addr_t alloc;
+ mps_addr_t limit;
/* ... private fields ... */
} mps_ap_s;
@@ -651,7 +651,7 @@ when the allocation point has insufficient space.
title="next chapter">6. Object formatsDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -659,7 +659,7 @@ when the allocation point has insufficient space.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -679,7 +679,7 @@ when the allocation point has insufficient space.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/arena.html b/mps/manual/html/topic/arena.html
index b2f5acf4f85..c2f30a67512 100644
--- a/mps/manual/html/topic/arena.html
+++ b/mps/manual/html/topic/arena.html
@@ -8,7 +8,7 @@
- 3. Arenas — Memory Pool System 1.110.0 documentation
+ 3. Arenas — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -166,9 +166,9 @@ and . This memory chunk is passed when the arena is created.
When creating a client arena, mps_arena_create() takes two
extra arguments:
-mps_res_t mps_arena_create(mps_arena_t *arena_o,
- mps_arena_class_t mps_arena_class_cl,
- size_t size, mps_addr_t base)
+mps_res_t mps_arena_create(mps_arena_t *arena_o,
+ mps_arena_class_t mps_arena_class_cl,
+ size_t size, mps_addr_t base)
base is the address of the chunk of memory that will
@@ -215,8 +215,8 @@ where to place mps_arena_create()
takes one extra argument:
-mps_res_t mps_arena_create(mps_arena_t *arena_o,
- mps_arena_class_t arena_class_vm(),
+mps_res_t mps_arena_create(mps_arena_t *arena_o,
+ mps_arena_class_t arena_class_vm(),
size_t size)
@@ -797,7 +797,7 @@ cannot be restored more than once.
title="next chapter">4. PoolsDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -805,7 +805,7 @@ cannot be restored more than once.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -825,7 +825,7 @@ cannot be restored more than once.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/cache.html b/mps/manual/html/topic/cache.html
index 327763fa923..6ae1ee1f59d 100644
--- a/mps/manual/html/topic/cache.html
+++ b/mps/manual/html/topic/cache.html
@@ -8,7 +8,7 @@
- 14. Segregated allocation caches — Memory Pool System 1.110.0 documentation
+ 14. Segregated allocation caches — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -70,7 +70,7 @@ small number of relatively long-lived 128-byte objects, and a large
number of relatively short-lived 8-byte objects, we might create a
cache as follows:
mps_sac_class_s classes[3] = {{8, 100, 10}, {128, 8, 1}};
-mps_sac_t sac;
+mps_sac_t sac;
res = mps_sac_create(&sac, pool, sizeof classes / sizeof classes[0], classes);
if (res != MPS_RES_OK)
@@ -83,8 +83,8 @@ otherwise from the pool. Similarly, deallocations through the cache
(using mps_sac_free() or MPS_SAC_FREE_FAST()) return
the block to the appopriate free list for its size. For example:
Foo *foo;
-mps_addr_t p;
-mps_res_t res;
+mps_addr_t p;
+mps_res_t res;
res = mps_sac_alloc(&p, sac, sizeof *foo, false);
if (res != MPS_RES_OK)
@@ -415,7 +415,7 @@ the function.
title="next chapter">15. Allocation patternsDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -423,7 +423,7 @@ the function.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -443,7 +443,7 @@ the function.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/collection.html b/mps/manual/html/topic/collection.html
index 24d81cfbf3b..a2f7d9d3a02 100644
--- a/mps/manual/html/topic/collection.html
+++ b/mps/manual/html/topic/collection.html
@@ -8,7 +8,7 @@
- 10. Garbage collection — Memory Pool System 1.110.0 documentation
+ 10. Garbage collection — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -74,8 +74,8 @@ prepared to start collecting the generation. See
{ 2048, 0.4 },
};
-mps_chain_t chain;
-mps_res_t res;
+mps_chain_t chain;
+mps_res_t res;
res = mps_chain_create(&chain, arena,
sizeof(gen_params) / sizeof(gen_params[0]),
gen_params);
@@ -346,7 +346,7 @@ collection that generated the message.
title="next chapter">11. MessagesDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -354,7 +354,7 @@ collection that generated the message.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -374,7 +374,7 @@ collection that generated the message.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/critical.html b/mps/manual/html/topic/critical.html
index bee90798f0f..a4eb0e900f0 100644
--- a/mps/manual/html/topic/critical.html
+++ b/mps/manual/html/topic/critical.html
@@ -8,7 +8,7 @@
- 3. The critical path — Memory Pool System 1.110.0 documentation
+ 3. The critical path — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Internals »
@@ -164,18 +164,18 @@ a client function of type Object formats.)
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);
@@ -368,7 +368,7 @@ vigilant.
title="next chapter">DesignDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -376,7 +376,7 @@ vigilant.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -396,7 +396,7 @@ vigilant.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Internals »
diff --git a/mps/manual/html/topic/debugging.html b/mps/manual/html/topic/debugging.html
index e0a90558ebb..285fc192145 100644
--- a/mps/manual/html/topic/debugging.html
+++ b/mps/manual/html/topic/debugging.html
@@ -8,7 +8,7 @@
- 17. Debugging pools — Memory Pool System 1.110.0 documentation
+ 17. Debugging pools — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -115,8 +115,8 @@ signal an error or stop if wrongly interpreted as executable code.
(void *)"postpost", 8,
(void *)"freefree", 8,
};
-mps_pool_t pool;
-mps_res_t res;
+mps_pool_t pool;
+mps_res_t res;
res = mps_pool_create(&pool, arena, mps_class_ams_debug(),
&debug_options, &fmt, &chain)
if (res != MPS_RES_OK) error("can't create debug pool");
@@ -195,7 +195,7 @@ non-debugging pools.
title="next chapter">18. TelemetryDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -203,7 +203,7 @@ non-debugging pools.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -223,7 +223,7 @@ non-debugging pools.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/error.html b/mps/manual/html/topic/error.html
index 8b6620ac4b3..d7b79b1afa1 100644
--- a/mps/manual/html/topic/error.html
+++ b/mps/manual/html/topic/error.html
@@ -8,7 +8,7 @@
- 2. Error handing — Memory Pool System 1.110.0 documentation
+ 2. Error handing — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -344,7 +344,7 @@ consequently there are no assertions.
title="next chapter">3. ArenasDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -352,7 +352,7 @@ consequently there are no assertions.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -372,7 +372,7 @@ consequently there are no assertions.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/finalization.html b/mps/manual/html/topic/finalization.html
index 3ef563aa722..f55781aeddd 100644
--- a/mps/manual/html/topic/finalization.html
+++ b/mps/manual/html/topic/finalization.html
@@ -8,7 +8,7 @@
- 12. Finalization — Memory Pool System 1.110.0 documentation
+ 12. Finalization — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -62,7 +62,7 @@ acquisition of an external resource such as a file handle or a network
connection. When the block dies, the corresponding resource must be
released. This procedure is known as finalization.
A block requiring finalization must be registered by calling mps_finalize():
-mps_addr_t ref = block_requiring_finalization;
+mps_addr_t ref = block_requiring_finalization;
mps_finalize(arena, &ref);
@@ -337,7 +337,7 @@ prevent its reclamation.
title="next chapter">13. Location dependencyDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -345,7 +345,7 @@ prevent its reclamation.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -365,7 +365,7 @@ prevent its reclamation.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/format.html b/mps/manual/html/topic/format.html
index 38da09953ed..2c5b0d145d5 100644
--- a/mps/manual/html/topic/format.html
+++ b/mps/manual/html/topic/format.html
@@ -8,7 +8,7 @@
- 6. Object formats — Memory Pool System 1.110.0 documentation
+ 6. Object formats — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -114,9 +114,9 @@ of.
obj_pad
};
-mps_pool_t obj_pool;
-mps_fmt_t obj_fmt;
-mps_res_t res;
+mps_pool_t obj_pool;
+mps_fmt_t obj_fmt;
+mps_res_t res;
res = mps_fmt_create_A(&obj_fmt, arena, &obj_fmt_s);
if (res != MPS_RES_OK) error("Couldn't create obj format");
@@ -132,13 +132,13 @@ of.
The type of the structure used to create an object format
of variant A.
typedef struct mps_fmt_A_s {
- mps_align_t align;
- mps_fmt_scan_t scan;
- mps_fmt_skip_t skip;
- mps_fmt_copy_t copy;
- mps_fmt_fwd_t fwd;
- mps_fmt_isfwd_t isfwd;
- mps_fmt_pad_t pad;
+ mps_align_t align;
+ mps_fmt_scan_t scan;
+ mps_fmt_skip_t skip;
+ mps_fmt_copy_t copy;
+ mps_fmt_fwd_t fwd;
+ mps_fmt_isfwd_t isfwd;
+ mps_fmt_pad_t pad;
} mps_fmt_A_s;
@@ -189,14 +189,14 @@ calling object format
of variant B.
typedef struct mps_fmt_B_s {
- mps_align_t align;
- mps_fmt_scan_t scan;
- mps_fmt_skip_t skip;
- mps_fmt_copy_t copy;
- mps_fmt_fwd_t fwd;
- mps_fmt_isfwd_t isfwd;
- mps_fmt_pad_t pad;
- mps_fmt_class_t mps_class;
+ mps_align_t align;
+ mps_fmt_scan_t scan;
+ mps_fmt_skip_t skip;
+ mps_fmt_copy_t copy;
+ mps_fmt_fwd_t fwd;
+ mps_fmt_isfwd_t isfwd;
+ mps_fmt_pad_t pad;
+ mps_fmt_class_t mps_class;
} mps_fmt_B_s;
@@ -223,12 +223,12 @@ return an appropriate object format
of variant auto-header.
typedef struct mps_fmt_auto_header_s {
- mps_align_t align;
- mps_fmt_scan_t scan;
- mps_fmt_skip_t skip;
- mps_fmt_fwd_t fwd;
- mps_fmt_isfwd_t isfwd;
- mps_fmt_pad_t pad;
+ mps_align_t align;
+ mps_fmt_scan_t scan;
+ mps_fmt_skip_t skip;
+ mps_fmt_fwd_t fwd;
+ mps_fmt_isfwd_t isfwd;
+ mps_fmt_pad_t pad;
size_t mps_headerSize;
} mps_fmt_auto_header_s;
@@ -615,7 +615,7 @@ their contents;
title="next chapter">7. ScanningDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -623,7 +623,7 @@ their contents;
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -643,7 +643,7 @@ their contents;
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/frame.html b/mps/manual/html/topic/frame.html
index 8f90420b866..e8f6f7fa400 100644
--- a/mps/manual/html/topic/frame.html
+++ b/mps/manual/html/topic/frame.html
@@ -8,7 +8,7 @@
- 16. Allocation frames — Memory Pool System 1.110.0 documentation
+ 16. Allocation frames — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -151,7 +151,7 @@ twice (so the sequence “A = push, pop A, pop A” is illegal).
title="next chapter">17. Debugging poolsDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -159,7 +159,7 @@ twice (so the sequence “A = push, pop A, pop A” is illegal).
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -179,7 +179,7 @@ twice (so the sequence “A = push, pop A, pop A” is illegal).
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/index.html b/mps/manual/html/topic/index.html
index e5f87a69884..c2058d5f2d6 100644
--- a/mps/manual/html/topic/index.html
+++ b/mps/manual/html/topic/index.html
@@ -8,7 +8,7 @@
- Reference — Memory Pool System 1.110.0 documentation
+ Reference — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -43,7 +43,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -212,7 +212,7 @@
title="next chapter">1. Interface conventionsDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -220,7 +220,7 @@
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -240,7 +240,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -185,7 +185,7 @@ is read by the function. See for example /* allocate a struct foo */
struct foo *fp;
-res = mps_alloc((mps_addr_t *)&fp, pool, sizeof(struct foo));
+res = mps_alloc((mps_addr_t *)&fp, pool, sizeof(struct foo));
This is known as type punning, and its behaviour is not
@@ -194,7 +194,7 @@ defined in ANSI/ISO Standard C. See mps_addr_t p;
+mps_addr_t p;
struct foo *fp;
res = mps_alloc(&p, pool, sizeof(struct foo));
if(res) /* handle error case */;
@@ -356,7 +356,7 @@ or function return from the MPS, 0 means “false”, and 1 means
title="next chapter">2. Error handingDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -364,7 +364,7 @@ or function return from the MPS, 0 means “false”, and 1 means
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -384,7 +384,7 @@ or function return from the MPS, 0 means “false”, and 1 means
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/internals.html b/mps/manual/html/topic/internals.html
index 1373a4fa1b2..2e0ce55ea27 100644
--- a/mps/manual/html/topic/internals.html
+++ b/mps/manual/html/topic/internals.html
@@ -8,7 +8,7 @@
- Internals — Memory Pool System 1.110.0 documentation
+ Internals — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -43,7 +43,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -99,7 +99,7 @@
title="next chapter">1. PlinthDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -107,7 +107,7 @@
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -127,7 +127,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
@@ -93,11 +93,11 @@ or elsewhere; that doesn’t matter.
For example, the toy Scheme interpreter inlines the location
dependency in its hash table structure:
typedef struct table_s {
- type_t type; /* TYPE_TABLE */
- hash_t hash; /* hash function */
- cmp_t cmp; /* comparison function */
+ type_t type; /* TYPE_TABLE */
+ hash_t hash; /* hash function */
+ cmp_t cmp; /* comparison function */
mps_ld_s ld; /* location dependency */
- obj_t buckets; /* hash buckets */
+ obj_t buckets; /* hash buckets */
} table_s;
@@ -125,12 +125,12 @@ references from one dependency to another.
that is added to the table must be added to the dependency before its
address is hashed. In the toy Scheme interpreter this is most easily
done in the function that hashes an address:
-static unsigned long eq_hash(obj_t obj, mps_ld_t ld)
+static unsigned long eq_hash(obj_t obj, mps_ld_t ld)
{
- union {char s[sizeof(obj_t)]; obj_t addr;} u;
+ union {char s[sizeof(obj_t)]; obj_t addr;} u;
if (ld) mps_ld_add(ld, arena, obj);
u.addr = obj;
- return hash(u.s, sizeof(obj_t));
+ return hash(u.s, sizeof(obj_t));
}
@@ -168,7 +168,7 @@ old locations of the blocks; and
For example, in the case of a hash table you should rehash based on
the new locations of the blocks.
-static obj_t table_ref(obj_t tbl, obj_t key)
+static obj_t table_ref(obj_t tbl, obj_t key)
{
struct bucket_s *b = buckets_find(tbl, tbl->table.buckets, key, NULL);
if (b && b->key != NULL && b->key != obj_deleted)
@@ -229,7 +229,7 @@ found in the table.
The type of the structure used to represent a location
dependency.
typedef struct mps_ld_s {
- mps_word_t w0, w1;
+ mps_word_t w0, w1;
} mps_ld_s;
@@ -372,7 +372,7 @@ other location dependency function.
title="next chapter">14. Segregated allocation cachesDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -380,7 +380,7 @@ other location dependency function.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -400,7 +400,7 @@ other location dependency function.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/message.html b/mps/manual/html/topic/message.html
index 9bf9dbf785b..82d6dd19e33 100644
--- a/mps/manual/html/topic/message.html
+++ b/mps/manual/html/topic/message.html
@@ -8,7 +8,7 @@
- 11. Messages — Memory Pool System 1.110.0 documentation
+ 11. Messages — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -103,11 +103,11 @@ messages from the message queue and prints a description of the
contents of each one:
static void mps_chat(void)
{
- mps_message_type_t type;
+ mps_message_type_t type;
while (mps_message_queue_type(&type, arena)) {
- mps_message_t message;
- mps_bool_t b;
+ mps_message_t message;
+ mps_bool_t b;
b = mps_message_get(&message, arena, type);
assert(b); /* we just checked there was one */
@@ -380,7 +380,7 @@ usually simpler to call 12. FinalizationDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -388,7 +388,7 @@ usually simpler to call
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -408,7 +408,7 @@ usually simpler to call
previous |
-
Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/pattern.html b/mps/manual/html/topic/pattern.html
index 1297de53b59..2e677d70a96 100644
--- a/mps/manual/html/topic/pattern.html
+++ b/mps/manual/html/topic/pattern.html
@@ -8,7 +8,7 @@
- 15. Allocation patterns — Memory Pool System 1.110.0 documentation
+ 15. Allocation patterns — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -201,7 +201,7 @@ ended.
title="next chapter">16. Allocation framesDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -209,7 +209,7 @@ ended.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -229,7 +229,7 @@ ended.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/platform.html b/mps/manual/html/topic/platform.html
index 7acb6dbf058..3aefc2de264 100644
--- a/mps/manual/html/topic/platform.html
+++ b/mps/manual/html/topic/platform.html
@@ -8,7 +8,7 @@
- 2. Platforms — Memory Pool System 1.110.0 documentation
+ 2. Platforms — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Internals »
@@ -653,7 +653,7 @@ the Memory Pool System, with their current status.
title="next chapter">3. The critical pathDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -661,7 +661,7 @@ the Memory Pool System, with their current status.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -681,7 +681,7 @@ the Memory Pool System, with their current status.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Internals »
diff --git a/mps/manual/html/topic/plinth.html b/mps/manual/html/topic/plinth.html
index 388d397c14d..cb9a212e302 100644
--- a/mps/manual/html/topic/plinth.html
+++ b/mps/manual/html/topic/plinth.html
@@ -8,7 +8,7 @@
- 1. Plinth — Memory Pool System 1.110.0 documentation
+ 1. Plinth — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Internals »
@@ -218,13 +218,13 @@ scheduling decisions and the quality of telemetry output. For
instance, with getrusage():
#include <sys/resource.h>
-mps_clock_t mps_clock(void) {
+mps_clock_t mps_clock(void) {
struct rusage s;
int res = getrusage(RUSAGE_SELF, &s);
if (res != 0) {
/* handle error */
}
- return ((mps_clock_t)s.ru_utime.tv_sec) * 1000000 + s.ru_utime.tv_usec;
+ return ((mps_clock_t)s.ru_utime.tv_sec) * 1000000 + s.ru_utime.tv_usec;
}
@@ -461,7 +461,7 @@ environment variable 2. PlatformsDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -469,7 +469,7 @@ environment variable
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -489,7 +489,7 @@ environment variable
previous |
-
Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Internals »
diff --git a/mps/manual/html/topic/pool.html b/mps/manual/html/topic/pool.html
index 5a37eb1f07f..41a59d242b9 100644
--- a/mps/manual/html/topic/pool.html
+++ b/mps/manual/html/topic/pool.html
@@ -8,7 +8,7 @@
- 4. Pools — Memory Pool System 1.110.0 documentation
+ 4. Pools — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -193,7 +193,7 @@ the 5. Allocation Downloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -201,7 +201,7 @@ the
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -221,7 +221,7 @@ the
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/root.html b/mps/manual/html/topic/root.html
index c4071fc9c09..7a505831331 100644
--- a/mps/manual/html/topic/root.html
+++ b/mps/manual/html/topic/root.html
@@ -8,7 +8,7 @@
- 9. Roots — Memory Pool System 1.110.0 documentation
+ 9. Roots — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -168,8 +168,8 @@ the work function is not inlined so that the address is definitely in
the stack frame below any potential roots.
For example, here’s the code from the toy Scheme interpreter that
registers a thread root and then calls the program:
-mps_thr_t thread;
-mps_root_t reg_root;
+mps_thr_t thread;
+mps_root_t reg_root;
int exit_code;
void *marker = ▮
@@ -499,17 +499,17 @@ calling /* Global symbol table. */
size_t symtab_size;
struct {
- obj_t symbol;
- obj_t value;
+ obj_t symbol;
+ obj_t value;
} *symtab;
-mps_res_t res;
-mps_root_t root;
+mps_res_t res;
+mps_root_t root;
res = mps_root_create_table_masked(&root, arena,
mps_rank_exact(),
- (mps_rm_t)0,
+ (mps_rm_t)0,
symtab, symtab_size * 2,
- (mps_word_t)TAG_MASK);
+ (mps_word_t)TAG_MASK);
if (res != MPS_RES_OK) errror("can't create symtab root");
@@ -618,7 +618,7 @@ it might point to somewhere in the middle of an allocated block.
title="next chapter">10. Garbage collectionDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -626,7 +626,7 @@ it might point to somewhere in the middle of an allocated block.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -646,7 +646,7 @@ it might point to somewhere in the middle of an allocated block.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/scanning.html b/mps/manual/html/topic/scanning.html
index f9c3aec2dc2..03758e8d070 100644
--- a/mps/manual/html/topic/scanning.html
+++ b/mps/manual/html/topic/scanning.html
@@ -8,7 +8,7 @@
- 7. Scanning — Memory Pool System 1.110.0 documentation
+ 7. Scanning — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -121,12 +121,12 @@ reference is within the object and need not be stripped. So your code
might look like this:
if (MPS_FIX1(ss, obj->ref)) {
/* strip the tag */
- mps_addr_t p = obj->ref & ~0x7;
- mps_res_t res = MPS_FIX2(ss, &p);
+ mps_addr_t p = obj->ref & ~0x7;
+ mps_res_t res = MPS_FIX2(ss, &p);
if (res != MPS_RES_OK) return res;
/* restore the tag and update reference */
- mps_word_t tag = obj->ref & 0x7;
- obj->ref = (obj_t)((char *)p + tag);
+ mps_word_t tag = obj->ref & 0x7;
+ obj->ref = (obj_t)((char *)p + tag);
}
@@ -244,11 +244,11 @@ reference and cast it to this type. The behaviour of such a cast
is not defined by the C standard. See Type punning.
Here’s the Scheme scanner:
-static mps_res_t obj_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
+static mps_res_t obj_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
{
MPS_SCAN_BEGIN(ss) {
while (base < limit) {
- obj_t obj = base;
+ obj_t obj = base;
switch (obj->type.type) {
case TYPE_PAIR:
FIX(obj->pair.car);
@@ -366,10 +366,10 @@ references inside the object’s data_scan. In order to ensure that the scan state is passed
correctly to data_scan, the call must be wrapped in
MPS_FIX_CALL().
-mps_res_t obj_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
+mps_res_t obj_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
{
- obj_t obj;
- mps_res_t res;
+ obj_t obj;
+ mps_res_t res;
MPS_SCAN_BEGIN(ss) {
for (obj = base; obj < limit; obj++) {
if (MPS_FIX12(ss, &obj->left) != MPS_RES_OK)
@@ -529,7 +529,7 @@ ensure that the scan state is passed correctly.
title="next chapter">8. ThreadsDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -537,7 +537,7 @@ ensure that the scan state is passed correctly.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -557,7 +557,7 @@ ensure that the scan state is passed correctly.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/telemetry.html b/mps/manual/html/topic/telemetry.html
index 137c8773614..1bab8e7814b 100644
--- a/mps/manual/html/topic/telemetry.html
+++ b/mps/manual/html/topic/telemetry.html
@@ -8,7 +8,7 @@
- 18. Telemetry — Memory Pool System 1.110.0 documentation
+ 18. Telemetry — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -635,7 +635,7 @@ then calling this function has no effect.
title="next chapter">19. Weak referencesDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -643,7 +643,7 @@ then calling this function has no effect.
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -663,7 +663,7 @@ then calling this function has no effect.
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/thread.html b/mps/manual/html/topic/thread.html
index 3bdaf1dbc99..1a346b85628 100644
--- a/mps/manual/html/topic/thread.html
+++ b/mps/manual/html/topic/thread.html
@@ -8,7 +8,7 @@
- 8. Threads — Memory Pool System 1.110.0 documentation
+ 8. Threads — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -240,7 +240,7 @@ to 9. RootsDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -248,7 +248,7 @@ to
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -268,7 +268,7 @@ to
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/html/topic/weak.html b/mps/manual/html/topic/weak.html
index 7de67c85e16..8e4a7e8b893 100644
--- a/mps/manual/html/topic/weak.html
+++ b/mps/manual/html/topic/weak.html
@@ -8,7 +8,7 @@
- 19. Weak references — Memory Pool System 1.110.0 documentation
+ 19. Weak references — Memory Pool System 1.111.0 documentation
@@ -16,7 +16,7 @@
-
+
@@ -44,7 +44,7 @@
previous |
- Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
@@ -78,14 +78,14 @@ all weak references to the block have been splatted, the block may be
reclaimed.
For example, a scan method for objects in an AWL pool might
look like this:
-mps_res_t obj_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
+mps_res_t obj_scan(mps_ss_t ss, mps_addr_t base, mps_addr_t limit)
{
MPS_SCAN_BEGIN(ss) {
while (base < limit) {
- obj_t obj = base;
- mps_addr_t p = obj->ref;
+ obj_t obj = base;
+ mps_addr_t p = obj->ref;
if (MPS_FIX1(ss, p)) {
- mps_res_t res = MPS_FIX2(ss, &p);
+ mps_res_t res = MPS_FIX2(ss, &p);
if (res != MPS_RES_OK) return res;
if (p == NULL) {
/* reference was splatted */
@@ -147,7 +147,7 @@ that block from being splatted. See Pool referenceDownloads
-MPS Kit release 1.110.0
+MPS Kit release 1.111.0
All MPS Kit releases
@@ -155,7 +155,7 @@ that block from being splatted. See
Known issues
-Issues fixed in release 1.110.0
+Issues fixed in release 1.111.0
Contact us
@@ -175,7 +175,7 @@ that block from being splatted. See
previous |
-
Memory Pool System 1.110.0 documentation »
+ Memory Pool System 1.111.0 documentation »
Reference »
diff --git a/mps/manual/source/guide/advanced.rst b/mps/manual/source/guide/advanced.rst
index d6fd1ba163b..f65de503e9e 100644
--- a/mps/manual/source/guide/advanced.rst
+++ b/mps/manual/source/guide/advanced.rst
@@ -364,7 +364,7 @@ actually test that ``key`` appears in the table, not just that some key
with the same hash does.)
When a table is rehashed, call :c:func:`mps_ld_reset` to clear the
-location dependency, and the :c:func:`mps_ld_add` for each key before it is added back to the table.
+location dependency, and then :c:func:`mps_ld_add` for each key before it is added back to the table.
.. note::
diff --git a/mps/procedure/release-build/index.html b/mps/procedure/release-build/index.html
index 65f66f2db13..2934ff37186 100644
--- a/mps/procedure/release-build/index.html
+++ b/mps/procedure/release-build/index.html
@@ -8,6 +8,8 @@
Memory Pool System Release Build Procedure
+
+
@@ -79,8 +81,10 @@ set MPS_RELEASE to the correct value (see the rules in
the comments), and check strings that contain copyright dates,
etc.
+ In configure.ac edit the second argument of AC_INIT to be "release $RELEASE", then open configure for edit and run autoreconf -vif to bring the configure script up to date.
+
Submit readme.txt,
-version.c, and other changed files to Perforce before you
+version.c, configure.ac, and other changed files to Perforce before you
continue.
Determine the CHANGELEVEL at which you’re going to make
@@ -120,44 +124,69 @@ version/$VERSION/... | cut -d' ' -f2)
2.3. MPS Kit Tarball and Zip file
+ Note: If you are creating a custom variant then vary the release name according to the variant, e.g. mps-cet-1.110.0.zip
+
On a Unix box:
+-
+
Create a Perforce client workspace that maps:
+
+ - version/VERSION/... to mps-kit-RELEASE/...
+ - release/RELEASE/... to release/RELEASE/...
+
+
+
+
+-
Ensure the Perforce client workspace is set for Unix (LF) line endings.
+
-
Sync the version sources to CHANGELEVEL by repeating the
procedure from step 2.2.1:
- p4 revert version/$VERSION/...
- rm -rf version/$VERSION
- p4 sync -f version/$VERSION/...@$CHANGELEVEL
+ rm -rf mps-kit-RELEASE
+ p4 sync -f @CHANGELEVEL
-
-
Create a tarball and a zip file containing the MPS sources, and
- open it for add:
+//info.ravenbrook.com/project/mps/custom/cet/version/1.110/procedure/release-build/index.html#4
+ Create a tarball containing the MPS sources, and open it for add:
- KIT=mps-kit-$RELEASE
- cp -R version/$VERSION $KIT
- mkdir -p release/$RELEASE
- tar cf - $KIT | gzip -c > release/$RELEASE/$KIT.tar.gz
- zip -r release/$RELEASE/$KIT.zip $KIT
- rm -r $KIT
- p4 add release/$RELEASE/$KIT.tar.gz
- p4 add release/$RELEASE/$KIT.zip
+ mkdir -p release/RELEASE
+ tar czf release/RELEASE/mps-kit-RELEASE.tar.gz mps-kit-RELEASE
+ p4 add release/RELEASE/mps-kit-RELEASE.tar.gz
--
Submit the release files to Perforce with the comment “MPS:
-adding the MPS Kit tarball and zip file for
-release RELEASE.”
+-
Ensure the Perforce client workspace is set for Windows (CRLF) line endings.
+
+-
Sync the version sources again as in step (2) above.
+
+-
+
+
Create a zip file containing the MPS sources, and open it for add:
+
+
+ mkdir -p release/RELEASE
+ zip -r release/RELEASE/mps-kit-RELEASE.zip mps-cet-kit-RELEASE
+ p4 add release/RELEASE/mps-kit-RELEASE.zip
+
+
+
+
+-
Revert any changes to your Perforce client line endings. (You probably want them set to local.)
+
+-
Submit the release files to Perforce with
+the comment "MPS: adding the MPS Kit tarball and zip file for
+release RELEASE."
@@ -352,6 +381,16 @@ to mps-discussion@ravenbrook.com<
+
+
+ 2012‑09‑24
+
+ RB
+
+ - Make sure zip files contain files with Windows line endings.
- Use a fresh Perforce client to avoid any possibility of a clash with working files.
- Different archive name for custom variants.
+
+
+
2013-03-20