diff --git a/mps/code/abq.c b/mps/code/abq.c index b88914e3c17..233f2b26445 100644 --- a/mps/code/abq.c +++ b/mps/code/abq.c @@ -5,7 +5,7 @@ * * .purpose: A fixed-length FIFO queue. * - * .design: + * .design: */ #include "meter.h" diff --git a/mps/code/abq.h b/mps/code/abq.h index 90591de9a5f..89e6b252714 100644 --- a/mps/code/abq.h +++ b/mps/code/abq.h @@ -5,7 +5,7 @@ * * .purpose: A fixed-length FIFO queue. * - * .design: + * .design: */ #ifndef abq_h diff --git a/mps/code/airtest.c b/mps/code/airtest.c index 8b5a6ac8a5c..966656132bd 100644 --- a/mps/code/airtest.c +++ b/mps/code/airtest.c @@ -24,7 +24,7 @@ * but fails on lii6ll in variety HOT. Rather than struggle to defeat * the Clang optimizer, we choose not to test in this configuration. * In any case, the MPS does not guarantee anything about timely - * finalization (see ). + * finalization . */ #include "mps.h" diff --git a/mps/code/amcssth.c b/mps/code/amcssth.c index 5b15a5535e9..201bdd31be0 100644 --- a/mps/code/amcssth.c +++ b/mps/code/amcssth.c @@ -126,7 +126,7 @@ static void *kid_thread(void *arg) closure_t cl = arg; /* Register the thread twice to check this is supported -- see - * + * */ die(mps_thread_reg(&thread1, arena), "thread_reg"); die(mps_thread_reg(&thread2, arena), "thread_reg"); diff --git a/mps/code/arena.c b/mps/code/arena.c index fec86cef14f..5e2d01534a8 100644 --- a/mps/code/arena.c +++ b/mps/code/arena.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * - * .sources: is the main design document. */ + * .sources: is the main design document. */ #include "tract.h" #include "poolmvff.h" @@ -27,7 +27,7 @@ SRCID(arena, "$Id$"); Bool ArenaGrainSizeCheck(Size size) { CHECKL(size > 0); - /* */ + /* */ CHECKL(SizeIsAligned(size, MPS_PF_ALIGN)); /* Grain size must be a power of 2 for the tract lookup and the * zones to work. */ @@ -178,7 +178,7 @@ Bool ArenaCheck(Arena arena) CHECKD(Globals, ArenaGlobals(arena)); CHECKL(BoolCheck(arena->poolReady)); - if (arena->poolReady) { /* */ + if (arena->poolReady) { /* */ CHECKD(MVFF, &arena->controlPoolStruct); } @@ -271,7 +271,7 @@ static Res ArenaAbsInit(Arena arena, Size grainSize, ArgList args) arena->grainSize = grainSize; /* zoneShift must be overridden by arena class init */ arena->zoneShift = ZoneShiftUNSET; - arena->poolReady = FALSE; /* */ + arena->poolReady = FALSE; /* */ arena->lastTract = NULL; arena->lastTractBase = NULL; arena->hasFreeLand = FALSE; @@ -517,7 +517,7 @@ Res ControlInit(Arena arena) } MPS_ARGS_END(args); if (res != ResOK) return res; - arena->poolReady = TRUE; /* */ + arena->poolReady = TRUE; /* */ EventLabelPointer(&arena->controlPoolStruct, EventInternString("Control")); return ResOK; } @@ -677,7 +677,7 @@ Res ArenaDescribeTracts(Arena arena, mps_lib_FILE *stream, Count depth) * control pool, which is an MV pool embedded in the arena itself. * * .controlalloc.addr: In implementations where Addr is not compatible - * with void* (), ControlAlloc must take care of + * with void* , ControlAlloc must take care of * allocating so that the block can be addressed with a void*. */ Res ControlAlloc(void **baseReturn, Arena arena, size_t size) @@ -793,7 +793,7 @@ void ArenaChunkRemoved(Arena arena, Chunk chunk) * This is a primitive allocator used to allocate pages for the arena * Land. It is called rarely and can use a simple search. It may not * use the Land or any pool, because it is used as part of the - * bootstrap. See design.mps.bootstrap.land.sol.alloc. + * bootstrap. . */ static Res arenaAllocPageInChunk(Addr *baseReturn, Chunk chunk, Pool pool) @@ -903,7 +903,7 @@ static void arenaExcludePage(Arena arena, Range pageRange) * The arena's free land can't get memory for its block pool in the * usual way (via ArenaAlloc), because it is the mechanism behind * ArenaAlloc! So we extend the block pool via a back door (see - * arenaExtendCBSBlockPool). See design.mps.bootstrap.land.sol.pool. + * arenaExtendCBSBlockPool). . * * Only fails if it can't get a page for the block pool. */ @@ -1106,7 +1106,7 @@ Res ArenaAlloc(Addr *baseReturn, LocusPref pref, Size size, Pool pool) base = TractBase(tract); - /* cache the tract - */ + /* cache the tract - */ arena->lastTract = tract; arena->lastTractBase = base; @@ -1139,7 +1139,7 @@ void ArenaFree(Addr base, Size size, Pool pool) RangeInitSize(&range, base, size); - /* uncache the tract if in range - */ + /* uncache the tract if in range - */ if (base <= arena->lastTractBase && arena->lastTractBase < RangeLimit(&range)) { arena->lastTract = NULL; diff --git a/mps/code/arenacl.c b/mps/code/arenacl.c index 2dd5564acec..5aa0bc826b3 100644 --- a/mps/code/arenacl.c +++ b/mps/code/arenacl.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license. * - * .design: See . + * .design: . * * .improve.remember: One possible performance improvement is to * remember (a conservative approximation to) the indices of the first @@ -30,7 +30,7 @@ DECLARE_CLASS(Arena, ClientArena, AbstractArena); typedef struct ClientArenaStruct { ArenaStruct arenaStruct; /* generic arena structure */ - Sig sig; /* */ + Sig sig; /* */ } ClientArenaStruct; typedef struct ClientArenaStruct *ClientArena; @@ -45,7 +45,7 @@ typedef struct ClientChunkStruct { ChunkStruct chunkStruct; /* generic chunk */ Size freePages; /* number of free pages in chunk */ Addr pageBase; /* base of first managed page in chunk */ - Sig sig; /* */ + Sig sig; /* */ } ClientChunkStruct; #define ClientChunk2Chunk(clchunk) (&(clchunk)->chunkStruct) @@ -327,7 +327,7 @@ static void ClientArenaDestroy(Arena arena) ClientArena clientArena = MustBeA(ClientArena, arena); /* Destroy all chunks, including the primary. See - * */ + * */ arena->primary = NULL; TreeTraverseAndDelete(&arena->chunkTree, clientChunkDestroy, UNUSED_POINTER); diff --git a/mps/code/arenavm.c b/mps/code/arenavm.c index 2b44ef9e934..d11e1661da8 100644 --- a/mps/code/arenavm.c +++ b/mps/code/arenavm.c @@ -6,7 +6,7 @@ * * DESIGN * - * .design: See , and + * .design: , and * * .vm.addr-is-star: In this file, Addr is compatible with C * pointers, and Count with size_t (Index), because all refer to the @@ -45,7 +45,7 @@ typedef struct VMChunkStruct { VMStruct vmStruct; /* virtual memory descriptor */ Addr overheadMappedLimit; /* limit of pages mapped for overhead */ SparseArrayStruct pages; /* to manage backing store of page table */ - Sig sig; /* */ + Sig sig; /* */ } VMChunkStruct; #define VMChunk2Chunk(vmchunk) (&(vmchunk)->chunkStruct) @@ -61,7 +61,7 @@ typedef struct VMChunkStruct { /* VMArena * - * See for description. + * for description. */ typedef struct VMArenaStruct *VMArena; @@ -78,7 +78,7 @@ typedef struct VMArenaStruct { /* VM arena structure */ ArenaVMExtendedCallback extended; ArenaVMContractedCallback contracted; RingStruct spareRing; /* spare (free but mapped) tracts */ - Sig sig; /* */ + Sig sig; /* */ } VMArenaStruct; #define VMArenaVM(vmarena) (&(vmarena)->vmStruct) @@ -615,7 +615,7 @@ static Res VMArenaCreate(Arena *arenaReturn, ArgList args) AVER(sizeof(vmArena->vmParams) == sizeof(vmParams)); (void)mps_lib_memcpy(vmArena->vmParams, vmParams, sizeof(vmArena->vmParams)); - /* */ + /* */ vmArena->extendBy = size; vmArena->extendMin = 0; @@ -653,7 +653,7 @@ static Res VMArenaCreate(Arena *arenaReturn, ArgList args) /* number of stripes as will fit into a reference set (the number of */ /* bits in a word). Fail if the chunk is so small stripes are smaller */ /* than pages. Note that some zones are discontiguous in the chunk if */ - /* the size is not a power of 2. See . */ + /* the size is not a power of 2. . */ chunkSize = ChunkSize(chunk); arena->zoneShift = SizeFloorLog2(chunkSize >> MPS_WORD_SHIFT); AVER(ChunkPageSize(chunk) == ArenaGrainSize(arena)); @@ -688,7 +688,7 @@ static void VMArenaDestroy(Arena arena) VM vm = &vmStruct; /* Destroy all chunks, including the primary. See - * */ + * */ arena->primary = NULL; TreeTraverseAndDelete(&arena->chunkTree, vmChunkDestroy, UNUSED_POINTER); @@ -1181,7 +1181,7 @@ static void VMCompact(Arena arena, Trace trace) STATISTIC(vmem1 = ArenaReserved(arena)); /* Destroy chunks that are completely free, but not the primary - * chunk. See + * chunk. * TODO: add hysteresis here. See job003815. */ TreeTraverseAndDelete(&arena->chunkTree, vmChunkCompact, arena); diff --git a/mps/code/arg.c b/mps/code/arg.c index 8d129534a70..2a4d550a8a2 100644 --- a/mps/code/arg.c +++ b/mps/code/arg.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2013-2018 Ravenbrook Limited. See end of file for license. * - * .source: See . + * .source: . */ #include "config.h" diff --git a/mps/code/arg.h b/mps/code/arg.h index 2b5b3fbb31a..b0be60b8dff 100644 --- a/mps/code/arg.h +++ b/mps/code/arg.h @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2013-2014 Ravenbrook Limited. See end of file for license. * - * .source: See . + * .source: . */ #ifndef arg_h diff --git a/mps/code/awlut.c b/mps/code/awlut.c index b0a71ab7454..e5ff7b5d498 100644 --- a/mps/code/awlut.c +++ b/mps/code/awlut.c @@ -5,7 +5,7 @@ * * DESIGN * - * .design: see .* + * .design: see */ #include "mpscawl.h" diff --git a/mps/code/awluthe.c b/mps/code/awluthe.c index f27613a75b0..bb053668d5a 100644 --- a/mps/code/awluthe.c +++ b/mps/code/awluthe.c @@ -5,7 +5,7 @@ * * DESIGN * - * .design: see .* + * .design: see */ #include "mpscawl.h" diff --git a/mps/code/awlutth.c b/mps/code/awlutth.c index 97d2c3f6a0f..f550807962d 100644 --- a/mps/code/awlutth.c +++ b/mps/code/awlutth.c @@ -5,7 +5,7 @@ * * DESIGN * - * .design: see .* + * .design: see */ #include "mpscawl.h" diff --git a/mps/code/bt.c b/mps/code/bt.c index 844846ba723..99e90e3c16a 100644 --- a/mps/code/bt.c +++ b/mps/code/bt.c @@ -9,13 +9,13 @@ * * DESIGN * - * .design: see + * .design: see * * .aver.critical: The function BTIsResRange (and anything it calls) - * is on the critical path because it is + * is on the critical path because it is * called by NailboardIsResRange, which is called for every object in * a nailboarded segment when the segment is scanned or reclaimed; see - * . + * . */ #include "bt.h" @@ -178,7 +178,7 @@ SRCID(bt, "$Id$"); /* BTCreate -- allocate a BT from the control pool * - * See + * */ Res BTCreate(BT *btReturn, Arena arena, Count length) @@ -203,7 +203,7 @@ Res BTCreate(BT *btReturn, Arena arena, Count length) /* BTDestroy -- free a BT to the control pool. * - * See + * */ void BTDestroy(BT bt, Arena arena, Count length) @@ -232,7 +232,7 @@ Bool BTCheck(BT bt) /* BTSize -- return the size of a BT * - * See + * */ Size (BTSize)(Count n) @@ -246,7 +246,7 @@ Size (BTSize)(Count n) /* BTGet -- get a bit from a BT * - * See + * */ Bool (BTGet)(BT t, Index i) @@ -261,7 +261,7 @@ Bool (BTGet)(BT t, Index i) /* BTSet -- set a bit in a BT * - * See + * */ void (BTSet)(BT t, Index i) @@ -276,7 +276,7 @@ void (BTSet)(BT t, Index i) /* BTRes -- reset a bit in a BT * - * + * */ void (BTRes)(BT t, Index i) @@ -291,7 +291,7 @@ void (BTRes)(BT t, Index i) /* BTSetRange -- set a range of bits in a BT * - * + * */ void BTSetRange(BT t, Index base, Index limit) @@ -313,7 +313,7 @@ void BTSetRange(BT t, Index base, Index limit) /* BTIsResRange -- test whether a range of bits is all reset * - * See . + * . */ Bool BTIsResRange(BT bt, Index base, Index limit) @@ -337,7 +337,7 @@ Bool BTIsResRange(BT bt, Index base, Index limit) /* BTIsSetRange -- test whether a range of bits is all set * - * See . + * . */ Bool BTIsSetRange(BT bt, Index base, Index limit) @@ -365,7 +365,7 @@ Bool BTIsSetRange(BT bt, Index base, Index limit) /* BTResRange -- reset a range of bits in a BT * - * + * */ void BTResRange(BT t, Index base, Index limit) @@ -618,7 +618,7 @@ btFindResHighLabel:; \ * * Starts searching at the low end of the search range. * - * See . + * . */ static Bool BTFindResRange(Index *baseReturn, Index *limitReturn, @@ -708,7 +708,7 @@ static Bool BTFindResRange(Index *baseReturn, Index *limitReturn, * * Starts searching at the high end of the search range. * - * See . + * . */ static Bool BTFindResRangeHigh(Index *baseReturn, Index *limitReturn, @@ -805,7 +805,7 @@ static Bool BTFindResRangeHigh(Index *baseReturn, Index *limitReturn, /* BTFindLongResRange -- find long range of reset bits in a bit table * - * See . + * . */ Bool BTFindLongResRange(Index *baseReturn, Index *limitReturn, @@ -823,7 +823,7 @@ Bool BTFindLongResRange(Index *baseReturn, Index *limitReturn, /* BTFindLongResRangeHigh -- find long range of reset bits in a bit table * - * See . + * . */ Bool BTFindLongResRangeHigh(Index *baseReturn, Index *limitReturn, @@ -841,7 +841,7 @@ Bool BTFindLongResRangeHigh(Index *baseReturn, Index *limitReturn, /* BTFindShortResRange -- find short range of reset bits in a bit table * - * See . + * . */ Bool BTFindShortResRange(Index *baseReturn, Index *limitReturn, @@ -860,7 +860,7 @@ Bool BTFindShortResRange(Index *baseReturn, Index *limitReturn, * * Starts looking from the top of the search range. * - * See . + * . */ Bool BTFindShortResRangeHigh(Index *baseReturn, Index *limitReturn, @@ -878,7 +878,7 @@ Bool BTFindShortResRangeHigh(Index *baseReturn, Index *limitReturn, /* BTRangesSame -- check that a range of bits in two BTs are the same. * - * See + * */ Bool BTRangesSame(BT comparand, BT comparator, Index base, Index limit) @@ -914,7 +914,7 @@ Bool BTRangesSame(BT comparand, BT comparator, Index base, Index limit) /* BTCopyInvertRange -- copy a range of bits from one BT to another, * inverting them as you go. * - * See + * */ void BTCopyInvertRange(BT fromBT, BT toBT, Index base, Index limit) @@ -949,7 +949,7 @@ void BTCopyInvertRange(BT fromBT, BT toBT, Index base, Index limit) /* BTCopyRange -- copy a range of bits from one BT to another * - * See + * */ void BTCopyRange(BT fromBT, BT toBT, Index base, Index limit) @@ -989,7 +989,7 @@ void BTCopyRange(BT fromBT, BT toBT, Index base, Index limit) * may differ for each range. We could try to be smart about * detecting similar alignment - but we don't. * - * See + * */ void BTCopyOffsetRange(BT fromBT, BT toBT, diff --git a/mps/code/bt.h b/mps/code/bt.h index 4876f66715a..b3f6073bd3a 100644 --- a/mps/code/bt.h +++ b/mps/code/bt.h @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license. * - * .source: + * .source: */ #ifndef bt_h @@ -16,21 +16,21 @@ extern Size (BTSize)(Count length); #define BTSize(n) (((n) + MPS_WORD_WIDTH-1) / MPS_WORD_WIDTH * sizeof(Word)) -/* */ +/* */ extern Bool (BTGet)(BT bt, Index index); #define BTGet(a, i) \ ((Bool)(((a)[((i) >> MPS_WORD_SHIFT)] \ >> ((i) & ~((Word)-1 << MPS_WORD_SHIFT))) \ & (Word)1)) -/* */ +/* */ extern void (BTSet)(BT bt, Index index); #define BTSet(a, i) \ BEGIN \ (a)[((i)>>MPS_WORD_SHIFT)] |= (Word)1<<((i)&~((Word)-1< */ +/* */ extern void (BTRes)(BT bt, Index index); #define BTRes(a, i) \ BEGIN \ diff --git a/mps/code/buffer.c b/mps/code/buffer.c index 6bda32ed1e2..a77711e3faf 100644 --- a/mps/code/buffer.c +++ b/mps/code/buffer.c @@ -10,7 +10,7 @@ * * DESIGN * - * .design: See . + * .design: . * * .ap.async: The mutator is allowed to change certain AP fields * asynchronously. Functions that can be called on buffers not @@ -231,7 +231,7 @@ static Res BufferInit(Buffer buffer, BufferClass klass, /* BufferCreate -- create an allocation buffer * - * See . + * . */ Res BufferCreate(Buffer *bufferReturn, BufferClass klass, @@ -318,7 +318,8 @@ void BufferDetach(Buffer buffer, Pool pool) /* BufferDestroy -- destroy an allocation buffer * - * See . */ + * . + */ void BufferDestroy(Buffer buffer) { @@ -439,7 +440,8 @@ void BufferSetAllocAddr(Buffer buffer, Addr addr) /* BufferFramePush * - * See . */ + * . + */ Res BufferFramePush(AllocFrame *frameReturn, Buffer buffer) { @@ -462,7 +464,8 @@ Res BufferFramePush(AllocFrame *frameReturn, Buffer buffer) /* BufferFramePop * - * See . */ + * . + */ Res BufferFramePop(Buffer buffer, AllocFrame frame) { @@ -478,7 +481,8 @@ Res BufferFramePop(Buffer buffer, AllocFrame frame) /* BufferReserve -- reserve memory from an allocation buffer * - * .reserve: Keep in sync with . */ + * .reserve: Keep in sync with . + */ Res BufferReserve(Addr *pReturn, Buffer buffer, Size size) { @@ -539,7 +543,7 @@ void BufferAttach(Buffer buffer, Addr base, Addr limit, filled = AddrOffset(init, limit); buffer->fillSize += filled; if (buffer->isMutator) { - if (base != init) { /* see */ + if (base != init) { /* see */ Size prealloc = AddrOffset(base, init); ArenaGlobals(buffer->arena)->allocMutatorSize -= prealloc; } @@ -634,7 +638,7 @@ Bool BufferCommit(Buffer buffer, Addr p, Size size) AVER(SizeIsAligned(size, BufferPool(buffer)->alignment)); AVER(!BufferIsReady(buffer)); - /* See . */ + /* . */ /* .commit.before: If a flip occurs before this point, when the */ /* pool reads "initAtFlip" it will point below the object, so it */ /* will be trashed and the commit must fail when trip is called. */ @@ -1029,7 +1033,7 @@ Bool BufferClassCheck(BufferClass klass) /* BufferClass -- the vanilla buffer class definition * - * See . */ + * . */ DEFINE_CLASS(Inst, BufferClass, klass) { @@ -1243,7 +1247,7 @@ static Res segBufDescribe(Inst inst, mps_lib_FILE *stream, Count depth) /* SegBufClass -- SegBuf class definition * * Supports an association with a single segment when attached. See - * . */ + * . */ DEFINE_CLASS(Buffer, SegBuf, klass) { diff --git a/mps/code/cbs.c b/mps/code/cbs.c index 3b774168d8c..6e4a7704dbf 100644 --- a/mps/code/cbs.c +++ b/mps/code/cbs.c @@ -9,7 +9,7 @@ * .purpose: CBSs are used to manage potentially unbounded collections * of memory blocks. * - * .sources: . + * .sources: . * * .critical: In manual-allocation-bound programs using MVFF, many of * these functions are on the critical paths via mps_alloc (and then @@ -155,7 +155,7 @@ static void cbsUpdateZonedNode(SplayTree splay, Tree tree) /* cbsInit -- Initialise a CBS structure * - * See . + * . */ ARG_DEFINE_KEY(cbs_block_pool, Pool); @@ -231,7 +231,7 @@ static Res cbsInitZoned(Land land, Arena arena, Align alignment, ArgList args) /* cbsFinish -- Finish a CBS structure * - * See . + * . */ static void cbsFinish(Inst inst) @@ -253,7 +253,7 @@ static void cbsFinish(Inst inst) /* cbsSize -- total size of ranges in CBS * - * See . + * . */ static Size cbsSize(Land land) @@ -380,7 +380,7 @@ static void cbsBlockInsert(CBS cbs, RangeTree block) /* cbsInsert -- Insert a range into the CBS * - * See . + * . * * .insert.alloc: Will only allocate a block if the range does not * abut an existing range. @@ -548,7 +548,7 @@ static Res cbsInsertSteal(Range rangeReturn, Land land, Range rangeIO) /* cbsDelete -- Remove a range from a CBS * - * See . + * . * * .delete.alloc: Will only allocate a block if the range splits * an existing range. @@ -758,7 +758,7 @@ static Res cbsZonedSplayNodeDescribe(Tree tree, mps_lib_FILE *stream) /* cbsIterate -- iterate over all blocks in CBS * - * See . + * . */ typedef struct CBSIterateClosure { @@ -800,7 +800,7 @@ static Bool cbsIterate(Land land, LandVisitor visitor, void *visitorClosure) /* cbsIterateAndDelete -- iterate over all blocks in CBS * - * See . + * . */ typedef struct CBSIterateAndDeleteClosure { @@ -1137,7 +1137,7 @@ fail: /* cbsDescribe -- describe a CBS * - * See . + * . */ static Res cbsDescribe(Inst inst, mps_lib_FILE *stream, Count depth) diff --git a/mps/code/cbs.h b/mps/code/cbs.h index 844cd8cba6c..dcde24dff95 100644 --- a/mps/code/cbs.h +++ b/mps/code/cbs.h @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. * - * .source: . + * .source: . */ #ifndef cbs_h diff --git a/mps/code/check.h b/mps/code/check.h index eb7219bbe05..0f153872d23 100644 --- a/mps/code/check.h +++ b/mps/code/check.h @@ -196,8 +196,8 @@ extern unsigned CheckLevel; /* TESTT -- check type simply * - * Must be thread safe. See - * and . + * Must be thread safe. + * and . */ #define TESTT(type, val) ((val) != NULL && (val)->sig == type ## Sig) @@ -334,7 +334,7 @@ extern unsigned CheckLevel; * verify that certain types and fields are equivalent. They do not do * a complete job. This trickery is justified by the security gained * in knowing that matches the MPM. See - * . [This paragraph is intended to + * . [This paragraph is intended to * satisfy rule.impl.trick.] */ diff --git a/mps/code/clock.h b/mps/code/clock.h index ec8ccc2bb80..8bfc4040063 100644 --- a/mps/code/clock.h +++ b/mps/code/clock.h @@ -3,7 +3,7 @@ * Copyright (c) 2001-2016 Ravenbrook Limited. See end of file for license. * $Id$ * - * .design: . + * .design: . */ #ifndef clock_h diff --git a/mps/code/config.h b/mps/code/config.h index 80789d8c069..42b100f342f 100644 --- a/mps/code/config.h +++ b/mps/code/config.h @@ -12,7 +12,7 @@ * * DESIGN * - * See . + * . */ #ifndef config_h @@ -433,7 +433,7 @@ #define ARENA_MINIMUM_COLLECTABLE_SIZE ((Size)1000000) /* ARENA_DEFAULT_COLLECTION_RATE is an estimate of the MPS's - * collection rate (in work per second; see ), for + * collection rate (in work per second; see ), for * use in the case where there isn't enough data to use a measured * value. */ @@ -487,7 +487,7 @@ /* Currently StackProbe has a useful implementation only on Windows. */ #if defined(MPS_OS_W3) && !defined(CONFIG_PF_ANSI) -/* See for a justification of this value. */ +/* See for a justification of this value. */ #define StackProbeDEPTH ((Size)500) #else #define StackProbeDEPTH ((Size)0) @@ -601,7 +601,7 @@ #if defined(MPS_OS_LI) || defined(MPS_OS_FR) /* PTHREADEXT_SIGSUSPEND -- signal used to suspend a thread - * See + * */ #if defined(CONFIG_PTHREADEXT_SIGSUSPEND) #define PTHREADEXT_SIGSUSPEND CONFIG_PTHREADEXT_SIGSUSPEND @@ -610,7 +610,7 @@ #endif /* PTHREADEXT_SIGRESUME -- signal used to resume a thread - * See + * */ #if defined(CONFIG_PTHREADEXT_SIGRESUME) #define PTHREADEXT_SIGRESUME CONFIG_PTHREADEXT_SIGRESUME @@ -691,12 +691,12 @@ /* Write barrier deferral * - * See design.mps.write-barrier.deferral. + * . * * TODO: These settings were determined by trial and error, but should * be based on measurement of the protection overhead on each * platform. We know it's extremely different between macOS and - * Windows, for example. See design.mps.write-barrier.improv.by-os. + * Windows, for example. . * * TODO: Consider basing the count on the amount of time that has * passed in the mutator rather than the number of scans. diff --git a/mps/code/dbgpool.c b/mps/code/dbgpool.c index b2e7bdb433d..88dd9ddfc6b 100644 --- a/mps/code/dbgpool.c +++ b/mps/code/dbgpool.c @@ -4,7 +4,7 @@ * Copyright (c) 2001-2016 Ravenbrook Limited. See end of file for license. * Portions copyright (C) 2002 Global Graphics Software. * - * .source: design.mps.object-debug + * .source: */ #include "dbgpool.h" @@ -161,7 +161,7 @@ static Res DebugPoolInit(Pool pool, Arena arena, PoolClass klass, ArgList args) /* fencepost init */ /* @@@@ This parses a user argument, options, so it should really */ /* go through the MPS interface. The template needs to be copied */ - /* into Addr memory, to avoid breaking . */ + /* into Addr memory, to avoid breaking . */ debug->fenceSize = options->fenceSize; if (debug->fenceSize != 0) { /* Fenceposting turns on tagging */ diff --git a/mps/code/dbgpool.h b/mps/code/dbgpool.h index 051582121b0..4762bc535e1 100644 --- a/mps/code/dbgpool.h +++ b/mps/code/dbgpool.h @@ -1,6 +1,6 @@ /* dbgpool.h: POOL DEBUG MIXIN * - * See . + * . * * $Id$ * Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license. diff --git a/mps/code/dbgpooli.c b/mps/code/dbgpooli.c index ebc8733e3c2..1d57c43487b 100644 --- a/mps/code/dbgpooli.c +++ b/mps/code/dbgpooli.c @@ -4,7 +4,7 @@ * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. * Portions copyright (C) 2002 Global Graphics Software. * - * .source: + * .source: */ #include "dbgpool.h" @@ -21,7 +21,7 @@ void mps_pool_check_fenceposts(mps_pool_t mps_pool) Pool pool = (Pool)mps_pool; Arena arena; - /* TESTT not AVERT, see . + * .design: . */ #ifndef event_h diff --git a/mps/code/eventcom.h b/mps/code/eventcom.h index 2e1479abf68..bbde88a72d4 100644 --- a/mps/code/eventcom.h +++ b/mps/code/eventcom.h @@ -15,7 +15,7 @@ #include "clock.h" -/* Event Kinds --- see +/* Event Kinds --- see * * All events are classified as being of one event type. * They are small enough to be able to be used as members of a bit set. diff --git a/mps/code/eventdef.h b/mps/code/eventdef.h index 9189b50a2c2..437df41ac4a 100644 --- a/mps/code/eventdef.h +++ b/mps/code/eventdef.h @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * - * .source: + * .source: * * .desc: This file declares macros that define the types of events and their * properties. @@ -52,7 +52,7 @@ * When you retire an event type, don't delete it from the list, but * set the "Used" column to FALSE. This serves as documentation for * what the event code means in older logs, and prevents the codes - * being re-used. See . + * being re-used. . * * When you add an event type, you must also add an EVENT_*_PARAMS * macro specifying its parameters. diff --git a/mps/code/failover.c b/mps/code/failover.c index fa48187cda9..0afc904841f 100644 --- a/mps/code/failover.c +++ b/mps/code/failover.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2014 Ravenbrook Limited. See end of file for license. * - * .design: + * .design: * * .critical: In manual-allocation-bound programs using MVFF, many of * these functions are on the critical paths via mps_alloc (and then @@ -82,7 +82,7 @@ static Res failoverInsert(Range rangeReturn, Land land, Range range) AVERT_CRITICAL(Range, range); /* Provide more opportunities for coalescence. See - * . + * . */ (void)LandFlush(fo->primary, fo->secondary); @@ -104,7 +104,7 @@ static Res failoverInsertSteal(Range rangeReturn, Land land, Range rangeIO) AVERT(Range, rangeIO); /* Provide more opportunities for coalescence. See - * . + * . */ (void)LandFlush(fo->primary, fo->secondary); @@ -124,7 +124,7 @@ static Res failoverDelete(Range rangeReturn, Land land, Range range) AVERT(Range, range); /* Prefer efficient search in the primary. See - * . + * . */ (void)LandFlush(fo->primary, fo->secondary); @@ -144,7 +144,7 @@ static Res failoverDelete(Range rangeReturn, Land land, Range range) /* Delete the whole of oldRange, and re-insert the fragments * (which might end up in the secondary). See - * . + * . */ res = LandDelete(&dummyRange, fo->primary, &oldRange); if (res != ResOK) @@ -191,7 +191,7 @@ static Res failoverDeleteSteal(Range rangeReturn, Land land, Range range) AVERT(Range, range); /* Prefer efficient search in the primary. See - * . + * . */ (void)LandFlush(fo->primary, fo->secondary); @@ -223,7 +223,7 @@ static Bool failoverFindFirst(Range rangeReturn, Range oldRangeReturn, Land land AVER_CRITICAL(oldRangeReturn != NULL); AVERT_CRITICAL(FindDelete, findDelete); - /* See . */ + /* . */ (void)LandFlush(fo->primary, fo->secondary); return LandFindFirst(rangeReturn, oldRangeReturn, fo->primary, size, findDelete) @@ -239,7 +239,7 @@ static Bool failoverFindLast(Range rangeReturn, Range oldRangeReturn, Land land, AVER_CRITICAL(oldRangeReturn != NULL); AVERT_CRITICAL(FindDelete, findDelete); - /* See . */ + /* . */ (void)LandFlush(fo->primary, fo->secondary); return LandFindLast(rangeReturn, oldRangeReturn, fo->primary, size, findDelete) @@ -255,7 +255,7 @@ static Bool failoverFindLargest(Range rangeReturn, Range oldRangeReturn, Land la AVER_CRITICAL(oldRangeReturn != NULL); AVERT_CRITICAL(FindDelete, findDelete); - /* See . */ + /* . */ (void)LandFlush(fo->primary, fo->secondary); return LandFindLargest(rangeReturn, oldRangeReturn, fo->primary, size, findDelete) @@ -276,7 +276,7 @@ static Bool failoverFindInZones(Bool *foundReturn, Range rangeReturn, Range oldR /* AVERT_CRITICAL(ZoneSet, zoneSet); */ AVERT_CRITICAL(Bool, high); - /* See . */ + /* . */ (void)LandFlush(fo->primary, fo->secondary); res = LandFindInZones(&found, rangeReturn, oldRangeReturn, fo->primary, size, zoneSet, high); diff --git a/mps/code/failover.h b/mps/code/failover.h index a74ab69a1fb..787c1fbebcf 100644 --- a/mps/code/failover.h +++ b/mps/code/failover.h @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2014 Ravenbrook Limited. See end of file for license. * - * .source: . + * .source: . */ #ifndef failover_h diff --git a/mps/code/finalcv.c b/mps/code/finalcv.c index 1871141bbdf..150e46ea858 100644 --- a/mps/code/finalcv.c +++ b/mps/code/finalcv.c @@ -6,7 +6,7 @@ * * DESIGN * - * See . + * . * * DEPENDENCIES * @@ -132,7 +132,7 @@ static void test(mps_arena_t arena, mps_pool_class_t pool_class) die(mps_ap_create(&ap, pool, mps_rank_exact()), "ap_create\n"); /* Make registered-for-finalization objects. */ - /* */ + /* */ for(i = 0; i < rootCOUNT; ++i) { do { MPS_RESERVE_BLOCK(e, p, ap, vectorSIZE); @@ -155,7 +155,7 @@ static void test(mps_arena_t arena, mps_pool_class_t pool_class) mps_message_type_enable(arena, mps_message_type_finalization()); mps_message_type_enable(arena, mps_message_type_gc()); - /* */ + /* */ while (finalizations < finalizationCOUNT && collections < collectionCOUNT) { mps_message_type_t type; @@ -163,7 +163,7 @@ static void test(mps_arena_t arena, mps_pool_class_t pool_class) churn(ap); /* Maybe make some objects ready-to-finalize */ - /* */ + /* */ for (i = 0; i < rootCOUNT; ++i) { if (root[i] != NULL && state[i] == rootSTATE) { if (rnd() % finalizationRATE == 0) { @@ -192,7 +192,7 @@ static void test(mps_arena_t arena, mps_pool_class_t pool_class) mps_word_t objind; mps_addr_t objaddr; - /* */ + /* */ cdie(0 == mps_message_clock(arena, message), "message clock should be 0 (unset) for finalization messages"); mps_message_finalization_ref(&objaddr, arena, message); @@ -200,7 +200,7 @@ static void test(mps_arena_t arena, mps_pool_class_t pool_class) objind = dylan_int_int(obj[vectorSLOT]); printf("Finalizing: object %"PRIuLONGEST" at %p\n", (ulongest_t)objind, objaddr); - /* */ + /* */ cdie(root[objind] == NULL, "finalized live"); cdie(state[objind] == finalizableSTATE, "finalized dead"); state[objind] = finalizedSTATE; diff --git a/mps/code/format.c b/mps/code/format.c index b9c4a59fb14..ed76b3ce57a 100644 --- a/mps/code/format.c +++ b/mps/code/format.c @@ -182,7 +182,7 @@ void FormatDestroy(Format format) /* FormatArena -- find the arena of a format * - * Must be thread-safe. See . */ + * Must be thread-safe. . */ Arena FormatArena(Format format) { diff --git a/mps/code/freelist.c b/mps/code/freelist.c index 2c02cd8e41d..27e62c81064 100644 --- a/mps/code/freelist.c +++ b/mps/code/freelist.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2013-2015 Ravenbrook Limited. See end of file for license. * - * .sources: . + * .sources: . */ #include "freelist.h" @@ -176,7 +176,7 @@ Bool FreelistCheck(Freelist fl) CHECKL(AlignCheck(FreelistMinimumAlignment)); CHECKL(sizeof(struct FreelistBlockSmall) < sizeof(struct FreelistBlockLarge)); CHECKL(sizeof(struct FreelistBlockSmall) <= freelistAlignment(fl)); - /* See */ + /* */ CHECKL(AlignIsAligned(freelistAlignment(fl), FreelistMinimumAlignment)); CHECKL((fl->list == freelistEND) == (fl->listSize == 0)); CHECKL((fl->list == freelistEND) == (fl->size == 0)); @@ -197,7 +197,7 @@ static Res freelistInit(Land land, Arena arena, Align alignment, ArgList args) return res; fl = CouldBeA(Freelist, land); - /* See */ + /* */ AVER(AlignIsAligned(LandAlignment(land), FreelistMinimumAlignment)); fl->list = freelistEND; @@ -254,7 +254,7 @@ static void freelistBlockSetPrevNext(Freelist fl, FreelistBlock prev, if (prev == freelistEND) { fl->list = next; } else { - /* Isolated range invariant (design.mps.freelist.impl.invariant). */ + /* Isolated range invariant . */ AVER(next == freelistEND || freelistBlockLimit(fl, prev) < freelistBlockBase(next)); freelistBlockSetNext(prev, next); @@ -291,7 +291,7 @@ static Res freelistInsert(Range rangeReturn, Land land, Range range) break; next = freelistBlockNext(cur); if (next != freelistEND) - /* Isolated range invariant (design.mps.freelist.impl.invariant). */ + /* Isolated range invariant . */ AVER(freelistBlockLimit(fl, cur) < freelistBlockBase(next)); prev = cur; cur = next; diff --git a/mps/code/freelist.h b/mps/code/freelist.h index 6b84564e0ab..6fafa812bef 100644 --- a/mps/code/freelist.h +++ b/mps/code/freelist.h @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2013-2014 Ravenbrook Limited. See end of file for license. * - * .source: . + * .source: . */ #ifndef freelist_h @@ -19,7 +19,7 @@ typedef struct FreelistStruct *Freelist; extern Bool FreelistCheck(Freelist freelist); -/* See */ +/* */ #define FreelistMinimumAlignment ((Align)sizeof(FreelistBlock)) DECLARE_CLASS(Land, Freelist, Land); diff --git a/mps/code/global.c b/mps/code/global.c index 42269f565f1..e111c964ae3 100644 --- a/mps/code/global.c +++ b/mps/code/global.c @@ -4,7 +4,7 @@ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * Portions copyright (C) 2002 Global Graphics Software. * - * .sources: See . design.mps.thread-safety is relevant + * .sources: . is relevant * to the functions ArenaEnter and ArenaLeave in this file. * * @@ -12,10 +12,10 @@ * * .static: Static data is used in ArenaAccess (in order to find the * appropriate arena) and GlobalsInit. It's checked in GlobalsCheck. - * See . + * . * * .non-mod: The Globals structure has many fields which properly belong - * to other modules (see ); GlobalsInit contains code which + * to other modules ; GlobalsInit contains code which * breaks the usual module abstractions. Such instances are documented * with a tag to the relevant module implementation. Most of the * functions should be in some other module, they just ended up here by @@ -31,15 +31,15 @@ SRCID(global, "$Id$"); /* All static data objects are declared here. See .static */ -/* */ +/* */ static Bool arenaRingInit = FALSE; -static RingStruct arenaRing; /* */ -static Serial arenaSerial; /* */ +static RingStruct arenaRing; /* */ +static Serial arenaSerial; /* */ /* arenaClaimRingLock, arenaReleaseRingLock -- lock/release the arena ring * - * See . */ + * . */ static void arenaClaimRingLock(void) { @@ -53,7 +53,7 @@ static void arenaReleaseRingLock(void) /* GlobalsClaimAll -- claim all MPS locks - * + * */ void GlobalsClaimAll(void) @@ -64,7 +64,7 @@ void GlobalsClaimAll(void) } /* GlobalsReleaseAll -- release all MPS locks. GlobalsClaimAll must - * previously have been called. */ + * previously have been called. */ void GlobalsReleaseAll(void) { @@ -84,7 +84,7 @@ static void arenaReinitLock(Arena arena) /* GlobalsReinitializeAll -- reinitialize all MPS locks, and leave the * shield for all arenas. GlobalsClaimAll must previously have been - * called. */ + * called. */ void GlobalsReinitializeAll(void) { @@ -127,7 +127,7 @@ static void arenaDenounce(Arena arena) AVERT(Arena, arena); /* Temporarily give up the arena lock to avoid deadlock, */ - /* see . */ + /* see . */ ArenaLeave(arena); /* Detach the arena from the global list. */ @@ -214,14 +214,14 @@ Bool GlobalsCheck(Globals arenaGlobals) CHECKL(TraceSetSuper(arena->busyTraces, arena->flippedTraces)); TRACE_SET_ITER(ti, trace, TraceSetUNIV, arena) - /* */ + /* */ if (TraceSetIsMember(arena->busyTraces, trace)) { CHECKD(Trace, trace); } else { - /* */ + /* */ CHECKL(trace->sig == SigInvalid); } - /* */ + /* */ CHECKL(TraceIdMessagesCheck(arena, ti)); TRACE_SET_ITER_END(ti, trace, TraceSetUNIV, arena); @@ -236,7 +236,7 @@ Bool GlobalsCheck(Globals arenaGlobals) /* can't write a check for arena->epoch */ CHECKD(History, ArenaHistory(arena)); - /* we also check the statics now. */ + /* we also check the statics now. */ CHECKL(BoolCheck(arenaRingInit)); /* Can't CHECKD_NOSIG here because &arenaRing is never NULL and GCC * will warn about a constant comparison. */ @@ -272,7 +272,7 @@ Res GlobalsInit(Globals arenaGlobals) /* Ensure static things are initialized. */ if (!arenaRingInit) { /* there isn't an arena ring yet */ - /* */ + /* */ arenaRingInit = TRUE; RingInit(&arenaRing); arenaSerial = (Serial)0; @@ -336,11 +336,11 @@ Res GlobalsInit(Globals arenaGlobals) ShieldInit(ArenaShield(arena)); for (ti = 0; ti < TraceLIMIT; ++ti) { - /* */ + /* */ arena->trace[ti].sig = SigInvalid; /* ti must be valid so that TraceSetIsMember etc. always work */ arena->trace[ti].ti = ti; - /* */ + /* */ arena->tsMessage[ti] = NULL; arena->tMessage[ti] = NULL; } @@ -379,7 +379,7 @@ Res GlobalsCompleteCreate(Globals arenaGlobals) AVERT(Globals, arenaGlobals); arena = GlobalsArena(arenaGlobals); - /* initialize the message stuff, */ + /* initialize the message stuff, */ { void *v; @@ -391,7 +391,7 @@ Res GlobalsCompleteCreate(Globals arenaGlobals) } TRACE_SET_ITER(ti, trace, TraceSetUNIV, arena) - /* */ + /* */ res = TraceIdMessagesCreate(arena, ti); if(res != ResOK) return res; @@ -494,7 +494,7 @@ void GlobalsPrepareToDestroy(Globals arenaGlobals) arenaGlobals->lock = NULL; TRACE_SET_ITER(ti, trace, TraceSetUNIV, arena) - /* */ + /* */ TraceIdMessagesDestroy(arena, ti); TRACE_SET_ITER_END(ti, trace, TraceSetUNIV, arena); @@ -518,7 +518,7 @@ void GlobalsPrepareToDestroy(Globals arenaGlobals) arena->enabledMessageTypes = NULL; } - /* destroy the final pool (see ) */ + /* destroy the final pool */ if (arena->isFinalPool) { /* All this subtlety is because PoolDestroy will call */ /* ArenaCheck several times. The invariant on finalPool */ @@ -628,7 +628,7 @@ void ArenaLeaveLock(Arena arena, Bool recursive) } else { ShieldLeave(arena); } - ProtSync(arena); /* */ + ProtSync(arena); /* */ if(recursive) { LockReleaseRecursive(lock); } else { @@ -659,7 +659,7 @@ Bool ArenaAccess(Addr addr, AccessSet mode, MutatorContext context) Ring node, nextNode; Res res; - arenaClaimRingLock(); /* */ + arenaClaimRingLock(); /* */ AVERT(Ring, &arenaRing); RING_FOR(node, &arenaRing, nextNode) { @@ -667,7 +667,7 @@ Bool ArenaAccess(Addr addr, AccessSet mode, MutatorContext context) Arena arena = GlobalsArena(arenaGlobals); Root root; - ArenaEnter(arena); /* */ + ArenaEnter(arena); /* */ EVENT3(ArenaAccessBegin, arena, addr, mode); /* @@@@ The code below assumes that Roots and Segs are disjoint. */ @@ -835,7 +835,7 @@ Bool ArenaStep(Globals globals, double interval, double multiplier) /* ArenaFinalize -- registers an object for finalization * - * See . */ + * . */ Res ArenaFinalize(Arena arena, Ref obj) { @@ -863,7 +863,7 @@ Res ArenaFinalize(Arena arena, Ref obj) /* ArenaDefinalize -- removes one finalization registration of an object * - * See . */ + * . */ Res ArenaDefinalize(Arena arena, Ref obj) { diff --git a/mps/code/land.c b/mps/code/land.c index 4d207edba1b..0e7d6422bd6 100644 --- a/mps/code/land.c +++ b/mps/code/land.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2014-2016 Ravenbrook Limited. See end of file for license. * - * .design: + * .design: * * .critical.macros: In manual-allocation-bound programs using MVFF, * the Land generic functions are on the critical path via mps_free. @@ -112,7 +112,7 @@ static void LandAbsFinish(Inst inst) /* LandInit -- initialize land * - * See + * */ Res LandInit(Land land, LandClass klass, Arena arena, Align alignment, void *owner, ArgList args) @@ -135,7 +135,7 @@ Res LandInit(Land land, LandClass klass, Arena arena, Align alignment, void *own /* LandFinish -- finish land * - * See + * */ void LandFinish(Land land) @@ -149,7 +149,7 @@ void LandFinish(Land land) /* LandSize -- return the total size of ranges in land * - * See + * */ Size (LandSize)(Land land) @@ -163,7 +163,7 @@ Size (LandSize)(Land land) /* LandInsert -- insert range of addresses into land * - * See + * */ Res (LandInsert)(Range rangeReturn, Land land, Range range) @@ -188,7 +188,7 @@ Res (LandInsert)(Range rangeReturn, Land land, Range range) * stealing some of the inserted memory to allocate internal data * structures. * - * See + * */ Res LandInsertSteal(Range rangeReturn, Land land, Range rangeIO) @@ -213,7 +213,7 @@ Res LandInsertSteal(Range rangeReturn, Land land, Range rangeIO) /* LandDelete -- delete range of addresses from land * - * See + * */ Res (LandDelete)(Range rangeReturn, Land land, Range range) @@ -238,7 +238,7 @@ Res (LandDelete)(Range rangeReturn, Land land, Range range) * stealing some memory from the land to allocate internal data * structures. * - * See + * */ Res LandDeleteSteal(Range rangeReturn, Land land, Range range) @@ -261,7 +261,7 @@ Res LandDeleteSteal(Range rangeReturn, Land land, Range range) /* LandIterate -- iterate over isolated ranges of addresses in land * - * See + * */ Bool (LandIterate)(Land land, LandVisitor visitor, void *closure) @@ -281,7 +281,7 @@ Bool (LandIterate)(Land land, LandVisitor visitor, void *closure) /* LandIterateAndDelete -- iterate over isolated ranges of addresses * in land, deleting some of them * - * See + * */ Bool (LandIterateAndDelete)(Land land, LandDeleteVisitor visitor, void *closure) @@ -300,7 +300,7 @@ Bool (LandIterateAndDelete)(Land land, LandDeleteVisitor visitor, void *closure) /* LandFindFirst -- find first range of given size * - * See + * */ Bool (LandFindFirst)(Range rangeReturn, Range oldRangeReturn, Land land, Size size, FindDelete findDelete) @@ -323,7 +323,7 @@ Bool (LandFindFirst)(Range rangeReturn, Range oldRangeReturn, Land land, Size si /* LandFindLast -- find last range of given size * - * See + * */ Bool (LandFindLast)(Range rangeReturn, Range oldRangeReturn, Land land, Size size, FindDelete findDelete) @@ -346,7 +346,7 @@ Bool (LandFindLast)(Range rangeReturn, Range oldRangeReturn, Land land, Size siz /* LandFindLargest -- find largest range of at least given size * - * See + * */ Bool (LandFindLargest)(Range rangeReturn, Range oldRangeReturn, Land land, Size size, FindDelete findDelete) @@ -369,7 +369,7 @@ Bool (LandFindLargest)(Range rangeReturn, Range oldRangeReturn, Land land, Size /* LandFindInSize -- find range of given size in set of zones * - * See + * */ Res (LandFindInZones)(Bool *foundReturn, Range rangeReturn, Range oldRangeReturn, Land land, Size size, ZoneSet zoneSet, Bool high) @@ -395,7 +395,7 @@ Res (LandFindInZones)(Bool *foundReturn, Range rangeReturn, Range oldRangeReturn /* LandDescribe -- describe land for debugging * - * See + * */ Res LandDescribe(Land land, mps_lib_FILE *stream, Count depth) @@ -440,7 +440,7 @@ Bool LandFlushVisitor(Bool *deleteReturn, Land land, Range range, /* LandFlush -- move ranges from src to dest * - * See + * */ Bool (LandFlush)(Land dest, Land src) diff --git a/mps/code/ld.c b/mps/code/ld.c index 71264ff78a7..1a3e93afcfe 100644 --- a/mps/code/ld.c +++ b/mps/code/ld.c @@ -34,7 +34,7 @@ * * .mod: LDHistoryLENGTH is used as a modulus to calculate the offset * of an epoch in the history, so it's best if this is a power of two. - * () + * * * .epoch-size: The epoch should probably be a longer integer to avoid * the possibility of overflow. diff --git a/mps/code/lockan.c b/mps/code/lockan.c index 061b63d20a9..bb10aace4ee 100644 --- a/mps/code/lockan.c +++ b/mps/code/lockan.c @@ -18,7 +18,7 @@ SRCID(lockan, "$Id$"); typedef struct LockStruct { /* ANSI fake lock structure */ - Sig sig; /* */ + Sig sig; /* */ unsigned long claims; /* # claims held by owner */ } LockStruct; diff --git a/mps/code/lockix.c b/mps/code/lockix.c index 17aab7bd014..9a9217c4dcb 100644 --- a/mps/code/lockix.c +++ b/mps/code/lockix.c @@ -51,7 +51,7 @@ SRCID(lockix, "$Id$"); */ typedef struct LockStruct { - Sig sig; /* */ + Sig sig; /* */ unsigned long claims; /* # claims held by owner */ pthread_mutex_t mut; /* the mutex itself */ } LockStruct; @@ -264,7 +264,7 @@ void (LockReleaseGlobal)(void) void LockSetup(void) { /* Claim all locks before a fork; release in the parent; - reinitialize in the child */ + reinitialize in the child */ pthread_atfork(GlobalsClaimAll, GlobalsReleaseAll, GlobalsReinitializeAll); } diff --git a/mps/code/lockw3.c b/mps/code/lockw3.c index ba177c6b68b..ce72a25aa55 100644 --- a/mps/code/lockw3.c +++ b/mps/code/lockw3.c @@ -35,7 +35,7 @@ SRCID(lockw3, "$Id$"); /* .lock.win32: Win32 lock structure; uses CRITICAL_SECTION */ typedef struct LockStruct { - Sig sig; /* */ + Sig sig; /* */ unsigned long claims; /* # claims held by the owning thread */ CRITICAL_SECTION cs; /* Win32's recursive lock thing */ } LockStruct; diff --git a/mps/code/locus.c b/mps/code/locus.c index dc3ca284e68..d70fad8f78c 100644 --- a/mps/code/locus.c +++ b/mps/code/locus.c @@ -5,8 +5,8 @@ * * DESIGN * - * See and for basic locus stuff. - * See for chains. See for the + * and for basic locus stuff. + * for chains. for the * collection strategy. */ @@ -649,7 +649,7 @@ Res PoolGenAlloc(Seg *segReturn, PoolGen pgen, SegClass klass, Size size, * Call this when the pool allocates memory to the client program via * BufferFill. * - * See + * */ void PoolGenAccountForFill(PoolGen pgen, Size size) @@ -669,7 +669,7 @@ void PoolGenAccountForFill(PoolGen pgen, Size size) * the used memory (for the purpose of scheduling collections) should * be deferred until later. * - * See + * */ void PoolGenAccountForEmpty(PoolGen pgen, Size used, Size unused, Bool deferred) @@ -695,7 +695,7 @@ void PoolGenAccountForEmpty(PoolGen pgen, Size used, Size unused, Bool deferred) * should be the amount of memory that is being condemned for the * first time. The deferred flag is as for PoolGenAccountForEmpty. * - * See + * */ void PoolGenAccountForAge(PoolGen pgen, Size wasBuffered, Size wasNew, @@ -723,7 +723,7 @@ void PoolGenAccountForAge(PoolGen pgen, Size wasBuffered, Size wasNew, * Call this when reclaiming memory, passing the amount of memory that * was reclaimed. The deferred flag is as for PoolGenAccountForEmpty. * - * See + * */ void PoolGenAccountForReclaim(PoolGen pgen, Size reclaimed, Bool deferred) @@ -748,7 +748,7 @@ void PoolGenAccountForReclaim(PoolGen pgen, Size reclaimed, Bool deferred) * (condemned at least once) and new (never condemned) memory whose * accounting was deferred (for example, during a ramp). * - * See + * */ void PoolGenUndefer(PoolGen pgen, Size oldSize, Size newSize) @@ -809,7 +809,7 @@ static void PoolGenAccountForFree(PoolGen pgen, Size size, * old, or new, respectively. The deferred flag is as for * PoolGenAccountForEmpty. * - * See + * */ void PoolGenFree(PoolGen pgen, Seg seg, Size freeSize, Size oldSize, diff --git a/mps/code/locus.h b/mps/code/locus.h index d2e41f853bc..f7f28bac7d8 100644 --- a/mps/code/locus.h +++ b/mps/code/locus.h @@ -41,7 +41,7 @@ typedef struct GenDescStruct *GenDesc; #define GenDescSig ((Sig)0x5199E4DE) /* SIGnature GEN DEsc */ typedef struct GenDescStruct { - Sig sig; /* */ + Sig sig; /* */ Serial serial; /* serial number within arena */ ZoneSet zones; /* zoneset for this generation */ Size capacity; /* capacity in bytes */ diff --git a/mps/code/message.c b/mps/code/message.c index c22fe2e5b28..a9bd99aeb09 100644 --- a/mps/code/message.c +++ b/mps/code/message.c @@ -5,7 +5,7 @@ * * DESIGN * - * .design: See (it really exists). + * .design: (it really exists). * * PURPOSE * @@ -128,7 +128,7 @@ void MessagePost(Arena arena, Message message) AVERT(Message, message); /* queueRing field must be a singleton, see */ - /* */ + /* */ AVER(!MessageOnQueue(message)); if(MessageTypeEnabled(arena, MessageGetType(message))) { /* .message.clocked: Reading the clock with ClockNow() */ diff --git a/mps/code/messtest.c b/mps/code/messtest.c index 0958d9319c7..8d0c4757400 100644 --- a/mps/code/messtest.c +++ b/mps/code/messtest.c @@ -37,7 +37,7 @@ static MessageClassStruct DFMessageClassStruct = { MessageNoGCCondemnedSize, /* GCCondemnedSize */ MessageNoGCNotCondemnedSize, /* GCNotCondemnedSize */ MessageNoGCStartWhy, /* GCStartWhy */ - MessageClassSig /* */ + MessageClassSig /* */ }; @@ -53,7 +53,7 @@ static MessageClassStruct DGCMessageClassStruct = { MessageNoGCCondemnedSize, /* GCCondemnedSize */ MessageNoGCNotCondemnedSize, /* GCNoteCondemnedSize */ MessageNoGCStartWhy, /* GCStartWhy */ - MessageClassSig /* */ + MessageClassSig /* */ }; diff --git a/mps/code/misc.h b/mps/code/misc.h index 3a5d3c18e60..2e0d97a494e 100644 --- a/mps/code/misc.h +++ b/mps/code/misc.h @@ -14,7 +14,7 @@ #define misc_h -typedef int Bool; /* */ +typedef int Bool; /* */ enum BoolEnum { FALSE = 0, TRUE = 1 @@ -176,7 +176,7 @@ typedef const struct SrcIdStruct { * Given a pointer to a field of a structure this returns a pointer to * the main structure. PARENT(foo_t, x, &(foo->x)) == foo. * - * This macro is thread-safe, see design.mps.misc.parent.thread-safe. + * This macro is thread-safe, see . * * That intermediate (void *) is required to stop some compilers complaining * about alignment of 'type *' being greater than that of 'char *'. Which @@ -196,7 +196,7 @@ typedef const struct SrcIdStruct { * conversion (which would be a compiler error) when assigning TRUE to * the field. * - * See + * */ #define BOOLFIELD(name) unsigned name : 1 @@ -215,7 +215,7 @@ typedef const struct SrcIdStruct { * * Can be used on any unsigned integral type, ty. These definitions * are _syntactic_, hence macroid, hence upper case - * (guide.c.naming.macro.special). + * . */ #define BS_EMPTY(ty) ((ty)0) diff --git a/mps/code/mpm.c b/mps/code/mpm.c index 71072b67c9d..e40f2f90644 100644 --- a/mps/code/mpm.c +++ b/mps/code/mpm.c @@ -6,7 +6,7 @@ * .purpose: Miscellaneous support for the implementation of the MPM * and pool classes. * - * .sources: */ + * .sources: */ #include "check.h" #include "misc.h" @@ -86,7 +86,7 @@ Bool MPMCheck(void) CHECKL(PageSize() % ProtGranularity() == 0); /* StackProbe mustn't skip over the stack guard page. See - * . */ + * . */ CHECKL(StackProbeDEPTH * sizeof(Word) < PageSize()); /* Check these values will fit in their bitfield. */ @@ -446,7 +446,7 @@ static Res WriteDouble(mps_lib_FILE *stream, double d) /* WriteF -- write formatted output * - * .writef.des: See , also + * .writef.des: , also * * .writef.p: There is an assumption that void * fits in Word in * the case of $P, and ULongest for $U and $B. This is checked in diff --git a/mps/code/mpm.h b/mps/code/mpm.h index a2b02b4c19f..72fd74dfad8 100644 --- a/mps/code/mpm.h +++ b/mps/code/mpm.h @@ -44,7 +44,7 @@ extern Bool MPMCheck(void); /* Miscellaneous Checks -- see */ -/* */ +/* */ #define BoolCheck(b) ((unsigned)(b) <= 1) extern Bool FunCheck(Fun f); @@ -116,7 +116,7 @@ extern Addr (AddrAlignDown)(Addr addr, Align align); extern Addr (AddrSet)(Addr target, Byte value, Size size); /* This is one of the places that implements Addr, so it's allowed to */ -/* convert to void *, see . */ +/* convert to void *, see . */ #define AddrSet(target, value, size) \ mps_lib_memset(target, (int)(value), size) @@ -164,7 +164,7 @@ extern Shift SizeFloorLog2(Size size); extern Bool (WordIsP2)(Word word); #define WordIsP2(word) ((word) > 0 && ((word) & ((word) - 1)) == 0) -/* Formatted Output -- see , */ +/* Formatted Output -- see , */ extern Res WriteF(mps_lib_FILE *stream, Count depth, ...); extern Res WriteF_v(mps_lib_FILE *stream, Count depth, va_list args); @@ -190,12 +190,12 @@ extern void QuickSort(void *array[], Count length, /* Version Determination * - * See . */ + * . */ extern char *MPSVersion(void); -/* Pool Interface -- see impl.c.pool */ +/* Pool Interface -- see */ extern Res PoolInit(Pool pool, Arena arena, PoolClass klass, ArgList args); extern void PoolFinish(Pool pool); @@ -203,7 +203,7 @@ extern Bool PoolClassCheck(PoolClass klass); extern Bool PoolCheck(Pool pool); extern Res PoolDescribe(Pool pool, mps_lib_FILE *stream, Count depth); -/* Must be thread-safe. See . */ +/* Must be thread-safe. . */ #define PoolArena(pool) ((pool)->arena) #define PoolAlignment(pool) ((pool)->alignment) #define PoolSegRing(pool) (&(pool)->segRing) @@ -286,7 +286,7 @@ typedef Pool AbstractCollectPool; DECLARE_CLASS(Pool, AbstractCollectPool, AbstractSegBufPool); -/* Message Interface -- see */ +/* Message Interface -- see */ /* -- Internal (MPM) Interface -- functions for message originator */ extern Bool MessageCheck(Message message); extern Bool MessageClassCheck(MessageClass klass); @@ -835,7 +835,7 @@ extern Bool RankSetCheck(RankSet rankSet); #define RefSetSub(rs1, rs2) BS_SUB((rs1), (rs2)) -/* Zone sets -- see design.mps.refset */ +/* Zone sets -- see */ #define ZoneSetUnion(zs1, zs2) BS_UNION(zs1, zs2) #define ZoneSetInter(zs1, zs2) BS_INTER(zs1, zs2) @@ -963,7 +963,7 @@ typedef Res (*RootIterateFn)(Root root, void *p); extern Res RootsIterate(Globals arena, RootIterateFn f, void *p); -/* Land Interface -- see */ +/* Land Interface -- see */ extern Bool LandCheck(Land land); #define LandArena(land) ((land)->arena) @@ -1017,7 +1017,7 @@ DECLARE_CLASS(Land, Land, Inst); /* STATISTIC -- gather statistics (in some varieties) * - * See . + * . */ #if defined(STATISTICS) diff --git a/mps/code/mpmst.h b/mps/code/mpmst.h index 6853f21a862..e4c278630c7 100644 --- a/mps/code/mpmst.h +++ b/mps/code/mpmst.h @@ -10,13 +10,12 @@ * * .structure: Most structures have already been declared as incomplete * types in . Most of the structures are the underlying - * aggregate types for an abstract data type. See - * guide.impl.c.naming.type.adt-aggregate.relate. + * aggregate types for an abstract data type. * * .rationale.sig: Object signatures (PoolSig, etc.) are defined here, * along with the structures, so that any code which can see a structure * can also check its signature before using any of its fields. See - * to check that signatures are unique. */ + * to check that signatures are unique. */ #ifndef mpmst_h #define mpmst_h @@ -33,15 +32,15 @@ /* PoolClassStruct -- pool class structure * - * See . + * . * * .class: The pool class structure is defined by each pool class * implementation in order to provide an interface between the MPM and - * the class (see ) via generic functions (see - * ). Pool classes use the class protocol (see - * ) and so CLASS(ABCPool) returns a PoolClass - * pointing to a PoolClassStruct of methods which implement the memory - * management policy for pool class ABC. + * the class via generic functions . Pool + * classes use the class protocol and so + * CLASS(ABCPool) returns a PoolClass pointing to a PoolClassStruct of + * methods which implement the memory management policy for pool class + * ABC. * * .class.end-sig: The class structure has a signature at the end. This * causes the compiler to complain if the class structure is extended @@ -80,14 +79,14 @@ typedef struct mps_pool_class_s { * a "subclass" of the pool structure (the "outer structure") which * contains PoolStruct as a a field. The outer structure holds the * class-specific part of the pool's state. See , - * . + * . */ #define PoolSig ((Sig)0x519B0019) /* SIGnature POOL */ typedef struct mps_pool_s { /* generic structure */ InstStruct instStruct; - Sig sig; /* */ + Sig sig; /* */ Serial serial; /* from arena->poolSerial */ Arena arena; /* owning arena */ RingStruct arenaRing; /* link in list of pools in arena */ @@ -102,14 +101,14 @@ typedef struct mps_pool_s { /* generic structure */ /* MFSStruct -- MFS (Manual Fixed Small) pool outer structure * - * .mfs: See , . + * .mfs: See , . * * The MFS outer structure is declared here because it is inlined * in the control pool structure which is inlined in the arena. Normally, * pool outer structures are declared with the pools. * * The signature is placed at the end, see - * . */ + * . */ #define MFSSig ((Sig)0x5193F599) /* SIGnature MFS */ @@ -123,19 +122,20 @@ typedef struct MFSStruct { /* MFS outer structure */ Size total; /* total size allocated from arena */ Size free; /* free space in pool */ RingStruct extentRing; /* ring of extents in pool */ - Sig sig; /* */ + Sig sig; /* */ } MFSStruct; /* MessageClassStruct -- Message Class structure * - * See (and , - * and ). */ + * , , + * and . + */ #define MessageClassSig ((Sig)0x519359c1) /* SIGnature MeSsaGe CLass */ typedef struct MessageClassStruct { - Sig sig; /* */ + Sig sig; /* */ const char *name; /* Human readable Class name */ MessageType type; /* Message Type */ @@ -154,17 +154,17 @@ typedef struct MessageClassStruct { /* methods specific to MessageTypeGCSTART */ MessageGCStartWhyMethod gcStartWhy; - Sig endSig; /* */ + Sig endSig; /* */ } MessageClassStruct; #define MessageSig ((Sig)0x5193e559) /* SIG MESSaGe */ /* MessageStruct -- Message structure * - * See . */ + * . */ typedef struct mps_message_s { - Sig sig; /* */ + Sig sig; /* */ Arena arena; /* owning arena */ MessageClass klass; /* Message Class Structure */ Clock postedClock; /* mps_clock() at post time, or 0 */ @@ -174,7 +174,7 @@ typedef struct mps_message_s { /* SegClassStruct -- segment class structure * - * See & . + * & . * * .seg.class: The segment class structure is defined by each segment * class implementation in order to provide a generic interface to @@ -215,7 +215,7 @@ typedef struct SegClassStruct { /* SegStruct -- segment structure * * .seg: Segments are the basic units of protection and tracer activity - * for allocated memory. See . */ + * for allocated memory. . */ #define SegSig ((Sig)0x5195E999) /* SIGnature SEG */ @@ -225,7 +225,7 @@ typedef struct SegStruct { /* segment structure */ Tract firstTract; /* first tract of segment */ RingStruct poolRing; /* link in list of segs in pool */ Addr limit; /* limit of segment */ - unsigned depth : ShieldDepthWIDTH; /* see design.mps.shield.def.depth */ + unsigned depth : ShieldDepthWIDTH; /* see */ BOOLFIELD(queued); /* in shield queue? */ AccessSet pm : AccessLIMIT; /* protection mode, */ AccessSet sm : AccessLIMIT; /* shield mode, */ @@ -240,7 +240,7 @@ typedef struct SegStruct { /* segment structure */ /* GCSegStruct -- GCable segment structure * * .seggc: GCSeg is a subclass of Seg with support for buffered - * allocation and GC. See . */ + * allocation and GC. . */ #define GCSegSig ((Sig)0x5199C5E9) /* SIGnature GC SEG */ @@ -250,7 +250,7 @@ typedef struct GCSegStruct { /* GC segment structure */ RefSet summary; /* summary of references out of seg */ Buffer buffer; /* non-NULL if seg is buffered */ RingStruct genRing; /* link in list of segs in gen */ - Sig sig; /* */ + Sig sig; /* */ } GCSegStruct; @@ -258,7 +258,7 @@ typedef struct GCSegStruct { /* GC segment structure */ * * .locus-pref: arena memory users (pool class code) need a way of * expressing preferences about the locus of the segments they - * allocate. See . + * allocate. . */ #define LocusPrefSig ((Sig)0x51970CB6) /* SIGnature LOCus PRef */ @@ -273,7 +273,7 @@ typedef struct LocusPrefStruct { /* locus placement preferences */ /* BufferClassStruct -- buffer class structure * - * See & . + * & . * * .buffer.class: The buffer class structure is defined by each buffer * class implementation in order to provide a generic interface to @@ -298,10 +298,10 @@ typedef struct BufferClassStruct { /* BufferStruct -- allocation buffer structure * - * See , . + * See , . * * The buffer contains an AP which may be exported to the client. - * AP are part of the design of buffers see . + * AP are part of the design of buffers see . * The allocation point is exported to the client code so that it can * do in-line buffered allocation. */ @@ -310,7 +310,7 @@ typedef struct BufferClassStruct { typedef struct BufferStruct { InstStruct instStruct; - Sig sig; /* */ + Sig sig; /* */ Serial serial; /* from pool->bufferSerial */ Arena arena; /* owning arena */ Pool pool; /* owning pool */ @@ -339,13 +339,13 @@ typedef struct SegBufStruct { BufferStruct bufferStruct; /* superclass fields must come first */ RankSet rankSet; /* ranks of references being created */ Seg seg; /* segment being buffered */ - Sig sig; /* */ + Sig sig; /* */ } SegBufStruct; /* FormatStruct -- object format structure * - * See design.mps.format-interface, . + * , . * * .single: In future, when more variants are added, FormatStruct should * really be replaced by a collection of format classes. */ @@ -399,14 +399,14 @@ typedef struct mps_fmt_s { #define ScanStateSig ((Sig)0x5195CA45) /* SIGnature SCAN State */ typedef struct ScanStateStruct { - Sig sig; /* */ + Sig sig; /* */ struct mps_ss_s ss_s; /* .ss */ Arena arena; /* owning arena */ SegFixMethod fix; /* third stage fix function */ void *fixClosure; /* see .ss.fix-closure */ TraceSet traces; /* traces to scan for */ Rank rank; /* reference rank of scanning */ - Bool wasMarked; /* design.mps.fix.protocol.was-ready */ + Bool wasMarked; /* */ RefSet fixedSummary; /* accumulated summary of fixed references */ STATISTIC_DECL(Count fixRefCount) /* refs which pass zone check */ STATISTIC_DECL(Count segRefCount) /* refs which refer to segs */ @@ -425,7 +425,7 @@ typedef struct ScanStateStruct { #define TraceSig ((Sig)0x51924ACE) /* SIGnature TRACE */ typedef struct TraceStruct { - Sig sig; /* */ + Sig sig; /* */ TraceId ti; /* index into TraceSets */ Arena arena; /* owning arena */ TraceStartWhy why; /* why the trace began */ @@ -505,12 +505,12 @@ typedef struct mps_arena_class_s { typedef struct GlobalsStruct { Sig sig; - /* general fields () */ + /* general fields */ RingStruct globalRing; /* node in global ring of arenas */ Lock lock; /* arena's lock */ - /* polling fields () */ - double pollThreshold; /* */ + /* polling fields */ + double pollThreshold; /* */ Bool insidePoll; Bool clamped; /* prevent background activity */ double fillMutatorSize; /* total bytes filled, mutator buffers */ @@ -519,35 +519,35 @@ typedef struct GlobalsStruct { double fillInternalSize; /* total bytes filled, internal buffers */ double emptyInternalSize; /* total bytes emptied, internal buffers */ - /* version field () */ + /* version field */ const char *mpsVersionString; /* MPSVersion() */ - /* buffer fields () */ - Bool bufferLogging; /* */ + /* buffer fields */ + Bool bufferLogging; /* */ - /* pool fields () */ + /* pool fields */ RingStruct poolRing; /* ring of pools in arena */ Serial poolSerial; /* serial of next created pool */ Count systemPools; /* count of pools remaining at ArenaDestroy */ - /* root fields () */ + /* root fields */ RingStruct rootRing; /* ring of roots attached to arena */ Serial rootSerial; /* serial of next root */ - /* remember summary () */ + /* remember summary */ RingStruct rememberedSummaryRing; /* index into next free slot in block. 0 means that a new block should be allocated and appended. */ Index rememberedSummaryIndex; - /* locus () */ + /* locus */ Chain defaultChain; /* default chain for GC pool */ } GlobalsStruct; /* LandClassStruct -- land class structure * - * See . + * . */ #define LandClassSig ((Sig)0x5197A4DC) /* SIGnature LAND Class */ @@ -573,14 +573,14 @@ typedef struct LandClassStruct { /* LandStruct -- generic land structure * - * See , + * , */ #define LandSig ((Sig)0x5197A4D9) /* SIGnature LAND */ typedef struct LandStruct { InstStruct instStruct; - Sig sig; /* */ + Sig sig; /* */ Arena arena; /* owning arena */ Align alignment; /* alignment of addresses */ Bool inLand; /* prevent reentrance */ @@ -654,7 +654,7 @@ typedef struct FreelistStruct { * * See QuickSort in mpm.c. This exists so that the caller can make * the choice about where to allocate the memory, since the MPS has to - * operate in tight stack constraints -- see design.mps.sp. + * operate in tight stack constraints -- see . */ typedef struct SortStruct { @@ -666,14 +666,14 @@ typedef struct SortStruct { /* ShieldStruct -- per-arena part of the shield * - * See design.mps.shield, impl.c.shield. + * , . */ #define ShieldSig ((Sig)0x519581E1) /* SIGnature SHEILd */ typedef struct ShieldStruct { - Sig sig; /* design.mps.sig */ - BOOLFIELD(inside); /* design.mps.shield.def.inside */ + Sig sig; /* */ + BOOLFIELD(inside); /* */ BOOLFIELD(suspended); /* mutator suspended? */ BOOLFIELD(queuePending); /* queue insertion pending? */ Seg *queue; /* queue of unsynced segs */ @@ -689,23 +689,23 @@ typedef struct ShieldStruct { /* History -- location dependency history * - * See design.mps.arena.ld. + * . */ #define HistorySig ((Sig)0x51981520) /* SIGnature HISTOry */ typedef struct HistoryStruct { - Sig sig; /* design.mps.sig */ - Epoch epoch; /* */ - RefSet prehistory; /* */ - RefSet history[LDHistoryLENGTH]; /* */ + Sig sig; /* */ + Epoch epoch; /* */ + RefSet prehistory; /* */ + RefSet history[LDHistoryLENGTH]; /* */ } HistoryStruct; /* MVFFStruct -- MVFF (Manual Variable First Fit) pool outer structure * * The signature is placed at the end, see - * + * * * The MVFF pool outer structure is declared here because it is the * control pool structure which is inlined in the arena. Normally, @@ -727,7 +727,7 @@ typedef struct MVFFStruct { /* MVFF pool outer structure */ FailoverStruct foStruct; /* free memory (fail-over mechanism) */ Bool firstFit; /* as opposed to last fit */ Bool slotHigh; /* prefers high part of large block */ - Sig sig; /* */ + Sig sig; /* */ } MVFFStruct; @@ -741,11 +741,11 @@ typedef struct MVFFStruct { /* MVFF pool outer structure */ typedef struct mps_arena_s { InstStruct instStruct; - GlobalsStruct globals; /* must be first, see */ + GlobalsStruct globals; /* must be first, see */ Serial serial; - Bool poolReady; /* */ - MVFFStruct controlPoolStruct; /* */ + Bool poolReady; /* */ + MVFFStruct controlPoolStruct; /* */ Size reserved; /* total reserved address space */ Size committed; /* total committed memory */ @@ -756,7 +756,7 @@ typedef struct mps_arena_s { double pauseTime; /* maximum pause time, in seconds */ Shift zoneShift; /* see also */ - Size grainSize; /* */ + Size grainSize; /* */ Tract lastTract; /* most recently allocated tract */ Addr lastTractBase; /* base address of lastTract */ @@ -772,39 +772,39 @@ typedef struct mps_arena_s { ZoneSet freeZones; /* zones not yet allocated */ Bool zoned; /* use zoned allocation? */ - /* locus fields () */ + /* locus fields */ GenDescStruct topGen; /* generation descriptor for dynamic gen */ Serial genSerial; /* serial of next generation */ - /* format fields () */ + /* format fields */ RingStruct formatRing; /* ring of formats attached to arena */ Serial formatSerial; /* serial of next format */ - /* message fields (, ) */ + /* message fields , */ RingStruct messageRing; /* ring of pending messages */ BT enabledMessageTypes; /* map of which types are enabled */ - Count droppedMessages; /* */ + Count droppedMessages; /* */ - /* finalization fields (), */ + /* finalization fields , */ Bool isFinalPool; /* indicator for finalPool */ Pool finalPool; /* either NULL or an MRG pool */ - /* thread fields () */ + /* thread fields */ RingStruct threadRing; /* ring of attached threads */ RingStruct deadRing; /* ring of dead threads */ Serial threadSerial; /* serial of next thread */ ShieldStruct shieldStruct; - /* trace fields () */ + /* trace fields */ TraceSet busyTraces; /* set of running traces */ TraceSet flippedTraces; /* set of running and flipped traces */ TraceStruct trace[TraceLIMIT]; /* trace structures. See - */ + */ - /* trace ancillary fields () */ - TraceStartMessage tsMessage[TraceLIMIT]; /* */ - TraceMessage tMessage[TraceLIMIT]; /* */ + /* trace ancillary fields */ + TraceStartMessage tsMessage[TraceLIMIT]; /* */ + TraceMessage tMessage[TraceLIMIT]; /* */ /* policy fields */ double tracedWork; @@ -818,7 +818,7 @@ typedef struct mps_arena_s { Bool emergency; /* garbage collect in emergency mode? */ - /* Stack scanning -- see design.mps.stack-scan */ + /* Stack scanning -- see */ void *stackWarm; /* NULL or stack pointer warmer than mutator state. */ diff --git a/mps/code/mpmtypes.h b/mps/code/mpmtypes.h index c01f68c8f71..16a352d3657 100644 --- a/mps/code/mpmtypes.h +++ b/mps/code/mpmtypes.h @@ -4,7 +4,7 @@ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * Portions copyright (c) 2001 Global Graphics Software. * - * .design: + * .design: * * .rationale: Types and type constants are almost all defined * in this header, in advance of any declarations of prototypes @@ -26,88 +26,88 @@ /* TYPES */ -typedef unsigned long Sig; /* */ -typedef int Res; /* */ +typedef unsigned long Sig; /* */ +typedef int Res; /* */ -typedef void (*Fun)(void); /* */ -typedef MPS_T_WORD Word; /* */ -typedef unsigned char Byte; /* */ -typedef struct AddrStruct *Addr; /* */ -typedef const struct AddrStruct *ReadonlyAddr; /* */ -typedef Word Size; /* */ -typedef Word Count; /* */ -typedef Word Index; /* */ -typedef Word Align; /* */ -typedef Word Work; /* */ -typedef unsigned Shift; /* */ -typedef unsigned Serial; /* */ -typedef Addr Ref; /* */ -typedef void *Pointer; /* */ -typedef Word Clock; /* */ -typedef MPS_T_ULONGEST ULongest; /* */ +typedef void (*Fun)(void); /* */ +typedef MPS_T_WORD Word; /* */ +typedef unsigned char Byte; /* */ +typedef struct AddrStruct *Addr; /* */ +typedef const struct AddrStruct *ReadonlyAddr; /* */ +typedef Word Size; /* */ +typedef Word Count; /* */ +typedef Word Index; /* */ +typedef Word Align; /* */ +typedef Word Work; /* */ +typedef unsigned Shift; /* */ +typedef unsigned Serial; /* */ +typedef Addr Ref; /* */ +typedef void *Pointer; /* */ +typedef Word Clock; /* */ +typedef MPS_T_ULONGEST ULongest; /* */ typedef mps_arg_s ArgStruct; typedef mps_arg_s *Arg; typedef mps_arg_s *ArgList; typedef mps_key_t Key; -typedef Word RefSet; /* */ -typedef Word ZoneSet; /* */ -typedef unsigned Rank; /* */ -typedef unsigned RankSet; /* */ -typedef unsigned RootMode; /* */ -typedef Size Epoch; /* */ -typedef unsigned TraceId; /* */ -typedef unsigned TraceSet; /* */ -typedef unsigned TraceState; /* */ -typedef unsigned TraceStartWhy; /* */ -typedef unsigned AccessSet; /* */ -typedef unsigned Attr; /* */ -typedef unsigned RootVar; /* */ +typedef Word RefSet; /* */ +typedef Word ZoneSet; /* */ +typedef unsigned Rank; /* */ +typedef unsigned RankSet; /* */ +typedef unsigned RootMode; /* */ +typedef Size Epoch; /* */ +typedef unsigned TraceId; /* */ +typedef unsigned TraceSet; /* */ +typedef unsigned TraceState; /* */ +typedef unsigned TraceStartWhy; /* */ +typedef unsigned AccessSet; /* */ +typedef unsigned Attr; /* */ +typedef unsigned RootVar; /* */ -typedef Word *BT; /* */ +typedef Word *BT; /* */ typedef struct BootBlockStruct *BootBlock; /* */ -typedef struct BufferStruct *Buffer; /* */ -typedef struct SegBufStruct *SegBuf; /* */ -typedef struct BufferClassStruct *BufferClass; /* */ -typedef unsigned BufferMode; /* */ -typedef struct mps_fmt_s *Format; /* design.mps.format */ +typedef struct BufferStruct *Buffer; /* */ +typedef struct SegBufStruct *SegBuf; /* */ +typedef struct BufferClassStruct *BufferClass; /* */ +typedef unsigned BufferMode; /* */ +typedef struct mps_fmt_s *Format; /* */ typedef struct LockStruct *Lock; /* * */ -typedef struct mps_pool_s *Pool; /* */ +typedef struct mps_pool_s *Pool; /* */ typedef Pool AbstractPool; typedef struct mps_pool_class_s *PoolClass; /* */ -typedef struct TraceStruct *Trace; /* */ -typedef struct ScanStateStruct *ScanState; /* */ -typedef struct mps_chain_s *Chain; /* */ -typedef struct TractStruct *Tract; /* */ +typedef struct TraceStruct *Trace; /* */ +typedef struct ScanStateStruct *ScanState; /* */ +typedef struct mps_chain_s *Chain; /* */ +typedef struct TractStruct *Tract; /* */ typedef struct ChunkStruct *Chunk; /* */ typedef struct ChunkCacheEntryStruct *ChunkCacheEntry; /* */ typedef union PageUnion *Page; /* */ typedef struct SegStruct *Seg; /* */ typedef struct GCSegStruct *GCSeg; /* */ typedef struct SegClassStruct *SegClass; /* */ -typedef struct LocusPrefStruct *LocusPref; /* , */ -typedef unsigned LocusPrefKind; /* , */ -typedef struct mps_arena_class_s *ArenaClass; /* */ -typedef struct mps_arena_s *Arena; /* */ +typedef struct LocusPrefStruct *LocusPref; /* , */ +typedef unsigned LocusPrefKind; /* , */ +typedef struct mps_arena_class_s *ArenaClass; /* */ +typedef struct mps_arena_s *Arena; /* */ typedef Arena AbstractArena; -typedef struct GlobalsStruct *Globals; /* */ +typedef struct GlobalsStruct *Globals; /* */ typedef struct VMStruct *VM; /* * */ typedef struct RootStruct *Root; /* */ typedef struct mps_thr_s *Thread; /* * */ -typedef struct MutatorContextStruct *MutatorContext; /* */ +typedef struct MutatorContextStruct *MutatorContext; /* */ typedef struct PoolDebugMixinStruct *PoolDebugMixin; typedef struct AllocPatternStruct *AllocPattern; -typedef struct AllocFrameStruct *AllocFrame; /* */ +typedef struct AllocFrameStruct *AllocFrame; /* */ typedef struct StackContextStruct *StackContext; -typedef struct RangeStruct *Range; /* */ +typedef struct RangeStruct *Range; /* */ typedef struct RangeTreeStruct *RangeTree; -typedef struct LandStruct *Land; /* */ -typedef struct LandClassStruct *LandClass; /* */ -typedef unsigned FindDelete; /* */ -typedef struct ShieldStruct *Shield; /* design.mps.shield */ -typedef struct HistoryStruct *History; /* design.mps.arena.ld */ -typedef struct PoolGenStruct *PoolGen; /* */ +typedef struct LandStruct *Land; /* */ +typedef struct LandClassStruct *LandClass; /* */ +typedef unsigned FindDelete; /* */ +typedef struct ShieldStruct *Shield; /* */ +typedef struct HistoryStruct *History; /* */ +typedef struct PoolGenStruct *PoolGen; /* */ /* Arena*Method -- see */ @@ -150,7 +150,7 @@ typedef void (*FormattedObjectsVisitor)(Addr obj, Format fmt, Pool pool, typedef void (*FreeBlockVisitor)(Addr base, Addr limit, Pool pool, void *p); -/* Seg*Method -- see */ +/* Seg*Method -- see */ typedef Res (*SegInitMethod)(Seg seg, Pool pool, Addr base, Size size, ArgList args); @@ -183,7 +183,7 @@ typedef void (*SegWalkMethod)(Seg seg, Format format, FormattedObjectsVisitor f, void *v, size_t s); -/* Buffer*Method -- see */ +/* Buffer*Method -- see */ typedef void (*BufferVarargsMethod)(ArgStruct args[], va_list varargs); typedef Res (*BufferInitMethod)(Buffer buffer, Pool pool, Bool isMutator, ArgList args); @@ -196,7 +196,7 @@ typedef void (*BufferSetRankSetMethod)(Buffer buffer, RankSet rankSet); typedef void (*BufferReassignSegMethod)(Buffer buffer, Seg seg); -/* Pool*Method -- see */ +/* Pool*Method -- see */ /* Order of types corresponds to PoolClassStruct in */ @@ -222,14 +222,14 @@ typedef Size (*PoolSizeMethod)(Pool pool); /* Messages * - * See + * */ typedef unsigned MessageType; typedef struct mps_message_s *Message; typedef struct MessageClassStruct *MessageClass; -/* Message*Method -- */ +/* Message*Method -- */ typedef void (*MessageDeleteMethod)(Message message); typedef void (*MessageFinalizationRefMethod) @@ -239,13 +239,13 @@ typedef Size (*MessageGCCondemnedSizeMethod)(Message message); typedef Size (*MessageGCNotCondemnedSizeMethod)(Message message); typedef const char * (*MessageGCStartWhyMethod)(Message message); -/* Message Types -- and elsewhere */ +/* Message Types -- and elsewhere */ typedef struct TraceStartMessageStruct *TraceStartMessage; typedef struct TraceMessageStruct *TraceMessage; /* trace end */ -/* Land*Method -- see */ +/* Land*Method -- see */ typedef Res (*LandInitMethod)(Land land, Arena arena, Align alignment, ArgList args); typedef Size (*LandSizeMethod)(Land land); @@ -262,11 +262,11 @@ typedef Res (*LandFindInZonesMethod)(Bool *foundReturn, Range rangeReturn, Range /* CONSTANTS */ -/* */ +/* */ #define SigInvalid ((Sig)0x51915BAD) /* SIGnature IS BAD */ #define SizeMAX ((Size)-1) -#define AccessSetEMPTY ((AccessSet)0) /* */ +#define AccessSetEMPTY ((AccessSet)0) /* */ #define AccessREAD ((AccessSet)(1<<0)) #define AccessWRITE ((AccessSet)(1<<1)) #define AccessLIMIT (2) @@ -300,7 +300,7 @@ enum { #define BufferModeTRANSITION ((BufferMode)(1<<3)) -/* Rank constants -- see */ +/* Rank constants -- see */ /* These definitions must match . */ /* This is checked by . */ @@ -325,7 +325,7 @@ enum { #define RootModePROTECTABLE_INNER ((RootMode)1<<2) -/* Root Variants -- see +/* Root Variants -- see * * .rootvar: Synchonize with */ @@ -341,12 +341,12 @@ enum { }; -/* .result-codes: Result Codes -- see */ +/* .result-codes: Result Codes -- see */ _mps_ENUM_DEF(_mps_RES_ENUM, Res) -/* TraceStates -- see */ +/* TraceStates -- see */ enum { TraceINIT = 1, @@ -389,7 +389,7 @@ enum { }; -/* MessageTypes -- see */ +/* MessageTypes -- see */ /* .message.types: Keep in sync with */ enum { @@ -400,7 +400,7 @@ enum { }; -/* FindDelete operations -- see */ +/* FindDelete operations -- see */ enum { FindDeleteNONE = 1, /* don't delete after finding */ diff --git a/mps/code/mps.h b/mps/code/mps.h index 70a9561a513..bb87968eed3 100644 --- a/mps/code/mps.h +++ b/mps/code/mps.h @@ -99,8 +99,8 @@ typedef mps_word_t mps_label_t; /* telemetry label */ _mps_ENUM_DEF(_mps_RES_ENUM, MPS_RES_) /* Format and Root Method Types */ -/* see design.mps.root-interface */ -/* see design.mps.format-interface */ +/* see */ +/* see */ typedef struct mps_scan_tag_s *mps_scan_tag_t; typedef struct mps_scan_tag_s { diff --git a/mps/code/mpsi.c b/mps/code/mpsi.c index 782df046140..525c42d0035 100644 --- a/mps/code/mpsi.c +++ b/mps/code/mpsi.c @@ -8,9 +8,9 @@ * , and the internal MPM interfaces, as defined by * . .purpose.check: It performs checking of the C client's * usage of the MPS Interface. .purpose.thread: It excludes multiple - * threads from the MPM by locking the Arena (see ). + * threads from the MPM by locking the Arena (see ). * - * .design: + * .design: * * * NOTES @@ -22,7 +22,7 @@ * .note.avert: Use AVERT only when "inside" the Arena (between * ArenaEnter and ArenaLeave), as it's not thread-safe in all * varieties. Use AVER(TESTT) otherwise. See - * . + * . * * * TRANSGRESSIONS (rule.impl.trans) @@ -41,7 +41,7 @@ * In future, it will. * * .naming: (rule.impl.guide) The exported identifiers do not follow the - * normal MPS naming conventions. See . + * normal MPS naming conventions. . */ #include "mpm.h" @@ -84,7 +84,7 @@ static Bool mpsi_check(void) == (int)_mps_MESSAGE_TYPE_GC_START); /* The external idea of a word width and the internal one */ - /* had better match. See . */ + /* had better match. . */ CHECKL(sizeof(mps_word_t) == sizeof(void *)); CHECKL(COMPATTYPE(mps_word_t, Word)); @@ -93,8 +93,8 @@ static Bool mpsi_check(void) CHECKL(COMPATTYPE(mps_addr_t, Addr)); /* The external idea of size and the internal one had */ - /* better match. See */ - /* and . */ + /* better match. */ + /* and . */ CHECKL(COMPATTYPE(size_t, Size)); /* Clock values are passed from external to internal and back */ @@ -542,7 +542,7 @@ mps_res_t mps_fmt_create_k(mps_fmt_t *mps_fmt_o, * * .fmt.create.A.purpose: This function converts an object format spec * of variant "A" into an MPM Format object. See - * for justification of the way that + * for justification of the way that * the format structure is declared as "mps_fmt_A". */ mps_res_t mps_fmt_create_A(mps_fmt_t *mps_fmt_o, @@ -807,7 +807,7 @@ mps_res_t mps_alloc(mps_addr_t *p_o, mps_pool_t pool, size_t size) AVERT_CRITICAL(Pool, pool); AVER_CRITICAL(size > 0); /* Note: class may allow unaligned size, see */ - /* . */ + /* . */ /* Rest ignored, see .varargs. */ res = PoolAlloc(&p, pool, size); @@ -847,7 +847,7 @@ void mps_free(mps_pool_t pool, mps_addr_t p, size_t size) AVERT_CRITICAL(Pool, pool); AVER_CRITICAL(size > 0); /* Note: class may allow unaligned size, see */ - /* . */ + /* . */ PoolFree(pool, (Addr)p, size); ArenaLeave(arena); @@ -998,7 +998,7 @@ mps_bool_t (mps_commit)(mps_ap_t mps_ap, mps_addr_t p, size_t size) /* mps_ap_frame_push -- push a new allocation frame * - * See . */ + * . */ mps_res_t (mps_ap_frame_push)(mps_frame_t *frame_o, mps_ap_t mps_ap) { @@ -1039,7 +1039,7 @@ mps_res_t (mps_ap_frame_push)(mps_frame_t *frame_o, mps_ap_t mps_ap) /* mps_ap_frame_pop -- push a new allocation frame * - * See . */ + * . */ mps_res_t (mps_ap_frame_pop)(mps_ap_t mps_ap, mps_frame_t frame) { @@ -1686,7 +1686,7 @@ void mps_ld_reset(mps_ld_t ld, mps_arena_t arena) /* mps_ld_add -- add a reference to a location dependency * - * See . */ + * . */ void mps_ld_add(mps_ld_t ld, mps_arena_t arena, mps_addr_t addr) { @@ -1696,7 +1696,7 @@ void mps_ld_add(mps_ld_t ld, mps_arena_t arena, mps_addr_t addr) /* mps_ld_merge -- merge two location dependencies * - * See . */ + * . */ void mps_ld_merge(mps_ld_t ld, mps_arena_t arena, mps_ld_t from) @@ -1707,7 +1707,7 @@ void mps_ld_merge(mps_ld_t ld, mps_arena_t arena, /* mps_ld_isstale -- check whether a location dependency is "stale" * - * See . */ + * . */ mps_bool_t mps_ld_isstale(mps_ld_t ld, mps_arena_t arena, mps_addr_t addr) diff --git a/mps/code/mpsio.h b/mps/code/mpsio.h index 77f44c46a38..8d31f2c0d1a 100644 --- a/mps/code/mpsio.h +++ b/mps/code/mpsio.h @@ -4,7 +4,7 @@ * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. * * .readership: For MPS client application developers, MPS developers. - * .sources: + * .sources: */ #ifndef mpsio_h diff --git a/mps/code/mpsioan.c b/mps/code/mpsioan.c index c383cd4507a..b106b4d9df3 100644 --- a/mps/code/mpsioan.c +++ b/mps/code/mpsioan.c @@ -4,7 +4,7 @@ * Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license. * * .readership: For MPS client application developers and MPS developers. - * .sources: + * .sources: */ #include "mpsio.h" diff --git a/mps/code/mpslib.h b/mps/code/mpslib.h index e8e2d8dfd95..9edf9834239 100644 --- a/mps/code/mpslib.h +++ b/mps/code/mpslib.h @@ -4,7 +4,7 @@ * Copyright (c) 2001-2017 Ravenbrook Limited. See end of file for license. * * .readership: MPS client application developers, MPS developers. - * .sources: + * .sources: * * .purpose: The purpose of this file is to declare the functions and types * required for the MPS library interface. diff --git a/mps/code/mpsliban.c b/mps/code/mpsliban.c index 4a9c28d7ab3..3f6bd367cf2 100644 --- a/mps/code/mpsliban.c +++ b/mps/code/mpsliban.c @@ -11,7 +11,7 @@ * Interface. * * .readership: For MPS client application developers and MPS developers. - * .sources: + * .sources: * * * TRANSGRESSIONS (rule.impl.trans) diff --git a/mps/code/nailboard.c b/mps/code/nailboard.c index 90d26c84295..7ecbe20f796 100644 --- a/mps/code/nailboard.c +++ b/mps/code/nailboard.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2014 Ravenbrook Limited. See end of file for license. * - * .sources: . + * .sources: . */ #include "bt.h" @@ -14,14 +14,14 @@ SRCID(nailboard, "$Id$"); -/* Log2 of scale factor between levels. See . */ +/* Log2 of scale factor between levels. . */ #define LEVEL_SHIFT MPS_WORD_SHIFT /* nailboardLevels -- return the number of levels in a nailboard with * the given number of nails. * - * See + * */ static Count nailboardLevels(Count nails) @@ -331,7 +331,7 @@ Bool NailboardIsSetRange(Nailboard board, Addr base, Addr limit) * object in every nailed segment. It must take time that is no more * than logarithmic in the size of the range. * - * See . + * . */ Bool NailboardIsResRange(Nailboard board, Addr base, Addr limit) @@ -350,11 +350,11 @@ Bool NailboardIsResRange(Nailboard board, Addr base, Addr limit) nailboardIndexRange(&ibase, &ilimit, board, i, base, limit); if (BTIsResRange(board->level[i], ibase, ilimit)) /* The entire range was clear. This is expected to be the common - * case. */ + * case. */ return TRUE; if (i == 0) /* At level 0 there is only one nail per bit so the set bit is known - * to be within the range. */ + * to be within the range. */ return FALSE; } while (ibase + 1 >= ilimit - 1); @@ -377,7 +377,7 @@ Bool NailboardIsResRange(Nailboard board, Addr base, Addr limit) -- j; nailboardIndexRange(&jbase, &jlimit, board, j, base, leftLimit); if (jbase + 1 < jlimit && !BTIsResRange(board->level[j], jbase + 1, jlimit)) - return FALSE; /* */ + return FALSE; /* */ if (!BTGet(board->level[j], jbase)) break; if (j == 0) @@ -392,7 +392,7 @@ Bool NailboardIsResRange(Nailboard board, Addr base, Addr limit) -- j; nailboardIndexRange(&jbase, &jlimit, board, j, rightBase, limit); if (jbase < jlimit - 1 && !BTIsResRange(board->level[j], jbase, jlimit - 1)) - return FALSE; /* */ + return FALSE; /* */ if (!BTGet(board->level[j], jlimit - 1)) break; if (j == 0) diff --git a/mps/code/nailboard.h b/mps/code/nailboard.h index 538a46e9249..88909c09286 100644 --- a/mps/code/nailboard.h +++ b/mps/code/nailboard.h @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2014 Ravenbrook Limited. See end of file for license. * - * .source: . + * .source: . */ #ifndef nailboard_h diff --git a/mps/code/policy.c b/mps/code/policy.c index 77ee5b2ec21..e1fbbe0008c 100644 --- a/mps/code/policy.c +++ b/mps/code/policy.c @@ -6,7 +6,7 @@ * This module collects the decision-making code for the MPS, so that * policy can be maintained and adjusted. * - * .sources: . + * .sources: . */ #include "locus.h" @@ -205,7 +205,7 @@ Bool PolicyShouldCollectWorld(Arena arena, double availableTime, * * This is only called if ChainDeferral returned a value sufficiently * low that we decided to start the collection. (Usually such values - * are less than zero; see .) + * are less than zero; see .) */ static Res policyCondemnChain(double *mortalityReturn, Chain chain, Trace trace) diff --git a/mps/code/pool.c b/mps/code/pool.c index b62592c5a1a..e9b903cb40c 100644 --- a/mps/code/pool.c +++ b/mps/code/pool.c @@ -6,7 +6,7 @@ * * DESIGN * - * .design: See . + * .design: . * * PURPOSE * @@ -118,7 +118,7 @@ ARG_DEFINE_KEY(INTERIOR, Bool); /* PoolInit -- initialize a pool * * Initialize the generic fields of the pool and calls class-specific - * init. See . + * init. . */ Res PoolInit(Pool pool, Arena arena, PoolClass klass, ArgList args) diff --git a/mps/code/poolabs.c b/mps/code/poolabs.c index e1fff2d598e..836857e1602 100644 --- a/mps/code/poolabs.c +++ b/mps/code/poolabs.c @@ -105,7 +105,7 @@ Res PoolAbsInit(Pool pool, Arena arena, PoolClass klass, ArgList args) pool->serial = ArenaGlobals(arena)->poolSerial; ++ArenaGlobals(arena)->poolSerial; - /* Initialise signature last; see */ + /* Initialise signature last; see */ SetClassOfPoly(pool, CLASS(AbstractPool)); pool->sig = PoolSig; AVERT(Pool, pool); @@ -202,7 +202,7 @@ DEFINE_CLASS(Pool, AbstractCollectPool, klass) /* PoolNo*, PoolTriv* -- Trivial and non-methods for Pool Classes * - * See and + * and */ Res PoolNoAlloc(Addr *pReturn, Pool pool, Size size) diff --git a/mps/code/poolamc.c b/mps/code/poolamc.c index fbea87bd245..57a41df4c8f 100644 --- a/mps/code/poolamc.c +++ b/mps/code/poolamc.c @@ -4,7 +4,7 @@ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * Portions copyright (C) 2002 Global Graphics Software. * - * .sources: . + * .sources: . */ #include "mpscamc.h" @@ -127,9 +127,9 @@ static Bool amcSegCheck(amcSeg amcseg) CHECKD(Nailboard, amcseg->board); CHECKL(SegNailed(MustBeA(Seg, amcseg)) != TraceSetEMPTY); } - /* CHECKL(BoolCheck(amcseg->accountedAsBuffered)); */ - /* CHECKL(BoolCheck(amcseg->old)); */ - /* CHECKL(BoolCheck(amcseg->deferred)); */ + /* CHECKL(BoolCheck(amcseg->accountedAsBuffered)); */ + /* CHECKL(BoolCheck(amcseg->old)); */ + /* CHECKL(BoolCheck(amcseg->deferred)); */ return TRUE; } @@ -253,7 +253,7 @@ static void AMCSegSketch(Seg seg, char *pbSketch, size_t cbSketch) /* AMCSegDescribe -- describe the contents of a segment * - * See . + * . */ static Res AMCSegDescribe(Inst inst, mps_lib_FILE *stream, Count depth) { @@ -372,7 +372,7 @@ DEFINE_CLASS(Seg, amcSeg, klass) /* amcSegHasNailboard -- test whether the segment has a nailboard * - * See . + * . */ static Bool amcSegHasNailboard(Seg seg) { @@ -402,12 +402,12 @@ static amcGen amcSegGen(Seg seg) /* AMCStruct -- pool AMC descriptor * - * See . + * . */ #define AMCSig ((Sig)0x519A3C99) /* SIGnature AMC */ -typedef struct AMCStruct { /* */ +typedef struct AMCStruct { /* */ PoolStruct poolStruct; /* generic pool structure */ RankSet rankSet; /* rankSet for entire pool */ RingStruct genRing; /* ring of generations */ @@ -417,12 +417,12 @@ typedef struct AMCStruct { /* */ amcGen nursery; /* the default mutator generation */ amcGen rampGen; /* the ramp generation */ amcGen afterRampGen; /* the generation after rampGen */ - unsigned rampCount; /* */ - int rampMode; /* */ + unsigned rampCount; /* */ + int rampMode; /* */ amcPinnedFunction pinned; /* function determining if block is pinned */ Size extendBy; /* segment size to extend pool by */ Size largeSize; /* min size of "large" segments */ - Sig sig; /* */ + Sig sig; /* */ } AMCStruct; @@ -457,7 +457,7 @@ typedef struct amcBufStruct { SegBufStruct segbufStruct; /* superclass fields must come first */ amcGen gen; /* The AMC generation */ Bool forHashArrays; /* allocates hash table arrays, see AMCBufferFill */ - Sig sig; /* */ + Sig sig; /* */ } amcBufStruct; @@ -523,7 +523,7 @@ static Res AMCBufInit(Buffer buffer, Pool pool, Bool isMutator, ArgList args) /* Set up the buffer to be allocating in the nursery. */ amcbuf->gen = amc->nursery; } else { - /* No gen yet -- see . */ + /* No gen yet -- see . */ amcbuf->gen = NULL; } amcbuf->forHashArrays = forHashArrays; @@ -709,7 +709,7 @@ static void AMCVarargs(ArgStruct args[MPS_ARGS_MAX], va_list varargs) /* amcInitComm -- initialize AMC/Z pool * - * See . + * . * Shared by AMCInit and AMCZinit. */ static Res amcInitComm(Pool pool, Arena arena, PoolClass klass, @@ -857,7 +857,7 @@ static Res AMCZInit(Pool pool, Arena arena, PoolClass klass, ArgList args) /* AMCFinish -- finish AMC pool * - * See . + * . */ static void AMCFinish(Inst inst) { @@ -909,7 +909,7 @@ static void AMCFinish(Inst inst) /* AMCBufferFill -- refill an allocation buffer * - * See . + * . */ static Res AMCBufferFill(Addr *baseReturn, Addr *limitReturn, Pool pool, Buffer buffer, Size size) @@ -952,7 +952,7 @@ static Res AMCBufferFill(Addr *baseReturn, Addr *limitReturn, return res; AVER(grainsSize == SegSize(seg)); - /* */ + /* */ if(BufferRankSet(buffer) == RankSetEMPTY) SegSetRankAndSummary(seg, BufferRankSet(buffer), RefSetEMPTY); else @@ -1002,7 +1002,7 @@ static Res AMCBufferFill(Addr *baseReturn, Addr *limitReturn, /* amcSegBufferEmpty -- free from buffer to segment * - * See . + * . */ static void amcSegBufferEmpty(Seg seg, Buffer buffer) { @@ -1030,7 +1030,7 @@ static void amcSegBufferEmpty(Seg seg, Buffer buffer) AVER(limit <= SegLimit(seg)); } - /* */ + /* */ if (init < limit) { ShieldExpose(arena, seg); (*pool->format->pad)(init, AddrOffset(init, limit)); @@ -1238,7 +1238,7 @@ static Res amcSegWhiten(Seg seg, Trace trace) /* Ensure we are forwarding into the right generation. */ - /* see */ + /* see */ /* This switching needs to be more complex for multiple traces. */ AVER(TraceSetIsSingle(PoolArena(pool)->busyTraces)); if(amc->rampMode == RampBEGIN && gen == amc->rampGen) { @@ -1390,7 +1390,7 @@ static Res amcSegScanNailed(Bool *totalReturn, ScanState ss, Pool pool, /* amcSegScan -- scan a single seg, turning it black * - * See . + * . */ static Res amcSegScan(Bool *totalReturn, Seg seg, ScanState ss) { @@ -1414,7 +1414,7 @@ static Res amcSegScan(Bool *totalReturn, Seg seg, ScanState ss) } base = AddrAdd(SegBase(seg), format->headerSize); - /* */ + /* */ while (SegBuffer(&buffer, seg)) { limit = AddrAdd(BufferScanLimit(buffer), format->headerSize); @@ -1433,7 +1433,7 @@ static Res amcSegScan(Bool *totalReturn, Seg seg, ScanState ss) base = limit; } - /* @@@@ base? */ + /* @@@@ base? */ limit = AddrAdd(SegLimit(seg), format->headerSize); AVER(SegBase(seg) <= base); AVER(base <= AddrAdd(SegLimit(seg), format->headerSize)); @@ -1490,7 +1490,7 @@ static void amcSegFixInPlace(Seg seg, ScanState ss, Ref *refIO) /* amcSegFixEmergency -- fix a reference, without allocating * - * See . + * . */ static Res amcSegFixEmergency(Seg seg, ScanState ss, Ref *refIO) { @@ -1520,7 +1520,7 @@ static Res amcSegFixEmergency(Seg seg, ScanState ss, Ref *refIO) return ResOK; } -fixInPlace: /* see .Nailboard.emergency */ +fixInPlace: /* see .Nailboard.emergency */ amcSegFixInPlace(seg, ss, refIO); return ResOK; } @@ -1528,7 +1528,7 @@ fixInPlace: /* see .Nailboard.emergency */ /* amcSegFix -- fix a reference to the segment * - * See . + * . */ static Res amcSegFix(Seg seg, ScanState ss, Ref *refIO) { @@ -1550,7 +1550,7 @@ static Res amcSegFix(Seg seg, ScanState ss, Ref *refIO) TraceId ti; Trace trace; - /* */ + /* */ AVERT_CRITICAL(ScanState, ss); AVERT_CRITICAL(Seg, seg); AVER_CRITICAL(refIO != NULL); @@ -1621,7 +1621,7 @@ static Res amcSegFix(Seg seg, ScanState ss, Ref *refIO) /* Object is not preserved yet (neither moved, nor nailed) */ /* so should be preserved by forwarding. */ - ss->wasMarked = FALSE; /* */ + ss->wasMarked = FALSE; /* */ /* Get the forwarding buffer from the object's generation. */ gen = amcSegGen(seg); @@ -1650,7 +1650,7 @@ static Res amcSegFix(Seg seg, ScanState ss, Ref *refIO) } SegSetGrey(toSeg, TraceSetUnion(SegGrey(toSeg), grey)); - /* */ + /* */ (void)AddrCopy(newBase, base, length); /* .exposed.seg */ ShieldCover(arena, toSeg); @@ -1704,7 +1704,7 @@ static void amcSegReclaimNailed(Pool pool, Trace trace, Seg seg) arena = PoolArena(pool); AVERT(Arena, arena); - /* see for improvements */ + /* see for improvements */ headerSize = format->headerSize; ShieldExpose(arena, seg); p = SegBase(seg); @@ -1790,7 +1790,7 @@ static void amcSegReclaimNailed(Pool pool, Trace trace, Seg seg) /* amcSegReclaim -- recycle a segment if it is still white * - * See . + * . */ static void amcSegReclaim(Seg seg, Trace trace) { @@ -1932,7 +1932,7 @@ static Size AMCFreeSize(Pool pool) /* AMCDescribe -- describe the contents of the AMC pool * - * See . + * . */ static Res AMCDescribe(Inst inst, mps_lib_FILE *stream, Count depth) @@ -2090,7 +2090,7 @@ void mps_amc_apply(mps_pool_t mps_pool, /* AMCCheck -- check consistency of the AMC pool * - * See . + * . */ ATTRIBUTE_UNUSED diff --git a/mps/code/poolams.c b/mps/code/poolams.c index fc054f1bfc5..47ca1a64bd6 100644 --- a/mps/code/poolams.c +++ b/mps/code/poolams.c @@ -5,7 +5,7 @@ * Portions copyright (c) 2002 Global Graphics Software. * * - * .design: See . + * .design: . * * * TRANSGRESSSIONS @@ -75,7 +75,7 @@ Bool AMSSegCheck(AMSSeg amsseg) CHECKD_NOSIG(BT, amsseg->allocTable); if (SegWhite(seg) != TraceSetEMPTY) { - /* */ + /* */ CHECKL(TraceSetIsSingle(SegWhite(seg))); CHECKL(amsseg->colourTablesInUse); } @@ -253,7 +253,7 @@ static Res AMSSegInit(Seg seg, Pool pool, Addr base, Size size, ArgList args) amsseg->bufferedGrains = (Count)0; amsseg->newGrains = (Count)0; amsseg->oldGrains = (Count)0; - amsseg->marksChanged = FALSE; /* */ + amsseg->marksChanged = FALSE; /* */ amsseg->ambiguousFixes = FALSE; res = amsCreateTables(ams, &amsseg->allocTable, @@ -262,7 +262,7 @@ static Res AMSSegInit(Seg seg, Pool pool, Addr base, Size size, ArgList args) if (res != ResOK) goto failCreateTables; - /* start off using firstFree, see */ + /* start off using firstFree, see */ amsseg->allocTableInUse = FALSE; amsseg->firstFree = 0; amsseg->colourTablesInUse = FALSE; @@ -308,15 +308,15 @@ static void AMSSegFinish(Inst inst) * * .empty: segment merging and splitting is limited to simple cases * where the high segment is empty. - * See . + * . * * .grain-align: segment merging and splitting is limited to cases * where the join is aligned with the grain alignment - * See . + * . * * .alloc-early: Allocations are performed before calling the * next method to simplify the fail cases. See - * + * * * .table-names: The names of local variables holding the new * allocation and colour tables are chosen to have names which @@ -483,10 +483,10 @@ static Res AMSSegSplit(Seg seg, Seg segHi, amssegHi->bufferedGrains = (Count)0; amssegHi->newGrains = (Count)0; amssegHi->oldGrains = (Count)0; - amssegHi->marksChanged = FALSE; /* */ + amssegHi->marksChanged = FALSE; /* */ amssegHi->ambiguousFixes = FALSE; - /* start off using firstFree, see */ + /* start off using firstFree, see */ amssegHi->allocTableInUse = FALSE; amssegHi->firstFree = 0; /* use colour tables if the segment is white */ @@ -701,7 +701,7 @@ static Res AMSSegCreate(Seg *segReturn, Pool pool, Size size, goto failSeg; } - /* see */ + /* see */ if (rankSet != RankSetEMPTY) { SegSetRankAndSummary(seg, rankSet, RefSetUNIV); } else { @@ -770,7 +770,7 @@ static void AMSDebugVarargs(ArgStruct args[MPS_ARGS_MAX], va_list varargs) /* AMSInit -- the pool class initialization method * * Takes one additional argument: the format of the objects - * allocated in the pool. See . + * allocated in the pool. . */ ARG_DEFINE_KEY(AMS_SUPPORT_AMBIGUOUS, Bool); @@ -893,7 +893,7 @@ static Bool amsSegBufferFill(Addr *baseReturn, Addr *limitReturn, return FALSE; if (RefSetUnion(SegWhite(seg), SegGrey(seg)) != TraceSetEMPTY) - /* Can't use a white or grey segment, see design.mps.poolams.fill.colour */ + /* Can't use a white or grey segment, see */ return FALSE; if (rankSet != SegRankSet(seg)) @@ -950,7 +950,7 @@ found: /* AMSBufferFill -- the pool class buffer fill method * * Iterates over the segments looking for space. See - * . + * . */ static Res AMSBufferFill(Addr *baseReturn, Addr *limitReturn, Pool pool, Buffer buffer, Size size) @@ -968,11 +968,11 @@ static Res AMSBufferFill(Addr *baseReturn, Addr *limitReturn, AVER(size > 0); AVER(SizeIsAligned(size, PoolAlignment(pool))); - /* Check that we're not in the grey mutator phase (see */ - /* ). */ + /* Check that we're not in the grey mutator phase */ + /* . */ AVER(PoolArena(pool)->busyTraces == PoolArena(pool)->flippedTraces); - /* */ + /* */ rankSet = BufferRankSet(buffer); RING_FOR(node, &pool->segRing, nextNode) { seg = SegOfPoolRing(node); @@ -993,7 +993,7 @@ static Res AMSBufferFill(Addr *baseReturn, Addr *limitReturn, /* amsSegBufferEmpty -- empty buffer to segment * * Frees the unused part of the buffer. The colour of the area doesn't - * need to be changed. See . + * need to be changed. . */ static void amsSegBufferEmpty(Seg seg, Buffer buffer) { @@ -1108,7 +1108,7 @@ static Res amsSegWhiten(Seg seg, Trace trace) AVERT(Trace, trace); - /* */ + /* */ AVER(SegWhite(seg) == TraceSetEMPTY); AVER(!amsseg->colourTablesInUse); @@ -1135,7 +1135,7 @@ static Res amsSegWhiten(Seg seg, Trace trace) amsseg->allocTableInUse = TRUE; } - if (SegBuffer(&buffer, seg)) { /* */ + if (SegBuffer(&buffer, seg)) { /* */ Index scanLimitIndex, limitIndex; scanLimitIndex = PoolIndexOfAddr(SegBase(seg), pool, BufferScanLimit(buffer)); limitIndex = PoolIndexOfAddr(SegBase(seg), pool, BufferLimit(buffer)); @@ -1159,7 +1159,7 @@ static Res amsSegWhiten(Seg seg, Trace trace) amsseg->oldGrains += agedGrains + amsseg->newGrains; amsseg->bufferedGrains = uncondemnedGrains; amsseg->newGrains = 0; - amsseg->marksChanged = FALSE; /* */ + amsseg->marksChanged = FALSE; /* */ amsseg->ambiguousFixes = FALSE; if (amsseg->oldGrains > 0) { @@ -1326,7 +1326,7 @@ static Res amsScanObject(Seg seg, Index i, Addr p, Addr next, void *clos) /* amsSegScan -- the segment scanning method * - * See + * */ static Res amsSegScan(Bool *totalReturn, Seg seg, ScanState ss) { @@ -1342,8 +1342,8 @@ static Res amsSegScan(Bool *totalReturn, Seg seg, ScanState ss) AVER(totalReturn != NULL); AVERT(ScanState, ss); - /* Check that we're not in the grey mutator phase (see */ - /* ). */ + /* Check that we're not in the grey mutator phase */ + /* . */ AVER(TraceSetSub(ss->traces, arena->flippedTraces)); closureStruct.scanAllObjects = @@ -1364,13 +1364,13 @@ static Res amsSegScan(Bool *totalReturn, Seg seg, ScanState ss) format = pool->format; AVERT(Format, format); alignment = PoolAlignment(AMSPool(ams)); - do { /* */ - amsseg->marksChanged = FALSE; /* */ - /* */ + do { /* */ + amsseg->marksChanged = FALSE; /* */ + /* */ if (amsseg->ambiguousFixes) { res = semSegIterate(seg, amsScanObject, &closureStruct); if (res != ResOK) { - /* */ + /* */ amsseg->marksChanged = TRUE; *totalReturn = FALSE; return res; @@ -1395,7 +1395,7 @@ static Res amsSegScan(Bool *totalReturn, Seg seg, ScanState ss) j = PoolIndexOfAddr(SegBase(seg), pool, next); res = FormatScan(format, ss, clientP, clientNext); if (res != ResOK) { - /* */ + /* */ amsseg->marksChanged = TRUE; *totalReturn = FALSE; return res; @@ -1439,7 +1439,7 @@ static Res amsSegFix(Seg seg, ScanState ss, Ref *refIO) AVER_CRITICAL(amsseg->colourTablesInUse); /* @@@@ We should check that we're not in the grey mutator phase */ - /* (see ), but there's no way of */ + /* , but there's no way of */ /* doing that here (this can be called from RootScan, during flip). */ clientRef = *refIO; @@ -1483,13 +1483,13 @@ static Res amsSegFix(Seg seg, ScanState ss, Ref *refIO) case RankFINAL: case RankWEAK: if (AMS_IS_WHITE(seg, i)) { - ss->wasMarked = FALSE; /* */ + ss->wasMarked = FALSE; /* */ if (ss->rank == RankWEAK) { /* then splat the reference */ *refIO = (Ref)0; } else { STATISTIC(++ss->preservedInPlaceCount); /* Size updated on reclaim */ if (SegRankSet(seg) == RankSetEMPTY && ss->rank != RankAMBIG) { - /* */ + /* */ Addr clientNext, next; ShieldExpose(PoolArena(pool), seg); @@ -1502,7 +1502,7 @@ static Res amsSegFix(Seg seg, ScanState ss, Ref *refIO) } else { /* turn it grey */ AMS_WHITE_GREYEN(seg, i); SegSetGrey(seg, TraceSetUnion(SegGrey(seg), ss->traces)); - /* mark it for scanning - */ + /* mark it for scanning - */ amsseg->marksChanged = TRUE; } } diff --git a/mps/code/poolams.h b/mps/code/poolams.h index 31be405ded6..a6401238da8 100644 --- a/mps/code/poolams.h +++ b/mps/code/poolams.h @@ -48,7 +48,7 @@ typedef struct AMSStruct { AMSSegsDestroyFunction segsDestroy; AMSSegClassFunction segClass;/* fn to get the class for segments */ Bool shareAllocTable; /* the alloc table is also used as white table */ - Sig sig; /* */ + Sig sig; /* */ } AMSStruct; @@ -63,7 +63,7 @@ typedef struct AMSSegStruct { Bool allocTableInUse; /* allocTable is used */ Index firstFree; /* 1st free grain, if allocTable is not used */ BT allocTable; /* set if grain is allocated */ - /* */ + /* */ Bool marksChanged; /* seg has been marked since last scan */ Bool ambiguousFixes; /* seg has been ambiguously marked since last scan */ Bool colourTablesInUse;/* the colour tables are in use */ diff --git a/mps/code/poolawl.c b/mps/code/poolawl.c index 0003c3a6be8..841dee61476 100644 --- a/mps/code/poolawl.c +++ b/mps/code/poolawl.c @@ -6,7 +6,7 @@ * * DESIGN * - * .design: See . This is Dylan-specific pool. + * .design: . This is Dylan-specific pool. * * * ASSUMPTIONS (about when to scan single references on accesses) @@ -92,7 +92,7 @@ typedef Addr (*FindDependentFunction)(Addr object); /* AWLStruct -- AWL pool structure * - * See + * */ typedef struct AWLPoolStruct { @@ -125,7 +125,7 @@ DECLARE_CLASS(Pool, AWLPool, AbstractCollectPool); #define AWLSegSig ((Sig)0x519A3759) /* SIGnature AWL SeG */ -/* */ +/* */ typedef struct AWLSegStruct { GCSegStruct gcSegStruct; /* superclass fields must come first */ BT mark; @@ -747,7 +747,7 @@ static Res awlSegWhiten(Seg seg, Trace trace) /* All parameters checked by generic SegWhiten. */ /* Can only whiten for a single trace, */ - /* see */ + /* see */ AVER(SegWhite(seg) == TraceSetEMPTY); if (!SegBuffer(&buffer, seg)) { @@ -869,9 +869,9 @@ static Res awlScanObject(Arena arena, AWL awl, ScanState ss, dependentObject = awl->findDependent(base); dependent = SegOfAddr(&dependentSeg, arena, dependentObject); if (dependent) { - /* */ + /* */ ShieldExpose(arena, dependentSeg); - /* */ + /* */ SegSetSummary(dependentSeg, RefSetUNIV); } @@ -915,7 +915,7 @@ static Res awlSegScanSinglePass(Bool *anyScannedReturn, ScanState ss, Index i; /* the index into the bit tables corresponding to p */ Addr objectLimit; - /* */ + /* */ if (p == bufferScanLimit) { p = BufferLimit(buffer); continue; @@ -928,7 +928,7 @@ static Res awlSegScanSinglePass(Bool *anyScannedReturn, ScanState ss, } hp = AddrAdd(p, format->headerSize); objectLimit = (format->skip)(hp); - /* */ + /* */ if (scanAllObjects || (BTGet(awlseg->mark, i) && !BTGet(awlseg->scanned, i))) { Res res = awlScanObject(arena, awl, ss, pool->format, @@ -1033,7 +1033,7 @@ static Res awlSegFix(Seg seg, ScanState ss, Ref *refIO) } if (!BTGet(awlseg->mark, i)) { - ss->wasMarked = FALSE; /* */ + ss->wasMarked = FALSE; /* */ if (ss->rank == RankWEAK) { *refIO = (Ref)0; } else { diff --git a/mps/code/poollo.c b/mps/code/poollo.c index 27b4320c327..35ad92c4ee9 100644 --- a/mps/code/poollo.c +++ b/mps/code/poollo.c @@ -5,7 +5,7 @@ * * DESIGN * - * .design: See . This is a leaf pool class. + * .design: . This is a leaf pool class. */ #include "mpsclo.h" @@ -684,7 +684,7 @@ static Res loSegFix(Seg seg, ScanState ss, Ref *refIO) } if(!BTGet(loseg->mark, i)) { - ss->wasMarked = FALSE; /* */ + ss->wasMarked = FALSE; /* */ if(ss->rank == RankWEAK) { *refIO = (Addr)0; } else { diff --git a/mps/code/poolmfs.c b/mps/code/poolmfs.c index 6a70b4cbf01..b539db9310b 100644 --- a/mps/code/poolmfs.c +++ b/mps/code/poolmfs.c @@ -5,7 +5,7 @@ * * This is the implementation of the MFS pool class. * - * See design.mps.poolmfs. + * . * * .restriction: This pool cannot allocate from the arena control * pool (as the control pool is an instance of PoolClassMV and MV uses @@ -188,7 +188,7 @@ void MFSExtend(Pool pool, Addr base, Addr limit) extent. This transgresses the rule that pools should allocate control structures from another pool, because an MFS is required during bootstrap when no other pools are available. See - */ + */ mfsRing = (Ring)base; RingInit(mfsRing); RingAppend(&mfs->extentRing, mfsRing); @@ -249,7 +249,7 @@ static Res MFSAlloc(Addr *pReturn, Pool pool, Size size) { Addr base; - /* See design.mps.bootstrap.land.sol.pool. */ + /* . */ if (!mfs->extendSelf) return ResLIMIT; diff --git a/mps/code/poolmrg.c b/mps/code/poolmrg.c index ad39f985198..e6168b73a6a 100644 --- a/mps/code/poolmrg.c +++ b/mps/code/poolmrg.c @@ -7,7 +7,7 @@ * * DESIGN * - * .design: See . + * .design: . * * NOTES * @@ -19,7 +19,7 @@ * * TRANSGRESSIONS * - * .addr.void-star: Breaks all over the place, + * .addr.void-star: Breaks all over the place, * accessing the segments acquired from SegAlloc with C pointers. It * would not be practical to use ArenaPeek/Poke everywhere. Blocks * acquired from ControlAlloc must be directly accessible from C, or else @@ -103,10 +103,10 @@ static void MRGRefPartSetRef(Arena arena, RefPart refPart, Ref ref) typedef struct MRGStruct { PoolStruct poolStruct; /* generic pool structure */ - RingStruct entryRing; /* */ - RingStruct freeRing; /* */ - RingStruct refRing; /* */ - Size extendBy; /* */ + RingStruct entryRing; /* */ + RingStruct freeRing; /* */ + RingStruct refRing; /* */ + Size extendBy; /* */ Sig sig; /* */ } MRGStruct; @@ -142,14 +142,14 @@ typedef struct MRGRefSegStruct *MRGRefSeg; typedef struct MRGLinkSegStruct { SegStruct segStruct; /* superclass fields must come first */ - MRGRefSeg refSeg; /* */ + MRGRefSeg refSeg; /* */ Sig sig; /* */ } MRGLinkSegStruct; typedef struct MRGRefSegStruct { GCSegStruct gcSegStruct; /* superclass fields must come first */ - RingStruct mrgRing; /* */ - MRGLinkSeg linkSeg; /* */ + RingStruct mrgRing; /* */ + MRGLinkSeg linkSeg; /* */ Sig sig; /* */ } MRGRefSegStruct; @@ -165,7 +165,7 @@ static Res mrgRefSegScan(Bool *totalReturn, Seg seg, ScanState ss); * * .link.nullref: During initialization of a link segment the refSeg * field will be NULL. This will be initialized when the reference - * segment is initialized. See . + * segment is initialized. . */ ATTRIBUTE_UNUSED @@ -268,7 +268,7 @@ static Res MRGRefSegInit(Seg seg, Pool pool, Addr base, Size size, ArgList args) /* no useful checks for base and size */ AVERT(MRGLinkSeg, linkseg); - /* , .improve.rank */ + /* , .improve.rank */ SegSetRankSet(seg, RankSetSingle(RankFINAL)); RingInit(&refseg->mrgRing); @@ -340,7 +340,7 @@ static Count MRGGuardiansPerSeg(MRG mrg) } -/* */ +/* */ #define refPartOfIndex(refseg, index) \ @@ -411,7 +411,7 @@ static void MRGGuardianInit(MRG mrg, Link link, RefPart refPart) RingInit(&link->the.linkRing); link->state = MRGGuardianFREE; RingAppend(&mrg->freeRing, &link->the.linkRing); - /* */ + /* */ MRGRefPartSetRef(PoolArena(MustBeA(AbstractPool, mrg)), refPart, 0); } @@ -477,7 +477,7 @@ static MessageClassStruct MRGMessageClassStruct = { MessageNoGCCondemnedSize, /* GCCondemnedSize */ MessageNoGCNotCondemnedSize, /* GCNotCondemnedSize */ MessageNoGCStartWhy, /* GCStartWhy */ - MessageClassSig /* */ + MessageClassSig /* */ }; @@ -701,7 +701,7 @@ static void MRGFinish(Inst inst) mrg->sig = SigInvalid; RingFinish(&mrg->refRing); - /* */ + /* */ NextMethod(Inst, MRGPool, finish)(inst); } @@ -721,7 +721,7 @@ Res MRGRegister(Pool pool, Ref ref) AVER(ref != 0); - /* */ + /* */ if (RingIsSingle(&mrg->freeRing)) { res = MRGSegPairCreate(&junk, mrg); if (res != ResOK) @@ -732,12 +732,12 @@ Res MRGRegister(Pool pool, Ref ref) link = linkOfRing(freeNode); AVER(link->state == MRGGuardianFREE); - /* */ + /* */ RingRemove(freeNode); link->state = MRGGuardianPREFINAL; RingAppend(&mrg->entryRing, freeNode); - /* */ + /* */ refPart = MRGRefPartOfLink(link, arena); MRGRefPartSetRef(arena, refPart, ref); diff --git a/mps/code/poolmv2.c b/mps/code/poolmv2.c index 6c37226c194..a12a9ebb26d 100644 --- a/mps/code/poolmv2.c +++ b/mps/code/poolmv2.c @@ -6,7 +6,7 @@ * .purpose: A manual-variable pool designed to take advantage of * placement according to predicted deathtime. * - * .design: See . + * .design: . */ #include "mpm.h" @@ -69,20 +69,20 @@ typedef struct MVTStruct FreelistStruct flStruct; /* The emergency free list structure */ FailoverStruct foStruct; /* The fail-over mechanism */ ABQStruct abqStruct; /* The available block queue */ - /* */ + /* */ Size minSize; /* Pool parameter */ Size meanSize; /* Pool parameter */ Size maxSize; /* Pool parameter */ Count fragLimit; /* Pool parameter */ - /* */ + /* */ Size reuseSize; /* Size at which blocks are recycled */ - /* */ + /* */ Size fillSize; /* Size of pool segments */ - /* */ + /* */ Size availLimit; /* Limit on available */ - /* */ + /* */ Bool abqOverflow; /* ABQ dropped some candidates */ - /* .* */ + /* */ Bool splinter; /* Saved splinter */ Addr splinterBase; /* Saved splinter base */ Addr splinterLimit; /* Saved splinter size */ @@ -259,7 +259,7 @@ static Res MVTInit(Pool pool, Arena arena, PoolClass klass, ArgList args) AVERT(Align, align); /* This restriction on the alignment is necessary because of the use of a Freelist to store the free address ranges in low-memory - situations. See . */ + situations. . */ AVER(AlignIsAligned(align, FreelistMinimumAlignment)); AVER(align <= ArenaGrainSize(arena)); AVER(0 < minSize); @@ -269,9 +269,9 @@ static Res MVTInit(Pool pool, Arena arena, PoolClass klass, ArgList args) AVER(fragLimit <= 100); /* TODO: More parameter checks possible? */ - /* see */ + /* see */ fillSize = SizeArenaGrains(maxSize, arena); - /* see */ + /* see */ reuseSize = 2 * fillSize; abqDepth = (reserveDepth * meanSize + reuseSize - 1) / reuseSize; /* keep the abq from being useless */ @@ -521,8 +521,8 @@ static Res MVTOversizeFill(Addr *baseReturn, * to the unavailable total. (We deliberately lose these fragments * now so as to avoid the more severe fragmentation that we believe * would result if we used these for allocation. See - * design.mps.poolmvt.arch.fragmentation.internal and - * design.mps.poolmvt.anal.policy.size.) + * and + * .) */ mvt->available -= alignedSize - minSize; mvt->unavailable += alignedSize - minSize; @@ -689,7 +689,7 @@ static Res MVTSegFill(Addr *baseReturn, Addr *limitReturn, /* MVTBufferFill -- refill an allocation buffer from an MVT pool * - * See + * */ static Res MVTBufferFill(Addr *baseReturn, Addr *limitReturn, Pool pool, Buffer buffer, Size minSize) @@ -708,14 +708,14 @@ static Res MVTBufferFill(Addr *baseReturn, Addr *limitReturn, AVER(SizeIsAligned(minSize, pool->alignment)); /* Allocate oversize blocks exactly, directly from the arena. - */ + */ if (minSize > mvt->fillSize) { return MVTOversizeFill(baseReturn, limitReturn, mvt, minSize); } /* Use any splinter, if available. - */ + */ if (MVTSplinterFill(baseReturn, limitReturn, mvt, minSize)) return ResOK; @@ -726,7 +726,7 @@ static Res MVTBufferFill(Addr *baseReturn, Addr *limitReturn, METER_ACC(mvt->underflows, minSize); /* If fragmentation is acceptable, attempt to find a free block from - the free lists. */ + the free lists. */ if (mvt->available >= mvt->availLimit) { METER_ACC(mvt->fragLimitContingencies, minSize); if (MVTContingencyFill(baseReturn, limitReturn, mvt, minSize)) @@ -734,7 +734,7 @@ static Res MVTBufferFill(Addr *baseReturn, Addr *limitReturn, } /* Attempt to request a block from the arena. - */ + */ res = MVTSegFill(baseReturn, limitReturn, mvt, mvt->fillSize, minSize); if (res == ResOK) @@ -787,7 +787,7 @@ static Bool MVTReserve(MVT mvt, Range range) AVERT(Range, range); AVER(RangeSize(range) >= mvt->reuseSize); - /* See */ + /* */ if (!ABQPush(MVTABQ(mvt), range)) { Arena arena = PoolArena(MVTPool(mvt)); RangeStruct oldRange; @@ -881,7 +881,7 @@ static Res MVTDelete(MVT mvt, Addr base, Addr limit) /* MVTBufferEmpty -- return an unusable portion of a buffer to the MVT * pool * - * See + * */ static void MVTBufferEmpty(Pool pool, Buffer buffer) { @@ -914,7 +914,7 @@ static void MVTBufferEmpty(Pool pool, Buffer buffer) METER_ACC(mvt->poolSize, mvt->size); METER_ACC(mvt->bufferEmpties, size); - /* */ + /* */ if (size < mvt->minSize) { res = MVTInsert(mvt, base, limit); AVER(res == ResOK); @@ -923,7 +923,7 @@ static void MVTBufferEmpty(Pool pool, Buffer buffer) } METER_ACC(mvt->splinters, size); - /* */ + /* */ if (mvt->splinter) { Size oldSize = AddrOffset(mvt->splinterBase, mvt->splinterLimit); @@ -950,7 +950,7 @@ static void MVTBufferEmpty(Pool pool, Buffer buffer) /* MVTFree -- free a block (previously allocated from a buffer) that * is no longer in use * - * see + * see */ static void MVTFree(Pool pool, Addr base, Size size) { @@ -976,7 +976,7 @@ static void MVTFree(Pool pool, Addr base, Size size) METER_ACC(mvt->poolAllocated, mvt->allocated); METER_ACC(mvt->poolSize, mvt->size); - /* */ + /* */ /* Return exceptional blocks directly to arena */ if (size > mvt->fillSize) { Seg seg = NULL; /* suppress "may be used uninitialized" */ @@ -1147,7 +1147,7 @@ static Res MVTSegAlloc(Seg *segReturn, MVT mvt, Size size) if (res == ResOK) { Size segSize = SegSize(*segReturn); - /* see */ + /* see */ AVER(segSize >= mvt->fillSize); mvt->size += segSize; mvt->available += segSize; diff --git a/mps/code/poolmv2.h b/mps/code/poolmv2.h index dbead05725b..b8f5dca0450 100644 --- a/mps/code/poolmv2.h +++ b/mps/code/poolmv2.h @@ -5,7 +5,7 @@ * * .purpose: The implementation of the new manual-variable pool class * - * .design: See + * .design: */ #ifndef poolmv2_h diff --git a/mps/code/poolmvff.c b/mps/code/poolmvff.c index 734c912af4b..c71abe32f4e 100644 --- a/mps/code/poolmvff.c +++ b/mps/code/poolmvff.c @@ -191,8 +191,8 @@ static Res MVFFExtend(Range rangeReturn, MVFF mvff, Size size) AVER(SizeIsAligned(size, PoolAlignment(pool))); - /* Use extendBy unless it's too small (see */ - /* ). */ + /* Use extendBy unless it's too small */ + /* . */ if (size <= mvff->extendBy) allocSize = mvff->extendBy; else @@ -203,7 +203,7 @@ static Res MVFFExtend(Range rangeReturn, MVFF mvff, Size size) res = ArenaAlloc(&base, MVFFLocusPref(mvff), allocSize, pool); if (res != ResOK) { /* try again with a range just large enough for object */ - /* see */ + /* see */ allocSize = SizeArenaGrains(size, arena); res = ArenaAlloc(&base, MVFFLocusPref(mvff), allocSize, pool); if (res != ResOK) @@ -333,7 +333,7 @@ static void MVFFFree(Pool pool, Addr old, Size size) /* MVFFBufferFill -- Fill the buffer * * Fill it with the largest block we can find. This is worst-fit - * allocation policy; see . + * allocation policy; see . */ static Res MVFFBufferFill(Addr *baseReturn, Addr *limitReturn, Pool pool, Buffer buffer, Size size) @@ -415,7 +415,7 @@ static Res MVFFInit(Pool pool, Arena arena, PoolClass klass, ArgList args) AVERC(PoolClass, klass); /* .arg: class-specific additional arguments; see */ - /* */ + /* */ /* .arg.check: we do the same checks here and in MVFFCheck */ /* except for arenaHigh, which is stored only in the locusPref. */ @@ -448,7 +448,7 @@ static Res MVFFInit(Pool pool, Arena arena, PoolClass klass, ArgList args) AVERT(Align, align); /* This restriction on the alignment is necessary because of the use of a Freelist to store the free address ranges in low-memory - situations. . */ + situations. . */ AVER(AlignIsAligned(align, FreelistMinimumAlignment)); AVER(align <= ArenaGrainSize(arena)); AVERT(Bool, slotHigh); diff --git a/mps/code/poolmvff.h b/mps/code/poolmvff.h index 8c374c50709..abed5fc83ff 100644 --- a/mps/code/poolmvff.h +++ b/mps/code/poolmvff.h @@ -8,7 +8,7 @@ * variable size where address-ordered first (or last) fit is an * appropriate policy. * - * .design: See + * .design: */ #ifndef poolmvff_h diff --git a/mps/code/pooln.h b/mps/code/pooln.h index 36028f876d6..d74f6145ec4 100644 --- a/mps/code/pooln.h +++ b/mps/code/pooln.h @@ -31,7 +31,7 @@ extern PoolClass PoolClassN(void); /* PoolNCheck -- check a pool of class N * * Validates a PoolN object. This function conforms to the validation - * protocol defined in . + * protocol defined in . */ extern Bool PoolNCheck(PoolN poolN); diff --git a/mps/code/poolsnc.c b/mps/code/poolsnc.c index e1758fe2f51..4e80ea0ae3e 100644 --- a/mps/code/poolsnc.c +++ b/mps/code/poolsnc.c @@ -5,14 +5,14 @@ * * DESIGN * - * .design: design.mps.poolsnc + * .design: * * LIGHTWEIGHT FRAMES * * .lw-frame-state: The pool uses lightweight frames as its only * type of allocation frame. The lightweight frame state is set to * Valid whenever a buffer has a segment and Disabled otherwise. - * See . + * . * * .lw-frame-null: The frame marker NULL is used as a special value * to indicate bottom of stack. @@ -26,7 +26,7 @@ SRCID(poolsnc, "$Id$"); /* SNCStruct -- structure for an SNC pool * - * See design.mps.poolsnc.poolstruct. + * . */ #define SNCSig ((Sig)0x519b754c) /* SIGPooLSNC */ @@ -78,7 +78,7 @@ typedef struct SNCBufStruct *SNCBuf; typedef struct SNCBufStruct { SegBufStruct segBufStruct; /* superclass fields must come first */ Seg topseg; /* The segment chain head -- may be NULL */ - Sig sig; /* */ + Sig sig; /* */ } SNCBufStruct; @@ -462,7 +462,7 @@ static Res SNCBufferFill(Addr *baseReturn, Addr *limitReturn, return res; found: - /* */ + /* */ if (BufferRankSet(buffer) == RankSetEMPTY) SegSetRankAndSummary(seg, BufferRankSet(buffer), RefSetEMPTY); else diff --git a/mps/code/prmc.h b/mps/code/prmc.h index ce134476bfe..21be3ee0ace 100644 --- a/mps/code/prmc.h +++ b/mps/code/prmc.h @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2016 Ravenbrook Limited. See end of file for license. * - * See for the design of the generic interface including + * See for the design of the generic interface including * the contracts for these functions. * * This interface has several different implementations, typically one diff --git a/mps/code/prmcan.c b/mps/code/prmcan.c index 92de55e64b6..ac42c557520 100644 --- a/mps/code/prmcan.c +++ b/mps/code/prmcan.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2016 Ravenbrook Limited. See end of file for license. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * In this version, for a generic operating system, none of the * functions have a useful implementation. */ diff --git a/mps/code/prmcanan.c b/mps/code/prmcanan.c index 49d1c921669..6bdb96b6420 100644 --- a/mps/code/prmcanan.c +++ b/mps/code/prmcanan.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2016 Ravenbrook Limited. See end of file for license. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * In this version for a generic processor architecture, none of the * functions have a useful implementation. */ diff --git a/mps/code/prmcfri3.c b/mps/code/prmcfri3.c index f05988f273f..3209fc41708 100644 --- a/mps/code/prmcfri3.c +++ b/mps/code/prmcfri3.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2016 Ravenbrook Limited. See end of file for license. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * * SOURCES diff --git a/mps/code/prmcfri6.c b/mps/code/prmcfri6.c index 586eec1647a..59520486c32 100644 --- a/mps/code/prmcfri6.c +++ b/mps/code/prmcfri6.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2016 Ravenbrook Limited. See end of file for license. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * * ASSUMPTIONS diff --git a/mps/code/prmci3.c b/mps/code/prmci3.c index 22190251a1f..0ef4ffcc6c9 100644 --- a/mps/code/prmci3.c +++ b/mps/code/prmci3.c @@ -3,11 +3,11 @@ * $Id$ * Copyright (c) 2001-2016 Ravenbrook Limited. See end of file for license. * - * .design: See for the generic design of the interface + * .design: See for the generic design of the interface * which is implemented in this module, including the contracts for the * functions. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * .requirements: Current requirements are for limited support only, for * stepping the sorts of instructions that the Dylan compiler might diff --git a/mps/code/prmci6.c b/mps/code/prmci6.c index f1df3aec90b..c7a1fddbba4 100644 --- a/mps/code/prmci6.c +++ b/mps/code/prmci6.c @@ -3,11 +3,11 @@ * $Id$ * Copyright (c) 2001-2016 Ravenbrook Limited. See end of file for license. * - * .design: See for the generic design of the interface + * .design: See for the generic design of the interface * which is implemented in this module, including the contracts for the * functions. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * * SOURCES diff --git a/mps/code/prmcix.c b/mps/code/prmcix.c index 3f8b0391361..03c5148ca44 100644 --- a/mps/code/prmcix.c +++ b/mps/code/prmcix.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2016-2018 Ravenbrook Limited. See end of file for license. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * * ASSUMPTIONS diff --git a/mps/code/prmcix.h b/mps/code/prmcix.h index 2a126fb08e0..d28831f238d 100644 --- a/mps/code/prmcix.h +++ b/mps/code/prmcix.h @@ -15,7 +15,7 @@ #include /* ucontext_t */ typedef struct MutatorContextStruct { - Sig sig; /* */ + Sig sig; /* */ MutatorContextVar var; /* Discriminator. */ siginfo_t *info; /* Signal info, if stopped by protection * fault; NULL if stopped by thread manager. */ diff --git a/mps/code/prmclii3.c b/mps/code/prmclii3.c index 4f04d1b2a8b..617cfffa429 100644 --- a/mps/code/prmclii3.c +++ b/mps/code/prmclii3.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2016 Ravenbrook Limited. See end of file for license. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * * SOURCES diff --git a/mps/code/prmclii6.c b/mps/code/prmclii6.c index 69fbbb41375..b65e77fcd39 100644 --- a/mps/code/prmclii6.c +++ b/mps/code/prmclii6.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2016 Ravenbrook Limited. See end of file for license. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * * SOURCES diff --git a/mps/code/prmcw3.c b/mps/code/prmcw3.c index ea1ae7a9569..804b6253dad 100644 --- a/mps/code/prmcw3.c +++ b/mps/code/prmcw3.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2016 Ravenbrook Limited. See end of file for license. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * * ASSUMPTIONS diff --git a/mps/code/prmcw3.h b/mps/code/prmcw3.h index 95b48cb210a..d397b772e73 100644 --- a/mps/code/prmcw3.h +++ b/mps/code/prmcw3.h @@ -13,7 +13,7 @@ #include "mpswin.h" typedef struct MutatorContextStruct { - Sig sig; /* */ + Sig sig; /* */ MutatorContextVar var; /* Union discriminator */ union { LPEXCEPTION_POINTERS ep; /* Windows Exception Pointers */ diff --git a/mps/code/prmcw3i3.c b/mps/code/prmcw3i3.c index f107f863275..e6fdee87cd8 100644 --- a/mps/code/prmcw3i3.c +++ b/mps/code/prmcw3i3.c @@ -5,7 +5,7 @@ * * PURPOSE * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * SOURCES * @@ -19,7 +19,7 @@ * * .assume.sp: The stack pointer is stored in CONTEXT.Esp. This * requires CONTEXT_CONTROL to be set in ContextFlags when - * GetThreadContext is called (see ). + * GetThreadContext is called . */ #include "prmcw3.h" diff --git a/mps/code/prmcw3i6.c b/mps/code/prmcw3i6.c index 489e07278ad..530036e6b4d 100644 --- a/mps/code/prmcw3i6.c +++ b/mps/code/prmcw3i6.c @@ -5,7 +5,7 @@ * * PURPOSE * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * SOURCES * diff --git a/mps/code/prmcxc.c b/mps/code/prmcxc.c index 61cc3c9ea6e..31b9b7a6839 100644 --- a/mps/code/prmcxc.c +++ b/mps/code/prmcxc.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2016-2018 Ravenbrook Limited. See end of file for license. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * * ASSUMPTIONS diff --git a/mps/code/prmcxc.h b/mps/code/prmcxc.h index 30930589acf..0caa9aa4613 100644 --- a/mps/code/prmcxc.h +++ b/mps/code/prmcxc.h @@ -15,7 +15,7 @@ #include typedef struct MutatorContextStruct { - Sig sig; /* */ + Sig sig; /* */ MutatorContextVar var; /* Discriminator. */ Addr address; /* Fault address, if stopped by protection * fault; NULL if stopped by thread manager. */ diff --git a/mps/code/prmcxci3.c b/mps/code/prmcxci3.c index 7098ab8e765..3282c740f17 100644 --- a/mps/code/prmcxci3.c +++ b/mps/code/prmcxci3.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * * SOURCES diff --git a/mps/code/prmcxci6.c b/mps/code/prmcxci6.c index 6a50e73df6c..a77cfffdfa1 100644 --- a/mps/code/prmcxci6.c +++ b/mps/code/prmcxci6.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * - * .purpose: Implement the mutator context module. See . + * .purpose: Implement the mutator context module. . * * * SOURCES diff --git a/mps/code/prot.h b/mps/code/prot.h index 4a6f6a23aa2..1eb38841985 100644 --- a/mps/code/prot.h +++ b/mps/code/prot.h @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2014-2016 Ravenbrook Limited. See end of file for license. * - * See for the design of the generic interface including + * See for the design of the generic interface including * the contracts for these functions. * * This interface has several different implementations, typically one diff --git a/mps/code/protan.c b/mps/code/protan.c index 0e4771f18da..6c72cbbedb2 100644 --- a/mps/code/protan.c +++ b/mps/code/protan.c @@ -6,7 +6,7 @@ * * DESIGN * - * + * */ #include "mpm.h" @@ -44,7 +44,7 @@ void ProtSet(Addr base, Addr limit, AccessSet pm) /* ProtSync -- synchronize protection settings with hardware * - * See . + * . */ void ProtSync(Arena arena) @@ -59,7 +59,7 @@ void ProtSync(Arena arena) synced = TRUE; if (SegFirst(&seg, arena)) { do { - if (SegPM(seg) != AccessSetEMPTY) { /* */ + if (SegPM(seg) != AccessSetEMPTY) { /* */ ShieldEnter(arena); TraceSegAccess(arena, seg, SegPM(seg)); ShieldLeave(arena); diff --git a/mps/code/protocol.c b/mps/code/protocol.c index e19332243c8..c429d1b5e19 100644 --- a/mps/code/protocol.c +++ b/mps/code/protocol.c @@ -5,7 +5,7 @@ * $Id$ * Copyright (c) 2001-2016 Ravenbrook Limited. See end of file for license. * - * See design.mps.protocol. + * . */ #include "mpm.h" diff --git a/mps/code/protocol.h b/mps/code/protocol.h index f3cda2ef08d..1be5bf5a9cd 100644 --- a/mps/code/protocol.h +++ b/mps/code/protocol.h @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * - * See design.mps.protocol. + * . */ #ifndef protocol_h @@ -18,8 +18,8 @@ * These turn the base identifier of a class (e.g. "Inst") into other * identifiers (e.g. "InstClassStruct"). These are not intended to be * used outside of this file. These macros implement - * design.mps.protocol.overview.naming and - * design.mps.impl.derived-names. + * and + * . * * INST_TYPE derives the type of an instance of the class, * e.g. "Land", which will be a pointer to an INST_STRUCT. @@ -88,7 +88,7 @@ typedef void *ClassId; * * Declares a prototype for the class ensure function, which ensures * that the class is initialized once and return it. See - * design.mps.protocol.if.declare-class. + * . */ #define DECLARE_CLASS(kind, klass, super) \ @@ -104,7 +104,7 @@ typedef void *ClassId; * object for a class. Takes care to avoid initializing the class * twice, even when called asynchronously from multiple threads, since * this code can be reached without first entering an arena. See - * design.mps.protocol.if.define-class. + * . */ #define DEFINE_CLASS(kind, className, var) \ @@ -135,7 +135,7 @@ typedef void *ClassId; /* CLASS -- expression for getting a class * * Use this to get a class, rather than calling anything defined by - * DEFINE_CLASS directly. See design.mps.protocol.if.class. + * DEFINE_CLASS directly. . */ #define CLASS(klass) (CLASS_ENSURE(klass)()) @@ -145,7 +145,7 @@ typedef void *ClassId; * * This macro is used at the start of a class definition to inherit * the superclass and override the fields essential to the workings of - * the protocol. See design.mps.protocol.if.inheritance. + * the protocol. . */ #define INHERIT_CLASS(this, _class, super) \ @@ -164,7 +164,7 @@ typedef void *ClassId; * * An InstStruct named instStruct must be the first field of any * instance structure using the protocol - * (design.mps.protocol.overview.prefix). + * . */ typedef struct InstStruct *Inst; @@ -186,7 +186,7 @@ typedef void (*FinishMethod)(Inst inst); typedef struct InstClassStruct { InstStruct instStruct; /* classes are instances of kinds */ - Sig sig; /* */ + Sig sig; /* */ ClassName name; /* human readable name such as "Land" */ InstClass superclass; /* pointer to direct superclass */ ClassLevel level; /* distance from root of class hierarchy */ @@ -220,7 +220,7 @@ extern void ClassRegister(InstClass klass); * * The InstClassStruct is arranged to make these tests fast and * simple, so that it can be used as a consistency check in the MPS. - * See design.mps.protocol.impl.subclass. + * . */ #define IsSubclass(sub, super) \ @@ -238,16 +238,16 @@ extern void ClassRegister(InstClass klass); /* CouldBeA, MustBeA -- coerce instances * * CouldBeA converts an instance to another class without checking, - * like C++ ``static_cast``. See design.mps.protocol.if.could-be-a. + * like C++ ``static_cast``. . * * MustBeA converts an instance to another class, but checks that the * object is a subclass, causing an assertion if not (depending on - * build variety). See design.mps.protocol.if.must-be-a. It is like + * build variety). . It is like * C++ "dynamic_cast" with an assert. * * MustBeA_CRITICAL is like MustBeA for use on the critical path, * where it does no checking at all in production builds. See - * design.mps.protocol.if.must-be-a.critical. + * . */ #define CouldBeA(klass, inst) ((INST_TYPE(klass))(inst)) @@ -269,7 +269,7 @@ extern void ClassRegister(InstClass klass); * * The following are macros because of the need to cast subtypes of * InstClass. Nevertheless they are named as functions. See - * design.mps.protocol.introspect. + * . */ #define SuperclassPoly(kind, klass) \ @@ -292,7 +292,7 @@ extern void ClassRegister(InstClass klass); * * This should only be used when specialising an instance to be a * member of a subclass, once the instance has been initialized. See - * design.mps.protocol.if.set-class-of-poly. + * . */ #define SetClassOfPoly(inst, _class) \ @@ -302,7 +302,7 @@ extern void ClassRegister(InstClass klass); /* Method -- method call * * Use this macro to call a method on a class, rather than accessing - * the class directly. See design.mps.protocol.if.method. For + * the class directly. . For * example: * * res = Method(Land, land, insert)(land, range); @@ -313,7 +313,7 @@ extern void ClassRegister(InstClass klass); /* NextMethod -- call a method in the superclass * - * See design.mps.protocol.int.static-superclass. + * . * * TODO: All uses of NextMethod are statically known, but several * experiments with statically generating some kind of SUPERCLASS diff --git a/mps/code/protw3.c b/mps/code/protw3.c index a7878e7b7eb..d42d279b6c9 100644 --- a/mps/code/protw3.c +++ b/mps/code/protw3.c @@ -92,8 +92,8 @@ LONG WINAPI ProtSEHfilter(LPEXCEPTION_POINTERS info) action = EXCEPTION_CONTINUE_SEARCH; } else { /* Access on last sizeof(Addr) (ie 4 on this platform) bytes */ - /* in memory. We assume we can't get this page anyway (see */ - /* ) so it can't be our fault. */ + /* in memory. We assume we can't get this page anyway */ + /* so it can't be our fault. */ action = EXCEPTION_CONTINUE_SEARCH; } diff --git a/mps/code/protxc.c b/mps/code/protxc.c index a02824ee2ef..9b9beb41695 100644 --- a/mps/code/protxc.c +++ b/mps/code/protxc.c @@ -378,13 +378,13 @@ static void protExcThreadStart(void) /* protAtForkChild -- support for fork() - * + * */ static void protAtForkChild(void) { /* Restart the exception handling thread - . */ + . */ protExcThreadStart(); } @@ -395,7 +395,7 @@ static void protSetupInner(void) { protExcThreadStart(); - /* Install fork handlers . */ + /* Install fork handlers . */ pthread_atfork(NULL, NULL, protAtForkChild); } diff --git a/mps/code/pthrdext.c b/mps/code/pthrdext.c index 176a5d51b8d..debc373665c 100644 --- a/mps/code/pthrdext.c +++ b/mps/code/pthrdext.c @@ -5,7 +5,7 @@ * * .purpose: Provides extension to Pthreads. * - * .design: see + * .design: see * * .acknowledgements: This was derived from code posted to * comp.programming.threads by Dave Butenhof and Raymond Lau @@ -32,7 +32,7 @@ SRCID(pthreadext, "$Id$"); /* Static data initialized on first use of the module - * See .* + * */ /* mutex */ @@ -47,7 +47,7 @@ static Bool pthreadextModuleInitialized = FALSE; /* Global variables protected by the mutex - * See .* + * */ static PThreadext suspendingVictim = NULL; /* current victim */ @@ -56,7 +56,7 @@ static RingStruct suspendedRing; /* PThreadext suspend ring */ /* suspendSignalHandler -- signal handler called when suspending a thread * - * See + * * * Handle PTHREADEXT_SIGSUSPEND in the target thread, to suspend it until * receiving PTHREADEXT_SIGRESUME (resume). Note that this is run with both @@ -97,7 +97,7 @@ static void suspendSignalHandler(int sig, /* resumeSignalHandler -- signal handler called when resuming a thread * - * See + * */ static void resumeSignalHandler(int sig) @@ -108,7 +108,7 @@ static void resumeSignalHandler(int sig) /* PThreadextModuleInit -- Initialize the PThreadext module * - * See + * * * Dynamically initialize all state when first used * (called by pthread_once). @@ -212,7 +212,7 @@ void PThreadextInit(PThreadext pthreadext, pthread_t id) /* PThreadextFinish -- Finish a pthreadext * - * See + * */ void PThreadextFinish(PThreadext pthreadext) @@ -246,7 +246,7 @@ void PThreadextFinish(PThreadext pthreadext) /* PThreadextSuspend -- suspend a thread * - * See + * */ Res PThreadextSuspend(PThreadext target, MutatorContext *contextReturn) @@ -308,7 +308,7 @@ unlock: /* PThreadextResume -- resume a suspended thread * - * See + * */ Res PThreadextResume(PThreadext target) diff --git a/mps/code/pthrdext.h b/mps/code/pthrdext.h index f2672340cc6..af35d119d38 100644 --- a/mps/code/pthrdext.h +++ b/mps/code/pthrdext.h @@ -30,7 +30,7 @@ typedef struct PThreadextStruct *PThreadext; */ typedef struct PThreadextStruct { - Sig sig; /* */ + Sig sig; /* */ pthread_t id; /* Thread ID */ MutatorContext context; /* context if suspended */ RingStruct threadRing; /* ring of suspended threads */ diff --git a/mps/code/range.c b/mps/code/range.c index f0ff476d061..ed5dfa6030f 100644 --- a/mps/code/range.c +++ b/mps/code/range.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2013-2018 Ravenbrook Limited. See end of file for license. * - * .design: + * .design: */ #include "check.h" diff --git a/mps/code/range.h b/mps/code/range.h index a4a2db3d8a3..9f2eda13492 100644 --- a/mps/code/range.h +++ b/mps/code/range.h @@ -5,7 +5,7 @@ * * .purpose: Representation of address ranges. * - * .design: + * .design: */ #ifndef range_h diff --git a/mps/code/rangetree.c b/mps/code/rangetree.c index ef0b83ac0f6..64a32cf52a2 100644 --- a/mps/code/rangetree.c +++ b/mps/code/rangetree.c @@ -38,7 +38,7 @@ void RangeTreeFinish(RangeTree rangeTree) /* RangeTreeCompare -- Compare key to [base,limit) * - * See + * */ Compare RangeTreeCompare(Tree tree, TreeKey key) diff --git a/mps/code/rangetree.h b/mps/code/rangetree.h index c7d338682fc..fb6d5903c55 100644 --- a/mps/code/rangetree.h +++ b/mps/code/rangetree.h @@ -30,7 +30,7 @@ extern void RangeTreeFinish(RangeTree rangeTree); /* Compare and key functions for use with TreeFind, TreeInsert, etc. * * We pass the rangeTree base directly as a TreeKey (void *) assuming - * that Addr can be encoded, possibly breaking . + * that Addr can be encoded, possibly breaking . * On an exotic platform where this isn't true, pass the address of * base: that is, add an &. */ diff --git a/mps/code/ref.c b/mps/code/ref.c index c9b2de07aa6..66bae90d00e 100644 --- a/mps/code/ref.c +++ b/mps/code/ref.c @@ -5,7 +5,7 @@ * * .purpose: Implement operations on Ref, RefSet, ZoneSet, and Rank. * - * .design: See design.mps.ref and design.mps.refset. + * .design: and . */ #include "mpm.h" diff --git a/mps/code/ring.c b/mps/code/ring.c index 9ceeecfa232..7b44b9d8b41 100644 --- a/mps/code/ring.c +++ b/mps/code/ring.c @@ -8,7 +8,7 @@ * .purpose: Rings are used to manage potentially unbounded collections * of things. * - * .sources: + * .sources: */ #include "ring.h" @@ -21,9 +21,9 @@ SRCID(ring, "$Id$"); /* RingCheck, RingCheckSingle -- check the validity of a ring node * * RingCheck performs a consistency check on the ring node - * (). RingCheckSingle performs the same check, but + * . RingCheckSingle performs the same check, but * also checks that the ring node is a singleton - * (). + * . */ Bool RingCheck(Ring ring) @@ -49,7 +49,7 @@ Bool RingCheckSingle(Ring ring) /* RingIsSingle -- return true if ring is a singleton * - * See + * */ Bool RingIsSingle(Ring ring) @@ -62,7 +62,7 @@ Bool RingIsSingle(Ring ring) /* RingLength -- return the number of nodes in the ring, not including * this node * - * See + * */ Count RingLength(Ring ring) diff --git a/mps/code/ring.h b/mps/code/ring.h index c7d154dbe5c..6428b0fbf1b 100644 --- a/mps/code/ring.h +++ b/mps/code/ring.h @@ -32,7 +32,7 @@ extern Bool RingCheckSingle(Ring ring); extern Bool RingIsSingle(Ring ring); extern Count RingLength(Ring ring); -/* .ring.init: See */ +/* .ring.init: */ extern void (RingInit)(Ring ring); #define RingInit(ring) \ BEGIN \ @@ -43,7 +43,7 @@ extern void (RingInit)(Ring ring); AVER(RingCheck(_ring)); \ END -/* .ring.finish: See */ +/* .ring.finish: */ extern void (RingFinish)(Ring ring); #define RingFinish(ring) \ BEGIN \ @@ -53,7 +53,7 @@ extern void (RingFinish)(Ring ring); _ring->prev = RingNONE; \ END -/* .ring.append: See */ +/* .ring.append: */ extern void (RingAppend)(Ring ring, Ring new); #define RingAppend(ring, new) \ BEGIN \ @@ -79,7 +79,7 @@ extern void (RingInsert)(Ring ring, Ring new); _ring->next = _new; \ END -/* .ring.remove: See */ +/* .ring.remove: */ extern void (RingRemove)(Ring old); #define RingRemove(old) \ BEGIN \ @@ -92,19 +92,19 @@ extern void (RingRemove)(Ring old); _old->prev = _old; \ END -/* .ring.next: See */ +/* .ring.next: */ extern Ring (RingNext)(Ring ring); #define RingNext(ring) ((ring)->next) -/* .ring.prev: See */ +/* .ring.prev: */ extern Ring (RingPrev)(Ring ring); #define RingPrev(ring) ((ring)->prev) -/* .ring.elt: See */ +/* .ring.elt: */ #define RING_ELT(type, field, node) \ PARENT(type ## Struct, field, node) -/* .ring.for: See */ +/* .ring.for: */ #define RING_FOR(node, ring, next) \ for(node = RingNext(ring), next = RingNext(node); \ node != (ring); \ diff --git a/mps/code/root.c b/mps/code/root.c index c592c8120ed..cf8846c3435 100644 --- a/mps/code/root.c +++ b/mps/code/root.c @@ -5,8 +5,8 @@ * * .purpose: This is the implementation of the root datatype. * - * .design: For design, see and - * design.mps.root-interface. */ + * .design: For design, see and + * . */ #include "mpm.h" @@ -130,7 +130,7 @@ Bool RootCheck(Root root) break; case RootTHREAD: - CHECKD_NOSIG(Thread, root->the.thread.thread); /* */ + CHECKD_NOSIG(Thread, root->the.thread.thread); /* */ CHECKL(FUNCHECK(root->the.thread.scan_area)); /* Can't check anything about closure as it could mean anything to scan_area. */ @@ -138,7 +138,7 @@ Bool RootCheck(Root root) break; case RootTHREAD_TAGGED: - CHECKD_NOSIG(Thread, root->the.thread.thread); /* */ + CHECKD_NOSIG(Thread, root->the.thread.thread); /* */ CHECKL(FUNCHECK(root->the.thread.scan_area)); /* Can't check anything about tag as it could mean anything to scan_area. */ @@ -175,7 +175,7 @@ Bool RootCheck(Root root) * RootCreate* set up the appropriate union member, and call the generic * create function to do the actual creation * - * See for initial value. */ + * See for initial value. */ static Res rootCreate(Root *rootReturn, Arena arena, Rank rank, RootMode mode, RootVar type, @@ -210,7 +210,7 @@ static Res rootCreate(Root *rootReturn, Arena arena, root->protBase = (Addr)0; root->protLimit = (Addr)0; - /* See */ + /* */ RingInit(&root->arenaRing); root->serial = globals->rootSerial; @@ -452,7 +452,7 @@ void RootDestroy(Root root) /* RootArena -- return the arena of a root * - * Must be thread-safe. See */ + * Must be thread-safe. */ Arena RootArena(Root root) { diff --git a/mps/code/sa.c b/mps/code/sa.c index f446a3218ca..0abf1aa206b 100644 --- a/mps/code/sa.c +++ b/mps/code/sa.c @@ -49,7 +49,7 @@ Bool SparseArrayCheck(SparseArray sa) CHECKS(SparseArray, sa); CHECKL(sa->base != NULL); CHECKL(sa->elementSize >= 1); - CHECKD_NOSIG(VM, sa->vm); /* */ + CHECKD_NOSIG(VM, sa->vm); /* */ CHECKL(sa->elementSize <= VMPageSize(sa->vm)); CHECKL(sa->length > 0); CHECKD_NOSIG(BT, sa->mapped); diff --git a/mps/code/seg.c b/mps/code/seg.c index 8eb5ae45883..30b2c242434 100644 --- a/mps/code/seg.c +++ b/mps/code/seg.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * - * .design: The design for this module is . + * .design: The design for this module is . * * PURPOSE * @@ -216,7 +216,7 @@ static void segAbsFinish(Inst inst) RingFinish(SegPoolRing(seg)); /* Check that the segment is not exposed, or in the shield */ - /* cache (see ). */ + /* cache . */ AVER(seg->depth == 0); /* Check not shielded or protected (so that pages in hysteresis */ /* fund are not protected) */ @@ -601,7 +601,7 @@ Bool SegNext(Seg *segReturn, Arena arena, Seg seg) /* SegMerge -- Merge two adjacent segments * - * See + * */ Res SegMerge(Seg *mergedSegReturn, Seg segLo, Seg segHi) @@ -624,7 +624,7 @@ Res SegMerge(Seg *mergedSegReturn, Seg segLo, Seg segHi) arena = PoolArena(SegPool(segLo)); if (segLo->queued || segHi->queued) - ShieldFlush(arena); /* see */ + ShieldFlush(arena); /* see */ /* Invoke class-specific methods to do the merge */ res = Method(Seg, segLo, merge)(segLo, segHi, base, mid, limit); @@ -648,7 +648,7 @@ failMerge: /* SegSplit -- Split a segment * * The segment is split at the indicated position. - * See + * */ Res SegSplit(Seg *segLoReturn, Seg *segHiReturn, Seg seg, Addr at) @@ -678,7 +678,7 @@ Res SegSplit(Seg *segLoReturn, Seg *segHiReturn, Seg seg, Addr at) AVER(!SegBuffer(&buffer, seg) || BufferLimit(buffer) <= at); if (seg->queued) - ShieldFlush(arena); /* see */ + ShieldFlush(arena); /* see */ AVER(SegSM(seg) == SegPM(seg)); /* Allocate the new segment object from the control pool */ @@ -781,7 +781,7 @@ Res SegScan(Bool *totalReturn, Seg seg, ScanState ss) /* SegFix* -- fix a reference to an object in this segment * - * See . + * . */ Res SegFix(Seg seg, ScanState ss, Addr *refIO) @@ -876,7 +876,7 @@ Bool SegCheck(Seg seg) CHECKL(AddrIsArenaGrain(TractBase(seg->firstTract), arena)); CHECKL(AddrIsArenaGrain(seg->limit, arena)); CHECKL(seg->limit > TractBase(seg->firstTract)); - /* CHECKL(BoolCheck(seq->queued)); */ + /* CHECKL(BoolCheck(seq->queued)); */ /* Each tract of the segment must agree about the segment and its * pool. Note that even if the CHECKs are compiled away there is @@ -905,25 +905,25 @@ Bool SegCheck(Seg seg) CHECKD_NOSIG(Ring, &seg->poolRing); - /* Shield invariants -- see design.mps.shield. */ + /* Shield invariants -- see . */ /* The protection mode is never more than the shield mode - (design.mps.shield.inv.prot.shield). */ + . */ CHECKL(BS_DIFF(seg->pm, seg->sm) == 0); /* All unsynced segments have positive depth or are in the queue - (design.mps.shield.inv.unsynced.depth). */ + . */ CHECKL(seg->sm == seg->pm || seg->depth > 0 || seg->queued); CHECKL(RankSetCheck(seg->rankSet)); if (seg->rankSet == RankSetEMPTY) { - /* : If there are no refs */ + /* : If there are no refs */ /* in the segment then it cannot contain black or grey refs. */ CHECKL(seg->grey == TraceSetEMPTY); CHECKL(seg->sm == AccessSetEMPTY); CHECKL(seg->pm == AccessSetEMPTY); } else { - /* : The Tracer only permits */ + /* : The Tracer only permits */ /* one rank per segment [ref?] so this field is either empty or a */ /* singleton. */ CHECKL(RankSetIsSingle(seg->rankSet)); @@ -1075,7 +1075,7 @@ static Res segNoMerge(Seg seg, Seg segHi, /* segTrivMerge -- Basic Seg merge method * * .similar: Segments must be "sufficiently similar". - * See + * */ static Res segTrivMerge(Seg seg, Seg segHi, @@ -1110,7 +1110,7 @@ static Res segTrivMerge(Seg seg, Seg segHi, AVER(seg->depth == segHi->depth); AVER(seg->queued == segHi->queued); /* Neither segment may be exposed, or in the shield cache */ - /* See & */ + /* & */ AVER(seg->depth == 0); AVER(!seg->queued); @@ -1172,7 +1172,7 @@ static Res segTrivSplit(Seg seg, Seg segHi, AVER(SegLimit(seg) == limit); /* Segment may not be exposed, or in the shield queue */ - /* See & */ + /* & */ AVER(seg->depth == 0); AVER(!seg->queued); @@ -1312,7 +1312,7 @@ Res SegSingleAccess(Seg seg, Arena arena, Addr addr, if(WordIsAligned((Word)ref, sizeof(Word))) { Rank rank; /* See the note in TraceRankForAccess */ - /* (). */ + /* . */ rank = TraceRankForAccess(arena, seg); TraceScanSingleRef(arena->flippedTraces, rank, arena, @@ -1435,7 +1435,7 @@ Bool GCSegCheck(GCSeg gcseg) if (gcseg->buffer != NULL) { CHECKU(Buffer, gcseg->buffer); - /* */ + /* */ CHECKL(BufferPool(gcseg->buffer) == SegPool(seg)); CHECKL(BufferRankSet(gcseg->buffer) == SegRankSet(seg)); } @@ -1446,7 +1446,7 @@ Bool GCSegCheck(GCSeg gcseg) RingIsSingle(&gcseg->greyRing)); if (seg->rankSet == RankSetEMPTY) { - /* */ + /* */ CHECKL(gcseg->summary == RefSetEMPTY); } @@ -1849,7 +1849,7 @@ static void gcSegUnsetBuffer(Seg seg) /* gcSegMerge -- GCSeg merge method * * .buffer: Can't merge two segments both with buffers. - * See . + * . */ static Res gcSegMerge(Seg seg, Seg segHi, @@ -1882,7 +1882,7 @@ static Res gcSegMerge(Seg seg, Seg segHi, /* Assume that the write barrier shield is being used to implement the remembered set only, and so we can merge the shield and protection modes by unioning the segment summaries. See also - design.mps.seg.merge.inv.similar. */ + . */ summary = RefSetUnion(gcseg->summary, gcsegHi->summary); SegSetSummary(seg, summary); SegSetSummary(segHi, summary); @@ -1890,7 +1890,7 @@ static Res gcSegMerge(Seg seg, Seg segHi, if (SegPM(seg) != SegPM(segHi)) { /* This shield won't cope with a partially-protected segment, so flush the shield queue to bring both halves in sync. See also - design.mps.seg.split-merge.shield.re-flush. */ + . */ ShieldFlush(PoolArena(SegPool(seg))); } diff --git a/mps/code/segsmss.c b/mps/code/segsmss.c index 96f60dd2798..c0167374289 100644 --- a/mps/code/segsmss.c +++ b/mps/code/segsmss.c @@ -41,7 +41,7 @@ typedef struct AMSTStruct { Count badMerges; /* count of unsuccessful segment merges */ Count bsplits; /* count of buffered segment splits */ Count bmerges; /* count of buffered segment merges */ - Sig sig; /* */ + Sig sig; /* */ } AMSTStruct; typedef struct AMSTStruct *AMST; @@ -62,7 +62,7 @@ ATTRIBUTE_UNUSED static Bool AMSTCheck(AMST amst) { CHECKS(AMST, amst); - CHECKD_NOSIG(AMS, AMST2AMS(amst)); /* */ + CHECKD_NOSIG(AMS, AMST2AMS(amst)); /* */ return TRUE; } @@ -89,7 +89,7 @@ typedef struct AMSTSegStruct { AMSSegStruct amsSegStruct; /* superclass fields must come first */ AMSTSeg next; /* mergeable next segment, or NULL */ AMSTSeg prev; /* mergeable prev segment, or NULL */ - Sig sig; /* */ + Sig sig; /* */ } AMSTSegStruct; @@ -100,7 +100,7 @@ ATTRIBUTE_UNUSED static Bool AMSTSegCheck(AMSTSeg amstseg) { CHECKS(AMSTSeg, amstseg); - CHECKD_NOSIG(AMSSeg, &amstseg->amsSegStruct); /* */ + CHECKD_NOSIG(AMSSeg, &amstseg->amsSegStruct); /* */ /* don't bother to do other checks - this is a stress test */ return TRUE; } @@ -165,7 +165,7 @@ static void amstSegFinish(Inst inst) * .fail: Test proper handling of the most complex failure cases * by deliberately detecting failure sometimes after calling the * next method. We handle the error by calling the anti-method. - * This isn't strictly safe (see ). + * This isn't strictly safe . * But we assume here that we won't run out of memory when calling the * anti-method. */ diff --git a/mps/code/shield.c b/mps/code/shield.c index c50218fda3f..7c325533b48 100644 --- a/mps/code/shield.c +++ b/mps/code/shield.c @@ -3,10 +3,10 @@ * $Id$ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * - * See: idea.shield, design.mps.shield. + * See: idea.shield, . * * IMPORTANT: HERE BE DRAGONS! This code is subtle and - * critical. Ensure you have read and understood design.mps.shield + * critical. Ensure you have read and understood * before you touch it. */ @@ -65,21 +65,21 @@ static Bool SegIsSynced(Seg seg); Bool ShieldCheck(Shield shield) { CHECKS(Shield, shield); - /* Can't check Boolean bitfields */ + /* Can't check Boolean bitfields */ CHECKL(shield->queue == NULL || shield->length > 0); CHECKL(shield->limit <= shield->length); CHECKL(shield->next <= shield->limit); /* The mutator is not suspended while outside the shield - (design.mps.shield.inv.outside.running). */ + . */ CHECKL(shield->inside || !shield->suspended); /* If any segment is not synced, the mutator is suspended - (design.mps.shield.inv.unsynced.suspended). */ + . */ CHECKL(shield->unsynced == 0 || shield->suspended); /* The total depth is zero while outside the shield - (design.mps.shield.inv.outside.depth). */ + . */ CHECKL(shield->inside || shield->depth == 0); /* There are no unsynced segments when we're outside the shield. */ @@ -150,7 +150,7 @@ Res ShieldDescribe(Shield shield, mps_lib_FILE *stream, Count depth) /* SegIsSynced -- is a segment synced? * - * See design.mps.shield.def.synced. + * . */ static Bool SegIsSynced(Seg seg) @@ -200,7 +200,7 @@ static void shieldSetPM(Shield shield, Seg seg, AccessSet mode) /* SegIsExposed -- is a segment exposed? * - * See design.mps.shield.def.exposed. + * . */ static Bool SegIsExposed(Seg seg) @@ -212,7 +212,7 @@ static Bool SegIsExposed(Seg seg) /* shieldSync -- synchronize a segment's protection * - * See design.mps.shield.inv.prot.shield. + * . */ static void shieldSync(Shield shield, Seg seg) @@ -228,7 +228,7 @@ static void shieldSync(Shield shield, Seg seg) /* shieldSuspend -- suspend the mutator * - * Called from inside impl.c.shield when any segment is not synced, in + * Called from inside when any segment is not synced, in * order to provide exclusive access to the segment by the MPS. See * .inv.unsynced.suspended. */ @@ -250,7 +250,7 @@ static void shieldSuspend(Arena arena) /* ShieldHold -- suspend mutator access to the unprotectable * - * From outside impl.c.shield, this is used when we really need to + * From outside , this is used when we really need to * lock everything against the mutator -- for example, during flip * when we must scan all thread registers at once. */ @@ -284,7 +284,7 @@ void (ShieldRelease)(Arena arena) /* It is only correct to actually resume the mutator here if shield->depth is 0, shield->unsycned is 0, and the queue is empty. */ - /* See design.mps.shield.improv.resume for a discussion of when it + /* See for a discussion of when it might be a good idea to resume the mutator early. */ } @@ -296,7 +296,7 @@ void (ShieldRelease)(Arena arena) static void shieldProtLower(Shield shield, Seg seg, AccessSet mode) { - /* */ + /* */ SHIELD_AVERT_CRITICAL(Seg, seg); AVERT_CRITICAL(AccessSet, mode); @@ -387,7 +387,7 @@ static Compare shieldQueueEntryCompare(void *left, void *right, void *closure) * * TODO: Could we keep extending the outstanding area over memory * that's *not* in the queue but has the same protection mode? Might - * require design.mps.shield.improve.noseg. + * require . */ static void shieldFlushEntries(Shield shield) @@ -441,7 +441,7 @@ static void shieldQueue(Arena arena, Seg seg) { Shield shield; - /* */ + /* */ AVERT_CRITICAL(Arena, arena); shield = ArenaShield(arena); SHIELD_AVERT_CRITICAL(Seg, seg); @@ -542,11 +542,11 @@ void (ShieldRaise)(Arena arena, Seg seg, AccessSet mode) AVER(!shield->queuePending); shield->queuePending = TRUE; - /* design.mps.shield.inv.prot.shield preserved */ + /* preserved */ shieldSetSM(ArenaShield(arena), seg, BS_UNION(SegSM(seg), mode)); - /* Ensure design.mps.shield.inv.unsynced.suspended and - design.mps.shield.inv.unsynced.depth */ + /* Ensure and + */ shieldQueue(arena, seg); shield->queuePending = FALSE; @@ -568,12 +568,12 @@ void (ShieldLower)(Arena arena, Seg seg, AccessSet mode) AVERT(AccessSet, mode); /* SegIsSynced(seg) is not changed by the following preserving - design.mps.shield.inv.unsynced.suspended and - design.mps.shield.inv.prot.shield. */ + and + . */ shieldSetSM(shield, seg, BS_DIFF(SegSM(seg), mode)); /* TODO: Do we need to promptly call shieldProtLower here? It loses the opportunity to coalesce the protection call. It would - violate design.mps.shield.prop.inside.access. */ + violate . */ /* shieldQueue(arena, seg); */ shieldProtLower(shield, seg, mode); @@ -606,7 +606,7 @@ void (ShieldEnter)(Arena arena) * While developing the shield it is very easy to make a consistency * mistake that causes random corruption of the heap, usually because * all the attempts to avoid protection and suspension end up failing - * to enforce design.mps.shield.prop.mutator.access. In these cases, + * to enforce . In these cases, * try enabling SHIELD_DEBUG and extending this code as necessary. * * The basic idea is to iterate over *all* segments and check @@ -652,14 +652,14 @@ static void shieldDebugCheck(Arena arena) * called before queued segments are destroyed, to remove them from * the queue. We flush the whole queue because finding the entry is * O(n) and we're very likely reclaiming and destroying loads of - * segments. See also design.mps.shield.improv.resume. + * segments. See also . * * The memory for the segment may become spare, and not released back * to the operating system. Since we keep track of protection on * segments and not grains we have no way of keeping track of the * protection state of spare grains. We therefore flush the protection * to get it back into the default state (unprotected). See also - * design.mps.shield.improv.noseg. + * . */ void (ShieldFlush)(Arena arena) @@ -718,7 +718,7 @@ void (ShieldExpose)(Arena arena, Seg seg) Shield shield; AccessSet mode = AccessREAD | AccessWRITE; - /* */ + /* */ AVERT_CRITICAL(Arena, arena); shield = ArenaShield(arena); AVER_CRITICAL(shield->inside); @@ -731,9 +731,9 @@ void (ShieldExpose)(Arena arena, Seg seg) if (BS_INTER(SegPM(seg), mode) != AccessSetEMPTY) shieldSuspend(arena); - /* Ensure design.mps.shield.inv.expose.prot. */ + /* Ensure . */ /* TODO: Mass exposure -- see - design.mps.shield.improv.mass-expose. */ + . */ shieldProtLower(shield, seg, mode); } @@ -744,7 +744,7 @@ void (ShieldCover)(Arena arena, Seg seg) { Shield shield; - /* */ + /* */ AVERT_CRITICAL(Arena, arena); shield = ArenaShield(arena); AVERT_CRITICAL(Seg, seg); @@ -755,7 +755,7 @@ void (ShieldCover)(Arena arena, Seg seg) AVER_CRITICAL(shield->depth > 0); --shield->depth; - /* Ensure design.mps.shield.inv.unsynced.depth. */ + /* Ensure . */ shieldQueue(arena, seg); } diff --git a/mps/code/splay.c b/mps/code/splay.c index 68126e619d6..155eb88ce96 100644 --- a/mps/code/splay.c +++ b/mps/code/splay.c @@ -11,7 +11,7 @@ * * .note.stack: It's important that the MPS have a bounded stack size, * and this is a problem for tree algorithms. Basically, we have to - * avoid recursion. See design.mps.sp.sol.depth.no-recursion. + * avoid recursion. . * * .critical: In manual-allocation-bound programs using MVFF, many of * these functions are on the critical paths via mps_alloc (and then @@ -66,8 +66,8 @@ Bool SplayTreeCheck(SplayTree splay) * ``nodeKey`` extracts a key from a tree node for passing to ``compare``. * * ``updateNode`` will be applied to nodes from bottom to top when the - * tree is restructured in order to maintain client properties (see - * design.mps.splay.prop). If SplayTrivUpdate is be passed, faster + * tree is restructured in order to maintain client properties + * . If SplayTrivUpdate is be passed, faster * algorithms are chosen for splaying. Compare SplaySplitDown with * SplaySplitRev. */ @@ -189,7 +189,7 @@ Count SplayDebugCount(SplayTree splay) * Link the top node of the middle tree into the left child of the * right tree, then step to the left child. Returns new middle. * - * See . + * . * * middle rightNext middle * B E A E @@ -294,7 +294,7 @@ typedef struct SplayStateStruct { * Split a tree into three according to a key and a comparison, * splaying nested left and right nodes. Preserves tree ordering. * This is a top-down splay procedure, and does not use any recursion - * or require any parent pointers (see design.mps.impl.top-down). + * or require any parent pointers . * * Returns cmp, the relationship of the root of the middle tree to the key, * and a SplayState. @@ -407,7 +407,7 @@ stop: * * Does *not* maintain client properties. See SplayAssembleRev. * - * See . + * . */ static void SplayAssembleDown(SplayTree splay, SplayState state) @@ -703,7 +703,7 @@ static void SplayAssemble(SplayTree splay, SplayState state) * case the new root is the last node visited which is either the closest * node left or the closest node right of the key. * - * See . + * . */ static Compare SplaySplay(SplayTree splay, TreeKey key, @@ -921,7 +921,7 @@ static Tree SplayTreeSuccessor(SplayTree splay) * good moment to do it, avoiding another search and splay. * * This implementation uses SplaySplit to find both neighbours in a - * single splay (see design.mps.splay.impl.neighbours). + * single splay . */ Bool SplayTreeNeighbours(Tree *leftReturn, Tree *rightReturn, @@ -1372,7 +1372,7 @@ void SplayNodeInit(SplayTree splay, Tree node) /* SplayTreeDescribe -- Describe a splay tree * - * See . + * . */ Res SplayTreeDescribe(SplayTree splay, mps_lib_FILE *stream, Count depth, diff --git a/mps/code/splay.h b/mps/code/splay.h index d9cf821eb90..92a73fa131f 100644 --- a/mps/code/splay.h +++ b/mps/code/splay.h @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license. * - * .source: + * .source: */ #ifndef splay_h diff --git a/mps/code/ss.c b/mps/code/ss.c index 3e378191840..391f1d5a2ec 100644 --- a/mps/code/ss.c +++ b/mps/code/ss.c @@ -4,12 +4,12 @@ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * * This scans the mutator's stack and fixes the registers that may - * contain roots. See . + * contain roots. . * * This is a generic implementation, but it makes assumptions that, * while true on all the platforms we currently (version 1.115) * support, may not be true on all platforms. See - * . + * . * * .assume.desc: The stack is descending (and so stackHot is a lower * address than stackCold). @@ -29,7 +29,7 @@ SRCID(ss, "$Id$"); * On all supported platforms, the arguments are pushed on to the * stack by the caller below its other local data, so as long as * it does not use something like alloca, the address of the argument - * is a hot stack pointer. See design.mps.ss.sol.stack.hot. + * is a hot stack pointer. . */ ATTRIBUTE_NOINLINE @@ -55,8 +55,8 @@ Res StackScan(ScanState ss, void *stackCold, AVER(arena->stackWarm != NULL); warmest = arena->stackWarm; if (warmest == NULL) { - /* Somehow missed saving the context at the entry point (see - ): do it now. + /* Somehow missed saving the context at the entry point + : do it now. We assign warmest *before* calling STACK_CONTEXT_SAVE because that calls setjmp, and local variables assigned after a call to setjmp provoke the error "variable might be clobbered by diff --git a/mps/code/ss.h b/mps/code/ss.h index b784746dc3f..ace742f52af 100644 --- a/mps/code/ss.h +++ b/mps/code/ss.h @@ -5,7 +5,7 @@ * * This module saves the mutator context on entry to the MPS, and * provides functions for decoding the context and scanning the root - * registers. See . + * registers. . */ #ifndef ss_h @@ -18,7 +18,7 @@ * * The jumpBuffer is used to capture most of the mutator's state on * entry to the MPS, but can't capture it all. See - * design.mps.stack-scan.sol.setjmp.scan. + * . */ #include diff --git a/mps/code/table.h b/mps/code/table.h index 9e7c8d1b9b4..a3d2f93bc22 100644 --- a/mps/code/table.h +++ b/mps/code/table.h @@ -29,7 +29,7 @@ typedef void (*TableFreeFunction)(void *closure, void *p, size_t size); #define TableSig ((Sig)0x5192AB13) /* SIGnature TABLE */ typedef struct TableStruct { - Sig sig; /* */ + Sig sig; /* */ Count length; /* Number of slots in the array */ Count count; /* Active entries in the table */ TableEntry array; /* Array of table slots */ diff --git a/mps/code/testthr.h b/mps/code/testthr.h index 2c7b0056895..165194b6345 100644 --- a/mps/code/testthr.h +++ b/mps/code/testthr.h @@ -6,7 +6,7 @@ * .purpose: Simple interface to threads that makes it possible to * write test cases that are portable between Windows (using the * implementation in testthrw3.c) and Unix (using the implementation - * in testthrix.c). See . + * in testthrix.c). . */ #ifndef testthr_h diff --git a/mps/code/th.h b/mps/code/th.h index 63140a18672..c0b36cc7e83 100644 --- a/mps/code/th.h +++ b/mps/code/th.h @@ -4,7 +4,7 @@ * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. * * .purpose: Provides thread suspension facilities to the shield. - * See . Each thread has to be + * . Each thread has to be * individually registered and deregistered with an arena. */ diff --git a/mps/code/than.c b/mps/code/than.c index 6b13f4cf975..7d79b26d09d 100644 --- a/mps/code/than.c +++ b/mps/code/than.c @@ -5,7 +5,7 @@ * * This is a single-threaded implementation of the threads manager. * Has stubs for thread suspension. - * See . + * . */ #include "mpm.h" @@ -14,7 +14,7 @@ SRCID(than, "$Id$"); typedef struct mps_thr_s { /* ANSI fake thread structure */ - Sig sig; /* */ + Sig sig; /* */ Serial serial; /* from arena->threadSerial */ Arena arena; /* owning arena */ RingStruct arenaRing; /* attaches to arena */ @@ -107,7 +107,7 @@ Thread ThreadRingThread(Ring threadRing) } -/* Must be thread-safe. See . */ +/* Must be thread-safe. . */ Arena ThreadArena(Thread thread) { diff --git a/mps/code/thix.c b/mps/code/thix.c index 40555392075..78d70dffe50 100644 --- a/mps/code/thix.c +++ b/mps/code/thix.c @@ -6,7 +6,7 @@ * .purpose: This is a pthreads implementation of the threads manager. * This implements . * - * .design: See . + * .design: . * * .thread.id: The thread id is used to identify the current thread. * @@ -49,7 +49,7 @@ SRCID(thix, "$Id$"); /* ThreadStruct -- thread descriptor */ typedef struct mps_thr_s { /* PThreads thread structure */ - Sig sig; /* */ + Sig sig; /* */ Serial serial; /* from arena->threadSerial */ Arena arena; /* owning arena */ RingStruct arenaRing; /* threads attached to arena */ @@ -237,7 +237,7 @@ Thread ThreadRingThread(Ring threadRing) /* ThreadArena -- get the arena of a thread * - * Must be thread-safe. See . + * Must be thread-safe. . */ Arena ThreadArena(Thread thread) @@ -319,7 +319,7 @@ Res ThreadDescribe(Thread thread, mps_lib_FILE *stream, Count depth) /* threadAtForkChild -- for each arena, move threads except for the - * current thread to the dead ring . + * current thread to the dead ring . */ static Bool threadForkChild(Thread thread) diff --git a/mps/code/thw3.c b/mps/code/thw3.c index 980c323d674..d71617eb660 100644 --- a/mps/code/thw3.c +++ b/mps/code/thw3.c @@ -4,7 +4,7 @@ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * * Implements thread registration, suspension, and stack and register - * scanning. See . + * scanning. . * * .thread.id: The thread id is used to identify the current thread. * .thread.handle: The thread handle needs the enough access to @@ -65,7 +65,7 @@ SRCID(thw3, "$Id$"); typedef struct mps_thr_s { /* Win32 thread structure */ - Sig sig; /* */ + Sig sig; /* */ Serial serial; /* from arena->threadSerial */ Arena arena; /* owning arena */ RingStruct arenaRing; /* threads attached to arena */ @@ -231,7 +231,7 @@ Thread ThreadRingThread(Ring threadRing) return thread; } -/* Must be thread-safe. See . */ +/* Must be thread-safe. . */ Arena ThreadArena(Thread thread) { diff --git a/mps/code/thxc.c b/mps/code/thxc.c index fb45f35a09f..fad6e457872 100644 --- a/mps/code/thxc.c +++ b/mps/code/thxc.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * - * .design: See . + * .design: . * * * TODO @@ -38,7 +38,7 @@ SRCID(thxc, "$Id$"); typedef struct mps_thr_s { /* macOS thread structure */ - Sig sig; /* */ + Sig sig; /* */ Serial serial; /* from arena->threadSerial */ Arena arena; /* owning arena */ RingStruct arenaRing; /* attaches to arena */ @@ -214,7 +214,7 @@ Thread ThreadRingThread(Ring threadRing) } -/* Must be thread-safe. See . */ +/* Must be thread-safe. . */ Arena ThreadArena(Thread thread) { @@ -310,7 +310,7 @@ Res ThreadDescribe(Thread thread, mps_lib_FILE *stream, Count depth) /* threadAtForkPrepare -- for each arena, mark the current thread as - * forking . + * forking . */ static Bool threadForkPrepare(Thread thread) @@ -337,7 +337,7 @@ static void threadAtForkPrepare(void) /* threadAtForkParent -- for each arena, clear the forking flag for - * all threads . + * all threads . */ static Bool threadForkParent(Thread thread) @@ -361,8 +361,8 @@ static void threadAtForkParent(void) /* threadAtForkChild -- For each arena, move all threads to the dead * ring, except for the thread that was marked as forking by the - * prepare handler , for which - * update its mach port . + * prepare handler , for which + * update its mach port . */ static Bool threadForkChild(Thread thread) diff --git a/mps/code/trace.c b/mps/code/trace.c index 6c7ef613366..123656d2999 100644 --- a/mps/code/trace.c +++ b/mps/code/trace.c @@ -5,7 +5,7 @@ * See end of file for license. * Portions copyright (C) 2002 Global Graphics Software. * - * .design: . */ + * .design: . */ #include "locus.h" #include "mpm.h" @@ -629,7 +629,7 @@ static Res traceFlip(Trace trace) /* needs to change when we flip later (i.e. have a read-barrier */ /* collector), so that we allocate grey or white before the flip */ /* and black afterwards. For instance, see */ - /* . */ + /* . */ /* (surely we mean "write-barrier" not "read-barrier" above? */ /* drj 2003-02-19) */ @@ -704,7 +704,7 @@ Res TraceCreate(Trace *traceReturn, Arena arena, TraceStartWhy why) found: trace = ArenaTrace(arena, ti); - AVER(trace->sig == SigInvalid); /* */ + AVER(trace->sig == SigInvalid); /* */ trace->arena = arena; trace->why = why; @@ -1165,13 +1165,13 @@ static Res traceScanSegRes(TraceSet ts, Rank rank, Arena arena, Seg seg) }); /* Following is true whether or not scan was total. */ - /* See . */ + /* . */ /* .verify.segsummary: were the seg contents, as found by this * scan, consistent with the recorded SegSummary? */ AVER(RefSetSub(ScanStateUnfixedSummary(ss), SegSummary(seg))); /* */ - /* Write barrier deferral -- see design.mps.write-barrier.deferral. */ + /* Write barrier deferral -- see . */ /* Did the segment refer to the white set? */ if (ZoneSetInter(ScanStateUnfixedSummary(ss), white) == ZoneSetEMPTY) { /* Boring scan. One step closer to raising the write barrier. */ @@ -1260,7 +1260,7 @@ void TraceSegAccess(Arena arena, Seg seg, AccessSet mode) EVENT3(TraceAccess, arena, seg, mode); - /* Write barrier deferral -- see design.mps.write-barrier.deferral. */ + /* Write barrier deferral -- see . */ if (writeHit) seg->defer = WB_DEFER_HIT; @@ -1328,7 +1328,7 @@ mps_res_t _mps_fix2(mps_ss_t mps_ss, mps_addr_t *mps_ref_io) Res res; /* Special AVER macros are used on the critical path. */ - /* See */ + /* */ AVERT_CRITICAL(ScanState, ss); AVER_CRITICAL(mps_ref_io != NULL); @@ -1346,7 +1346,7 @@ mps_res_t _mps_fix2(mps_ss_t mps_ss, mps_addr_t *mps_ref_io) * but inlined so that we can distinguish between "not pointing to * chunk" and "pointing to chunk but not to tract" so that we can * check the rank in the latter case. See - * + * * * If compilers fail to do a good job of inlining ChunkOfAddr and * TreeFind then it may become necessary to inline at least the @@ -1360,7 +1360,7 @@ mps_res_t _mps_fix2(mps_ss_t mps_ss, mps_addr_t *mps_ref_io) i = INDEX_OF_ADDR(chunk, ref); if (!BTGet(chunk->allocTable, i)) { /* Reference points into a chunk but not to an allocated tract. - * See */ + * */ AVER_CRITICAL(ss->rank < RankEXACT); /* */ goto done; } @@ -1375,7 +1375,7 @@ mps_res_t _mps_fix2(mps_ss_t mps_ss, mps_addr_t *mps_ref_io) this test when walking references in the roots. */ if (TraceSetInter(SegWhite(seg), ss->traces) == TraceSetEMPTY) { /* Reference points to a segment that is not white for any of the - * active traces. See */ + * active traces. */ STATISTIC({ ++ss->segRefCount; EVENT_CRITICAL1(TraceFixSeg, seg); @@ -1402,7 +1402,7 @@ mps_res_t _mps_fix2(mps_ss_t mps_ss, mps_addr_t *mps_ref_io) } done: - /* See */ + /* */ ss->fixedSummary = RefSetAdd(ss->arena, ss->fixedSummary, ref); *mps_ref_io = (mps_addr_t)ref; @@ -1509,7 +1509,7 @@ Res TraceScanArea(ScanState ss, Word *base, Word *limit, * recently returned from TraceCreate, with some condemned segments * added. mortality is the fraction of the condemned set expected not * to survive. finishingTime is relative to the current polling clock, - * see . + * see . * * .start.black: All segments are black w.r.t. a newly allocated trace. * However, if TraceStart initialized segments to black when it @@ -1633,7 +1633,7 @@ Res TraceStart(Trace trace, double mortality, double finishingTime) /* traceWork -- a measure of the work done for this trace. * - * See design.mps.type.work. + * . */ #define traceWork(trace) ((Work)((trace)->segScanSize + (trace)->rootScanSize)) diff --git a/mps/code/traceanc.c b/mps/code/traceanc.c index 01126df4aaa..0988550ca96 100644 --- a/mps/code/traceanc.c +++ b/mps/code/traceanc.c @@ -42,7 +42,7 @@ * (Note: this should properly be called "trace begin", but it's much * too late to change it now!) * - * See . + * . */ #define TraceStartMessageSig ((Sig)0x51926535) /* SIGnature TRaceStartMeSsage */ @@ -119,7 +119,7 @@ static MessageClassStruct TraceStartMessageClassStruct = { MessageNoGCCondemnedSize, /* GCCondemnedSize */ MessageNoGCNotCondemnedSize, /* GCNotCondemnedSize */ TraceStartMessageWhy, /* GCStartWhy */ - MessageClassSig /* */ + MessageClassSig /* */ }; static void traceStartMessageInit(Arena arena, TraceStartMessage tsMessage) @@ -246,7 +246,7 @@ void TracePostStartMessage(Trace trace) * (Note: this should properly be called "trace end", but it's much * too late to change it now!) * - * See . + * . */ @@ -337,7 +337,7 @@ static MessageClassStruct TraceMessageClassStruct = { TraceMessageCondemnedSize, /* GCCondemnedSize */ TraceMessageNotCondemnedSize, /* GCNotCondemnedSize */ MessageNoGCStartWhy, /* GCStartWhy */ - MessageClassSig /* */ + MessageClassSig /* */ }; static void traceMessageInit(Arena arena, TraceMessage tMessage) @@ -424,7 +424,7 @@ Bool TraceIdMessagesCheck(Arena arena, TraceId ti) /* TraceIdMessagesCreate -- pre-allocate all messages for this traceid * - * See . + * . * * For remote control of ControlAlloc, to simulate low memory: * #define ControlAlloc !TIMCA_remote() ? ResFAIL : ControlAlloc @@ -477,7 +477,7 @@ failTraceStartMessage: * * Only used during ArenaDestroy. * - * See . + * . */ void TraceIdMessagesDestroy(Arena arena, TraceId ti) diff --git a/mps/code/tract.c b/mps/code/tract.c index f2143b7783b..978df2b4f7a 100644 --- a/mps/code/tract.c +++ b/mps/code/tract.c @@ -393,14 +393,14 @@ Bool TractOfAddr(Tract *tractReturn, Arena arena, Addr addr) Index i; Chunk chunk; - /* */ + /* */ AVER_CRITICAL(tractReturn != NULL); /* .tract.critical */ AVERT_CRITICAL(Arena, arena); b = ChunkOfAddr(&chunk, arena, addr); if (!b) return FALSE; - /* */ + /* */ i = INDEX_OF_ADDR(chunk, addr); /* .addr.free: If the page is recorded as being free then */ /* either the page is free or it is */ @@ -427,7 +427,7 @@ Tract TractOfBaseAddr(Arena arena, Addr addr) AVERT_CRITICAL(Arena, arena); AVER_CRITICAL(AddrIsAligned(addr, ArenaGrainSize(arena))); - /* Check first in the cache, see . */ + /* Check first in the cache, see . */ if (arena->lastTractBase == addr) { tract = arena->lastTract; } else { diff --git a/mps/code/tract.h b/mps/code/tract.h index 3ffabd818c9..d94cfe43a66 100644 --- a/mps/code/tract.h +++ b/mps/code/tract.h @@ -37,11 +37,11 @@ typedef union PagePoolUnion { /* TractStruct -- tract structure * * .tract: Tracts represent the grains of memory allocation from - * the arena. See . + * the arena. . */ typedef struct TractStruct { /* Tract structure */ - PagePoolUnion pool; /* MUST BE FIRST ( pool) */ + PagePoolUnion pool; /* MUST BE FIRST */ Seg seg; /* NULL or segment containing tract */ Addr base; /* Base address of the tract */ } TractStruct; @@ -80,11 +80,10 @@ extern void TractFinish(Tract tract); /* PageUnion -- page descriptor * * .page-table: The page table (defined as a PageUnion array) - * is central to the design of the arena. - * See .*. + * is central to the design of the arena. * * .page: The "pool" field must be the first field of the "tail" - * field of this union. See . + * field of this union. . */ typedef struct PageSpareStruct { @@ -128,7 +127,7 @@ typedef union PageUnion { /* page structure */ #define ChunkSig ((Sig)0x519C804C) /* SIGnature CHUNK */ typedef struct ChunkStruct { - Sig sig; /* */ + Sig sig; /* */ Serial serial; /* serial within the arena */ Arena arena; /* parent arena */ RingStruct arenaRing; /* node in ring of all chunks in arena */ @@ -197,7 +196,7 @@ extern Index IndexOfAddr(Chunk chunk, Addr addr); /* PageIndexBase -- map page index to base address of page * - * See + * */ #define PageIndexBase(chunk, i) \ @@ -218,7 +217,7 @@ extern Index IndexOfAddr(Chunk chunk, Addr addr); /* TRACT_TRACT_FOR -- iterate over a range of tracts in a chunk * - * See . + * . * Parameters arena & limit are evaluated multiple times. * Check first tract & last tract lie with the same chunk. */ @@ -235,7 +234,7 @@ extern Index IndexOfAddr(Chunk chunk, Addr addr); /* TRACT_FOR -- iterate over a range of tracts in a chunk * - * See . + * . * Parameters arena & limit are evaluated multiple times. */ diff --git a/mps/code/tree.c b/mps/code/tree.c index b1022b354b2..f8353050329 100644 --- a/mps/code/tree.c +++ b/mps/code/tree.c @@ -11,7 +11,7 @@ * * .note.stack: It's important that the MPS have a bounded stack size, * and this is a problem for tree algorithms. Basically, we have to - * avoid recursion. See design.mps.sp.sol.depth.no-recursion. + * avoid recursion. . */ #include "tree.h" @@ -537,7 +537,7 @@ void TreeBalance(Tree *treeIO) * The visitor function must return TRUE to delete the current node, * or FALSE to keep it. * - * See . + * . */ void TreeTraverseAndDelete(Tree *treeIO, TreeVisitor visitor, void *closure) diff --git a/mps/code/tree.h b/mps/code/tree.h index a4f883c48cf..fec02310be5 100644 --- a/mps/code/tree.h +++ b/mps/code/tree.h @@ -44,7 +44,7 @@ typedef TreeKey (*TreeKeyFunction)(Tree tree); /* When storing Addrs in a tree, it is fastest to cast the Addr * directly to a TreeKey. This assumes that Addr and TreeKey are - * compatible, possibly breaking . On an exotic + * compatible, possibly breaking . On an exotic * platform where the types are not convertible, take the address of * the variable in TreeKeyOfAddrVar, and dereference the address in * AddrOfTreeKey. diff --git a/mps/code/version.c b/mps/code/version.c index 48db22809c4..c2e60c764a9 100644 --- a/mps/code/version.c +++ b/mps/code/version.c @@ -58,7 +58,7 @@ char MPSCopyrightNotice[] = * The value of MPSVersion is a declared object comprising the * concatenation of all the version info. The "@(#)" prefix is the * convention used by the BSD Unix command what(1); see also - * design.mps.version.impl.tool. + * . */ extern char MPSVersionString[]; diff --git a/mps/code/vm.h b/mps/code/vm.h index 992c318298b..cd9cbd43f48 100644 --- a/mps/code/vm.h +++ b/mps/code/vm.h @@ -20,7 +20,7 @@ #define VMSig ((Sig)0x519B3999) /* SIGnature VM */ typedef struct VMStruct { - Sig sig; /* */ + Sig sig; /* */ Size pageSize; /* operating system page size */ void *block; /* unaligned base of mmap'd memory */ Addr base, limit; /* aligned boundaries of reserved space */ diff --git a/mps/code/vmix.c b/mps/code/vmix.c index 694a1625028..a82e587ca2e 100644 --- a/mps/code/vmix.c +++ b/mps/code/vmix.c @@ -12,7 +12,7 @@ * * .deployed: Currently used on Darwin (macOS) and FreeBSD. * - * .design: See . .design.mmap: mmap(2) is used to + * .design: . .design.mmap: mmap(2) is used to * reserve address space by creating a mapping with page access none. * mmap(2) is used to map pages onto store by creating a copy-on-write * (MAP_PRIVATE) mapping with the flag MAP_ANON. @@ -206,7 +206,7 @@ void VMUnmap(VM vm, Addr base, Addr limit) size = AddrOffset(base, limit); AVER(size <= VMMapped(vm)); - /* see */ + /* see */ addr = mmap((void *)base, (size_t)size, PROT_NONE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0); diff --git a/mps/code/vmw3.c b/mps/code/vmw3.c index e779eaec943..4b5664132f3 100644 --- a/mps/code/vmw3.c +++ b/mps/code/vmw3.c @@ -3,7 +3,7 @@ * $Id$ * Copyright (c) 2001-2018 Ravenbrook Limited. See end of file for license. * - * .design: See . + * .design: . * * .purpose: This is the implementation of the virtual memory mapping * interface (vm.h) for Win32s. diff --git a/mps/code/zmess.c b/mps/code/zmess.c index afa6c0b128d..93225a22b3a 100644 --- a/mps/code/zmess.c +++ b/mps/code/zmess.c @@ -536,7 +536,7 @@ int main(int argc, char *argv[]) * In either case TraceIdMessagesCreate promptly gives up, and * neither start nor end message will be sent for the next trace. * - * See . + * . */ #if TEST_CONTROLALLOC_FAILURE { diff --git a/mps/design/.dotted.tags b/mps/design/.dotted.tags new file mode 100644 index 00000000000..e69de29bb2d diff --git a/mps/design/an.txt b/mps/design/an.txt index 2f279a6affb..0eb4487d485 100644 --- a/mps/design/an.txt +++ b/mps/design/an.txt @@ -90,7 +90,7 @@ options used to implement these platforms. (This supports `.req.port.rapid`_ by making sure that the generic implementations are working when it is time to use them.) -.. _design.mps.config.opt: config#opt +.. _design.mps.config.opt: config#.opt Modules @@ -153,15 +153,15 @@ _`.lim.vm`: Maps all reserved addresses into main memory (see design.mps.vm.impl.an.reserve_), thus using more main memory than a platform-specific implementation. -.. _design.mps.lock.impl.an: lock#impl-an -.. _design.mps.prmc.impl.an.fault: prmc#impl-an-fault -.. _design.mps.prmc.impl.an.suspend: prmc#impl-an-suspend -.. _design.mps.prot.impl.an.sync: prot#impl-an-sync -.. _design.mps.prot.impl.an.sync.issue: prot#impl-an-sync.issue -.. _design.mps.sp.issue.an: sp#issue-an -.. _design.mps.stack-scan.sol.stack.platform: stack-scan#sol-stack-platform -.. _design.mps.thread-manager.impl.an.single: thread-manager#impl-an-single -.. _design.mps.vm.impl.an.reserve: vm#impl-an-reserve +.. _design.mps.lock.impl.an: lock#.impl.an +.. _design.mps.prmc.impl.an.fault: prmc#.impl.an.fault +.. _design.mps.prmc.impl.an.suspend: prmc#.impl.an.suspend +.. _design.mps.prot.impl.an.sync: prot#.impl.an.sync +.. _design.mps.prot.impl.an.sync.issue: prot#.impl.an.sync.issue +.. _design.mps.sp.issue.an: sp#.issue.an +.. _design.mps.stack-scan.sol.stack.platform: stack-scan#.sol.stack.platform +.. _design.mps.thread-manager.impl.an.single: thread-manager#.impl.an.single +.. _design.mps.vm.impl.an.reserve: vm#.impl.an.reserve diff --git a/mps/design/arena.txt b/mps/design/arena.txt index aac6d74f3f3..c5af5b93973 100644 --- a/mps/design/arena.txt +++ b/mps/design/arena.txt @@ -307,7 +307,7 @@ If this field is ``TRUE``, then the value of ``p`` is a ``Seg``. See design.mps.type.bool.bitfield_ for why this is declared using the ``BOOLFIELD`` macro. -.. _design.mps.type.bool.bitfield: type#bool-bitfield +.. _design.mps.type.bool.bitfield: type#.bool.bitfield _`.tract.field.base`: The base field contains the base address of the memory represented by the tract. diff --git a/mps/design/arenavm.txt b/mps/design/arenavm.txt index 1f5aa558910..876b5e40cbe 100644 --- a/mps/design/arenavm.txt +++ b/mps/design/arenavm.txt @@ -52,7 +52,7 @@ condemned sets to coincide with zone stripes. _`.overview.gc.tract`: A fast translation from addresses to tract. (See design.mps.arena.req.fun.trans_.) -.. _design.mps.arena.req.fun.trans: arena#req-fun-trans +.. _design.mps.arena.req.fun.trans: arena#.req.fun.trans Notes @@ -63,8 +63,8 @@ _`.note.refset`: Some of this document simply assumes that RefSets design.mps.arena.req.fun.set_. It's a lot simpler that way. Both to write and understand. -.. _design.mps.collections.refsets: collections#refsets -.. _design.mps.arena.req.fun.set: arena#req-fun-set +.. _design.mps.collections.refsets: collections#.refsets +.. _design.mps.arena.req.fun.set: arena#.req.fun.set Requirements @@ -74,7 +74,7 @@ Most of the requirements are in fact on the generic arena (see design.mps.arena.req_). However, many of those requirements can only be met by a suitable arena class design. -.. _design.mps.arena.req: arena#req +.. _design.mps.arena.req: arena#.req Requirements particular to this arena class: @@ -187,7 +187,7 @@ only valid if it is allocated to a pool. If it is not allocated to a pool, the fields of the tract are used for other purposes. (See design.mps.arena.tract.field.pool_) -.. _design.mps.arena.tract.field.pool: arena#tract-field-pool +.. _design.mps.arena.tract.field.pool: arena#.tract.field.pool _`.table.alloc`: The alloc table is a simple bit table (implemented using the BT module, design.mps.bt_). diff --git a/mps/design/buffer.txt b/mps/design/buffer.txt index d6fee9efcc3..3d5b903946d 100644 --- a/mps/design/buffer.txt +++ b/mps/design/buffer.txt @@ -182,7 +182,7 @@ extra field to the buffer. The convenience macro ``DEFINE_BUFFER_CLASS()`` may be used to define subclasses of buffer classes. See design.mps.protocol.int.define-special_. -.. _design.mps.protocol.int.define-special: protocol#int-define-special +.. _design.mps.protocol.int.define-special: protocol#.int.define-special _`.replay`: To work with the allocation replayer (see design.mps.telemetry.replayer_), the buffer class has to emit an event @@ -191,7 +191,7 @@ passed by the user. If a new event type is required to carry this information, the replayer (impl.c.eventrep) must then be extended to recreate the call. -.. _design.mps.telemetry.replayer: telemetry#replayer +.. _design.mps.telemetry.replayer: telemetry#.replayer _`.replay.pool-buffer`: The replayer must also be updated if the association of buffer class to pool or the buffer class hierarchy is diff --git a/mps/design/cbs.txt b/mps/design/cbs.txt index f46160e027d..ae149124c0d 100644 --- a/mps/design/cbs.txt +++ b/mps/design/cbs.txt @@ -104,7 +104,7 @@ keyword arguments: (This feature is used by the arena to bootstrap its own CBS of free memory. See design.mps.bootstrap.land.sol.pool_.) - .. _design.mps.bootstrap.land.sol.pool: bootstrap#land-sol-pool + .. _design.mps.bootstrap.land.sol.pool: bootstrap#.land.sol.pool Limitations @@ -204,7 +204,7 @@ _`.test`: The following testing will be performed on this module: _`.test.land`: A generic test for land implementations. See design.mps.land.test_. -.. _design.mps.land.test: land#test +.. _design.mps.land.test: land#.test _`.test.pool`: The arena and two pools (MVT_ and MVFF_) are implemented on top of a CBS. These are subject to testing in diff --git a/mps/design/config.txt b/mps/design/config.txt index 903ce418236..8149563c5c7 100644 --- a/mps/design/config.txt +++ b/mps/design/config.txt @@ -362,7 +362,7 @@ machine word. It is used to defined the MPS Word type #define MPS_T_WORD unsigned long -.. _design.mps.type.word: type#word +.. _design.mps.type.word: type#.word We avoid using ``typedef`` here because mpstd.h_ could potentially be included in assembly language source code. diff --git a/mps/design/finalize.txt b/mps/design/finalize.txt index 65f82562494..a5876254954 100644 --- a/mps/design/finalize.txt +++ b/mps/design/finalize.txt @@ -60,7 +60,7 @@ _`.impl.scan`: An object is determined to be finalizable if it is fixed at rank FINAL for a trace, and was not fixed at any lower rank for that trace. See design.mps.poolmrg.scan.wasold_. -.. _design.mps.poolmrg.scan.wasold: poolmrg#scan-wasold +.. _design.mps.poolmrg.scan.wasold: poolmrg#.scan.wasold _`.impl.message`: When an object is determined to be finalizable, a message for that object is posted to the arena's message queue. diff --git a/mps/design/freelist.txt b/mps/design/freelist.txt index 3907e43bb1d..eaa208631ab 100644 --- a/mps/design/freelist.txt +++ b/mps/design/freelist.txt @@ -130,7 +130,7 @@ _`.test`: The following testing will be performed on this module: _`.test.land`: A generic test for land implementations. See design.mps.land.test_. -.. _design.mps.land.test: land#design-mps-land-test +.. _design.mps.land.test: land#.test _`.test.pool`: Two pools (MVT_ and MVFF_) use free lists as a fallback when low on memory. These are subject to testing in development, QA, diff --git a/mps/design/interface-c.txt b/mps/design/interface-c.txt index 912b4aa9bdf..8fd0585a45b 100644 --- a/mps/design/interface-c.txt +++ b/mps/design/interface-c.txt @@ -200,7 +200,7 @@ how the MPS is compiled (see design.mps.config.def.var_). It may expand to ``TESTT()``, or it may call the full checking function for the type. -.. _design.mps.config.def.var: config#def-var +.. _design.mps.config.def.var: config#.def.var _`.check.types`: We use definitions of types in both our external interface and our internal code, and we want to make sure that they @@ -298,7 +298,7 @@ _`.cons.addr`: The interface constrains the MPS address type, Addr (design.mps.type.addr_), to being the same as C's generic pointer type, ``void *``, so that the MPS can manage C objects in the natural way. -.. _design.mps.type.addr: type#addr +.. _design.mps.type.addr: type#.addr _`.pun.addr`: We pun the type of ``mps_addr_t`` (which is ``void *``) into ``Addr`` (an incomplete type, see design.mps.type.addr_). This @@ -308,7 +308,7 @@ _`.cons.size`: The interface constrains the MPS size type, ``Size`` (design.mps.type.size_), to being the same as C's size type, ``size_t``, so that the MPS can manage C objects in the natural way. -.. _design.mps.type.size: type#size +.. _design.mps.type.size: type#.size _`.pun.size`: We pun the type of ``size_t`` in mps.h into ``Size`` in the MPM, as an argument to the format methods. We assume this works. @@ -318,7 +318,7 @@ and ``Addr`` (design.mps.type.addr_) are the same size, and the interface constrains ``Word`` to being the same size as C's generic pointer type, ``void *``. -.. _design.mps.type.word: type#word +.. _design.mps.type.word: type#.word Implementation diff --git a/mps/design/lock.txt b/mps/design/lock.txt index 9e63a90d994..f677fba7849 100644 --- a/mps/design/lock.txt +++ b/mps/design/lock.txt @@ -74,20 +74,20 @@ to protect the data structure allowing multiple arenas to coordinate handling of protection faults: see design.mps.thread-safety.sol.global.mutable_.) -.. _design.mps.thread-safety.sol.global.mutable: thread-safety#sol-global-mutable +.. _design.mps.thread-safety.sol.global.mutable: thread-safety#.sol.global.mutable _`.req.global.recursive`: Provide a global recursive lock. (This is required to protect protocol class initialization: see design.mps.thread-safety.sol.global.once_.) -.. _design.mps.thread-safety.sol.global.once: thread-safety#sol-global-once +.. _design.mps.thread-safety.sol.global.once: thread-safety#.sol.global.once _`.req.deadlock.not`: There is no requirement to provide protection against deadlock. (Clients are able to avoid deadlock using traditional strategies such as ordering of locks; see design.mps.thread-safety.sol.deadlock_.) -.. _design.mps.thread-safety.sol.deadlock: thread-safety#sol-deadlock +.. _design.mps.thread-safety.sol.deadlock: thread-safety#.sol.deadlock Interface @@ -143,7 +143,7 @@ called in the following circumstances: the first time either of the global locks is claimed; and in the child process after a ``fork()``. See design.mps.thread-safety.sol.fork.lock_. -.. _design.mps.thread-safety.sol.fork.lock: thread-safety#sol-fork-lock +.. _design.mps.thread-safety.sol.fork.lock: thread-safety#.sol.fork.lock ``void LockClaimGlobal(void)`` diff --git a/mps/design/locus.txt b/mps/design/locus.txt index ebee711f481..c029ac73b37 100644 --- a/mps/design/locus.txt +++ b/mps/design/locus.txt @@ -517,7 +517,7 @@ space will be represented by dummy regions. There are also sentinel regions at both ends of the address space. See design.mps.arena.chunk_. -.. _design.mps.arena.chunk: arena#chunk +.. _design.mps.arena.chunk: arena#.chunk Overview of strategy diff --git a/mps/design/message.txt b/mps/design/message.txt index a30686720ea..9a860f3feb7 100644 --- a/mps/design/message.txt +++ b/mps/design/message.txt @@ -165,7 +165,7 @@ _`.type.finalization.semantics`: A finalization message indicates that an object has been discovered to be finalizable (see design.mps.poolmrg.def.final.object_ for a definition of finalizable). -.. _design.mps.poolmrg.def.final.object: poolmrg#def-final-object +.. _design.mps.poolmrg.def.final.object: poolmrg#.def.final.object _`.type.finalization.ref`: The accessor function ``mps_message_finalization_ref()`` retrieves the reference to the @@ -333,7 +333,7 @@ the function the message fields must not be manipulated except from the message's class's method functions (that is, you mustn't poke about with the ``queueRing`` field in particular). -.. _design.mps.ring.def.singleton: ring#def-singleton +.. _design.mps.ring.def.singleton: ring#.def.singleton ``void MessageEmpty(Arena arena)`` diff --git a/mps/design/nailboard.txt b/mps/design/nailboard.txt index cce46ac34d0..21223d68f74 100644 --- a/mps/design/nailboard.txt +++ b/mps/design/nailboard.txt @@ -29,7 +29,7 @@ _`.purpose`: Nailboards are used by the AMC pool class to record ambiguous references to grains within a segment. See design.mps.poolamc.nailboard_. -.. _design.mps.poolamc.nailboard: poolamc#nailboard +.. _design.mps.poolamc.nailboard: poolamc#.nailboard Requirements diff --git a/mps/design/pool.txt b/mps/design/pool.txt index ff32c1a1cc4..d362d0ae62b 100644 --- a/mps/design/pool.txt +++ b/mps/design/pool.txt @@ -72,7 +72,7 @@ to be ``sizeof(PoolABCStruct)``. _`.field.attr`: The ``attr`` field must be a bitset of pool class attributes. See design.mps.type.attr_. -.. _design.mps.type.attr: type#attr +.. _design.mps.type.attr: type#.attr _`.field.alignShift`: The ``alignShift`` field is the ``SizeLog2`` of the pool's alignment. It is computed and initialised when a pool is @@ -180,7 +180,7 @@ it must leave ``*baseReturn`` and ``*limitReturn`` unchanged and return a non-OK result code. Pool classes are not required to provide this method. This method is called by ``BufferFill()``. -.. _design.mps.buffer.reset: buffer#reset +.. _design.mps.buffer.reset: buffer#.reset ``typedef void (*PoolBufferEmptyMethod)(Pool pool, Buffer buffer)`` @@ -191,7 +191,7 @@ design.mps.buffer.ready_). This method must be provided if and only if ``bufferFill`` is provided. This method is called by the generic function ``BufferDetach()``. -.. _design.mps.buffer.ready: buffer#ready +.. _design.mps.buffer.ready: buffer#.ready ``typedef Size (*PoolSizeMethod)(Pool pool)`` diff --git a/mps/design/poolamc.txt b/mps/design/poolamc.txt index aa75d530ec8..d75e4c16daf 100644 --- a/mps/design/poolamc.txt +++ b/mps/design/poolamc.txt @@ -353,7 +353,7 @@ _`.seg.class`: AMC allocates segments of class ``AMCSegClass``, which is a subclass of ``MutatorSegClass`` (see design.mps.seg.over.hierarchy.mutatorseg_). -.. _design.mps.seg.over.hierarchy.mutatorseg: seg#over-hierarchy-mutatorseg +.. _design.mps.seg.over.hierarchy.mutatorseg: seg#.over.hierarchy.mutatorseg _`.seg.gen`: AMC organizes the segments it manages into generations. diff --git a/mps/design/poolams.txt b/mps/design/poolams.txt index 2f2ec0c1ebd..6559130161c 100644 --- a/mps/design/poolams.txt +++ b/mps/design/poolams.txt @@ -436,7 +436,7 @@ split and merge should not be written in such a way that they might detect failure after calling the next method, unless they have reason to know that the bit table allocations will not fail. -.. _design.mps.seg.split-merge.fail.anti.no: seg#split-merge-fail-anti-no +.. _design.mps.seg.split-merge.fail.anti.no: seg#.split-merge.fail.anti.no Testing diff --git a/mps/design/poolawl.txt b/mps/design/poolawl.txt index b66b8bd1d10..ae1d683363e 100644 --- a/mps/design/poolawl.txt +++ b/mps/design/poolawl.txt @@ -132,7 +132,7 @@ which the structure is:: Sig sig; /* */ } -.. _design.mps.seg.over.hierarchy.mutatorseg: seg#over-hierarchy-mutatorseg +.. _design.mps.seg.over.hierarchy.mutatorseg: seg#.over.hierarchy.mutatorseg _`.awlseg.bt`: The ``mark``, ``alloc``, and ``scanned`` fields are bit-tables (see design.mps.bt_). Each bit in the table corresponds to @@ -418,7 +418,7 @@ fix returns. If the rank is something else then the mark bit corresponding to the referenced grain is set, and the segment is greyed using ``SegSetGrey()``. -.. _design.mps.fix.was-marked.not: fix#was-marked-not +.. _design.mps.fix.was-marked.not: fix#.was-marked.not ``void awlSegReclaim(Seg seg, Trace trace)`` diff --git a/mps/design/poollo.txt b/mps/design/poollo.txt index 05c91ee14fd..27d88eb31ff 100644 --- a/mps/design/poollo.txt +++ b/mps/design/poollo.txt @@ -126,7 +126,7 @@ _`.loseg`: Every segment is an instance of segment class design.mps.seg.over.hierarchy.mutatorseg_), and is an object of type ``LOSegStruct``. -.. _design.mps.seg.over.hierarchy.mutatorseg: seg#over-hierarchy-mutatorseg +.. _design.mps.seg.over.hierarchy.mutatorseg: seg#.over.hierarchy.mutatorseg _`.loseg.purpose`: The purpose of the ``LOSeg`` structure is to associate the bit tables used for recording allocation and mark diff --git a/mps/design/poolmfs.txt b/mps/design/poolmfs.txt index 10076e537de..f7ee5f1d110 100644 --- a/mps/design/poolmfs.txt +++ b/mps/design/poolmfs.txt @@ -50,7 +50,7 @@ away from client memory. However, the MFS pool is used during the bootstrapping process (see design.mps.bootstrap.land.sol.pool_) and so has no other memory pools available for storage. -.. _design.mps.bootstrap.land.sol.pool: bootstrap#land-sol-pool +.. _design.mps.bootstrap.land.sol.pool: bootstrap#.land.sol.pool Document History diff --git a/mps/design/poolmrg.txt b/mps/design/poolmrg.txt index 69280a30301..80da890b96a 100644 --- a/mps/design/poolmrg.txt +++ b/mps/design/poolmrg.txt @@ -183,7 +183,7 @@ registered for finalization. This protocol is handled by the arena module on behalf of finalization. see design.mps.finalize.int.finalize_. -.. _design.mps.finalize.int.finalize: finalize#int-finalize +.. _design.mps.finalize.int.finalize: finalize#.int.finalize Finalizer execution @@ -204,7 +204,7 @@ _`.protocol.life`: An instance of PoolClassMRG is needed in order to support finalization, it is called the "final" pool and is attached to the arena (see design.mps.finalize.int.arena.struct_). -.. _design.mps.finalize.int.arena.struct: finalize#int-arena-struct +.. _design.mps.finalize.int.arena.struct: finalize#.int.arena.struct _`.protocol.life.birth`: The final pool is created lazily by ``ArenaFinalize()``. diff --git a/mps/design/poolmvt.txt b/mps/design/poolmvt.txt index 4df204e46d9..940882226d3 100644 --- a/mps/design/poolmvt.txt +++ b/mps/design/poolmvt.txt @@ -791,8 +791,8 @@ attempts to flush blocks from the free list back to the CBS. See design.mps.freelist_ for the design and implementation of the free list. -.. _design.mps.cbs.function.cbs.delete.fail: cbs#function-cbs-delete-fail -.. _design.mps.cbs.function.cbs.insert.fail: cbs#function-cbs-insert-fail +.. _design.mps.cbs.function.cbs.delete.fail: cbs#.function.cbs.delete.fail +.. _design.mps.cbs.function.cbs.insert.fail: cbs#.function.cbs.insert.fail .. _design.mps.freelist: freelist @@ -1007,7 +1007,7 @@ B. Document History - 1998-05-06 PTW Revised in response to review review.design.mps.poolmv2.2_(0). -.. _design.mps.poolmv2.2: poolmv2#2 +.. _design.mps.poolmv2.2: poolmv2#.2 - 2002-06-07 RB_ Converted from MMInfo database design document. diff --git a/mps/design/prmc.txt b/mps/design/prmc.txt index 36df12276df..8dd87657476 100644 --- a/mps/design/prmc.txt +++ b/mps/design/prmc.txt @@ -68,7 +68,7 @@ scan all roots in the context of a thread that has been suspended by the thread manager. (This is necessary for conservative garbage collection to work. See design.mps.thread-manager.if.scan_.) -.. _design.mps.thread-manager.if.scan: thread-manager#if-scan +.. _design.mps.thread-manager.if.scan: thread-manager#.if.scan Interface @@ -94,7 +94,7 @@ by the thread manager. This structure should be declared in a header so that it can be inlined in the ``Thread`` structure if necessary. See design.mps.thread-manager.if.thread_. -.. _design.mps.thread-manager.if.thread: thread-manager#if-thread +.. _design.mps.thread-manager.if.thread: thread-manager#.if.thread ``Bool MutatorContextCheck(MutatorContext context)`` @@ -164,13 +164,13 @@ _`.impl.an.fault`: Compatible only with the generic memory protection module (design.mps.prot.impl.an_) where there are no protection faults. -.. _design.mps.prot.impl.an: prot#impl-an +.. _design.mps.prot.impl.an: prot#.impl.an _`.impl.an.suspend`: Compatible only with the generic thread manager module (design.mps.thread-manager.impl.an_) where there is only one thread, and so no threads are suspended. -.. _design.mps.thread-manager.impl.an: thread-manager#impl-an +.. _design.mps.thread-manager.impl.an: thread-manager#.impl.an Posix implementation diff --git a/mps/design/prot.txt b/mps/design/prot.txt index 1a7cc26a091..e1d97147fa2 100644 --- a/mps/design/prot.txt +++ b/mps/design/prot.txt @@ -66,8 +66,8 @@ by decoding the context of the fault (see design.mps.prmc.req.fault.addr_ and design.mps.prmc.req.fault.access_) and calling ``ArenaAccess()``. -.. _design.mps.prmc.req.fault.addr: prmc#req-fault-addr -.. _design.mps.prmc.req.fault.access: prmc#req-fault-access +.. _design.mps.prmc.req.fault.addr: prmc#.req.fault.addr +.. _design.mps.prmc.req.fault.access: prmc#.req.fault.access Interface @@ -131,7 +131,7 @@ protection, otherwise there is an infinite loop here. This is therefore not compatible with implementations of the protection mutator context module that support single-stepping of accesses (see design.mps.prmc.req.fault.step_). -.. _design.mps.prmc.req.fault.step: prmc#req-fault-step +.. _design.mps.prmc.req.fault.step: prmc#.req.fault.step _`.impl.ix`: POSIX implementation. See design.mps.protix_. diff --git a/mps/design/protix.txt b/mps/design/protix.txt index 9fc8a41b784..6281ed65fc7 100644 --- a/mps/design/protix.txt +++ b/mps/design/protix.txt @@ -30,7 +30,7 @@ Requirements _`.req.general`: Required to implement the general protection interface defined in design.mps.prot.if_. -.. _design.mps.prot.if: prot#if +.. _design.mps.prot.if: prot#.if Data structures @@ -67,7 +67,7 @@ and read accesses are allowed, this is done by setting the protection of the page to ``PROT_READ|PROT_EXEC``. Otherwise (all access are okay), the protection is set to ``PROT_READ|PROT_WRITE|PROT_EXEC``. -.. _design.mps.prot.if.set: prot#if-set +.. _design.mps.prot.if.set: prot#.if.set _`.fun.set.assume.mprotect`: We assume that the call to ``mprotect()`` always succeeds. @@ -98,7 +98,7 @@ as required by the design (see design.mps.pthreadext.req.suspend.protection_). The signal handlers simply nest at top of stack. -.. _design.mps.pthreadext.req.suspend.protection: pthreadext#req-suspend-protection +.. _design.mps.pthreadext.req.suspend.protection: pthreadext#.req.suspend.protection _`.threads.async`: POSIX imposes some restrictions on signal handler functions (see design.mps.pthreadext.anal.signal.safety_). Basically @@ -108,7 +108,7 @@ are known to be "async-signal safe". However, if it's known that the signal didn't happen inside a POSIX function, then it is safe to call arbitrary POSIX functions inside a handler. -.. _design.mps.pthreadext.anal.signal.safety: pthreadext#anal-signal-safety +.. _design.mps.pthreadext.anal.signal.safety: pthreadext#.anal.signal.safety _`.threads.async.protection`: If the signal handler is invoked because of an MPS access, then we know the access must have been caused by diff --git a/mps/design/protocol.txt b/mps/design/protocol.txt index 98a1f4ecd7a..ddab1f41d16 100644 --- a/mps/design/protocol.txt +++ b/mps/design/protocol.txt @@ -548,7 +548,7 @@ _`.impl.define-class.lock`: The ``DEFINE_CLASS`` macro ensures that each class is initialized at most once (even in multi-threaded programs) by claiming the global recursive lock (see design.mps.thread-safety.arch.global.recursive_). -.. _design.mps.thread-safety.arch.global.recursive: thread-safety#arch-global-recursive +.. _design.mps.thread-safety.arch.global.recursive: thread-safety#.arch.global.recursive _`.impl.derived-names`: The ``DEFINE_CLASS()`` macro derives some additional names from the class name as part of it's implementation. diff --git a/mps/design/scan.txt b/mps/design/scan.txt index f5d25ae0d90..e10381931e6 100644 --- a/mps/design/scan.txt +++ b/mps/design/scan.txt @@ -38,7 +38,7 @@ The reason that ``ss.unfixedSummary`` is always a subset of the previous summary is due to an "optimization" which has not been made in ``TraceFix()``. See design.mps.trace.fix.fixed.all_. -.. _design.mps.trace.fix.fixed.all: trace#fix-fixed-all +.. _design.mps.trace.fix.fixed.all: trace#.fix.fixed.all Partial scans diff --git a/mps/design/seg.txt b/mps/design/seg.txt index 17730807e42..3313e483006 100644 --- a/mps/design/seg.txt +++ b/mps/design/seg.txt @@ -244,15 +244,15 @@ _`.method.buffer-fill`: Allocate a block in the segment, of at least Otherwise, return ``FALSE``. The allocated block must be accounted as buffered (see design.mps.strategy.account.buffered_). -.. _design.mps.strategy.account.buffered: strategy#account-buffered +.. _design.mps.strategy.account.buffered: strategy#.account.buffered ``typedef void (*SegBufferEmptyMethod)(Seg seg, Buffer buffer)`` _`.method.buffer-empty`: Free the unused part of the buffer to the segment. Account the used part as new (see design.mps.strategy.account.new_) and the unused part as free (see design.mps.strategy.account.free_). -.. _design.mps.strategy.account.new: strategy#account-new -.. _design.mps.strategy.account.free: strategy#account-free +.. _design.mps.strategy.account.new: strategy#.account.new +.. _design.mps.strategy.account.free: strategy#.account.free Garbage collection @@ -399,7 +399,7 @@ _`.method.split.next`: A split method should always call the next method, either before or after any class-specific code (see design.mps.protocol.overview.next-method_). -.. _design.mps.protocol.overview.next-method: protocol#overview-next-method +.. _design.mps.protocol.overview.next-method: protocol#.overview.next-method _`.method.split.accounting`: If ``seg`` belongs to a generation in a chain, then the pool generation accounting must be updated. In the @@ -421,7 +421,7 @@ _`.method.merge.next`: A merge method should always call the next method, either before or after any class-specific code (see design.mps.protocol.overview.next-method_). -.. _design.mps.protocol.overview.next-method: protocol#overview-next-method +.. _design.mps.protocol.overview.next-method: protocol#.overview.next-method _`.method.merge.accounting`: If ``seg`` belongs to a generation in a chain, then the pool generation accounting must be updated. In the @@ -451,7 +451,7 @@ before calling the next method, the appropriate anti-method must be used (see design.mps.protocol.guide.fail.after-next_). Split methods are anti-methods for merge methods, and vice-versa. -.. _design.mps.protocol.guide.fail.after-next: protocol#guide-fail-after-next +.. _design.mps.protocol.guide.fail.after-next: protocol#.guide.fail.after-next _`.split-merge.fail.anti.constrain`: In general, care should be taken when writing split and merge methods to ensure that they really are diff --git a/mps/design/sig.txt b/mps/design/sig.txt index 98ab1f489e0..61e74686d82 100644 --- a/mps/design/sig.txt +++ b/mps/design/sig.txt @@ -114,7 +114,7 @@ definitions depending on how the MPS is compiled (see design.mps.config.def.var_). It may simply check the signature, or call the full checking function for the structure. -.. _design.mps.config.def.var: config#def-var +.. _design.mps.config.def.var: config#.def.var _`.check.sig`: The checking function for the structure should also validate the signature as its first step using the ``CHECKS()`` macro diff --git a/mps/design/splay.txt b/mps/design/splay.txt index c1dfa8bb977..f571f52d42a 100644 --- a/mps/design/splay.txt +++ b/mps/design/splay.txt @@ -879,7 +879,7 @@ _`.test`: There is no plan to test splay trees directly. It is believed that the testing described in design.mps.cbs.test_ will be sufficient to test this implementation. -.. _design.mps.cbs.test: cbs#test +.. _design.mps.cbs.test: cbs#.test Error Handling diff --git a/mps/design/stack-scan.txt b/mps/design/stack-scan.txt index 05e6dbccbd0..8eae1da199b 100644 --- a/mps/design/stack-scan.txt +++ b/mps/design/stack-scan.txt @@ -29,7 +29,7 @@ _`.other`: The thread manager module is responsible for scanning the control stack and registers of *other* threads. See design.mps.thread-manager.if.scan_. -.. _design.mps.thread-manager.if.scan: thread-manager#if-scan +.. _design.mps.thread-manager.if.scan: thread-manager#.if.scan _`.origin`: This design was originally proposed in mail.richard.2012-08-03.14-36_. @@ -268,7 +268,7 @@ This necessity to have the definition in scope in ``mpsi.c``, while also having different definitions on different platforms, requires a violation of design.mps.config.no-spaghetti_ in ss.h. -.. _design.mps.config.no-spaghetti: config#no-spaghetti +.. _design.mps.config.no-spaghetti: config#.no-spaghetti ``STACK_CONTEXT_BEGIN(Arena arena)`` diff --git a/mps/design/strategy.txt b/mps/design/strategy.txt index fe80fad7084..84baa892b4e 100644 --- a/mps/design/strategy.txt +++ b/mps/design/strategy.txt @@ -547,7 +547,7 @@ or there is no more work to do. Then it schedules the next collection so that there is approximately one call to ``TracePoll()`` for every ``ArenaPollALLOCTIME`` bytes of allocation. -.. _design.mps.arena.pause-time: arena#pause-time +.. _design.mps.arena.pause-time: arena#.pause-time References diff --git a/mps/design/tests.txt b/mps/design/tests.txt index 26273d68070..6302907ca31 100644 --- a/mps/design/tests.txt +++ b/mps/design/tests.txt @@ -40,7 +40,7 @@ design.mps.config.var_) and ```` is the collection of tests If ```` is omitted, tests are run in both the cool and hot varieties. -.. _design.mps.config.var: config#var +.. _design.mps.config.var: config#.var .. _manual/build.txt: https://www.ravenbrook.com/project/mps/master/manual/build.txt @@ -71,8 +71,8 @@ of the tests that are expected to pass in the generic ("ANSI") build configuration (see design.mps.config.opt.ansi_) with the option ``CONFIG_POLL_NONE`` (see design.mps.config.opt.poll_). -.. _design.mps.config.opt.ansi: config#opt.ansi -.. _design.mps.config.opt.poll: config#opt.poll +.. _design.mps.config.opt.ansi: config#.opt.ansi +.. _design.mps.config.opt.poll: config#.opt.poll _`.target.testratio`: The ``testratio`` target compares the performance of the HOT and RASH varieties. See `.ratio`_. diff --git a/mps/design/thread-manager.txt b/mps/design/thread-manager.txt index 426f479c42e..b927e7ee341 100644 --- a/mps/design/thread-manager.txt +++ b/mps/design/thread-manager.txt @@ -117,7 +117,7 @@ by ``mps_thread_dereg()``. It can't use ``AVER(TESTT(Thread, thread))``, as recommended by design.mps.sig.check.arg.unlocked_, since ``Thread`` is an opaque type. -.. _design.mps.sig.check.arg.unlocked: sig#check-arg-unlocked +.. _design.mps.sig.check.arg.unlocked: sig#.check.arg.unlocked ``Arena ThreadArena(Thread thread)`` @@ -210,18 +210,18 @@ specially by the POSIX thread extensions. See design.mps.pthreadext.req.suspend.multiple_ and design.mps.pthreadext.req.resume.multiple_. -.. _design.mps.pthreadext.req.suspend.multiple: pthreadext#req-suspend-multiple -.. _design.mps.pthreadext.req.resume.multiple: pthreadext#req-resume-multiple +.. _design.mps.pthreadext.req.suspend.multiple: pthreadext#.req.suspend.multiple +.. _design.mps.pthreadext.req.resume.multiple: pthreadext#.req.resume.multiple _`.impl.ix.suspend`: ``ThreadRingSuspend()`` calls ``PThreadextSuspend()``. See design.mps.pthreadext.if.suspend_. -.. _design.mps.pthreadext.if.suspend: pthreadext#if-suspend +.. _design.mps.pthreadext.if.suspend: pthreadext#.if.suspend _`.impl.ix.resume`: ``ThreadRingResume()`` calls ``PThreadextResume()``. See design.mps.pthreadext.if.resume_. -.. _design.mps.pthreadext.if.resume: pthreadext#if-resume +.. _design.mps.pthreadext.if.resume: pthreadext#.if.resume _`.impl.ix.scan.current`: ``ThreadScan()`` calls ``StackScan()`` if the thread is current. diff --git a/mps/design/thread-safety.txt b/mps/design/thread-safety.txt index e40639a5e0d..3692cc89fce 100644 --- a/mps/design/thread-safety.txt +++ b/mps/design/thread-safety.txt @@ -209,8 +209,8 @@ design.mps.lock.req.global.binary_) that protects mutable data shared between all arenas (that is, the arena ring lock: see design.mps.arena.static.ring.lock_). -.. _design.mps.lock.req.global.binary: lock#req-global-binary -.. _design.mps.arena.static.ring.lock: arena#static-ring-lock +.. _design.mps.lock.req.global.binary: lock#.req.global.binary +.. _design.mps.arena.static.ring.lock: arena#.static.ring.lock _`.sol.global.once`: There is a global recursive lock (see design.mps.lock.req.global.recursive_) that protects static data which @@ -220,8 +220,8 @@ claims the global recursive lock, checks to see if the data structure has been initialized yet, and does so if necessary (see design.mps.protocol.impl.define-class.lock_). -.. _design.mps.lock.req.global.recursive: lock#req-global-recursive -.. _design.mps.protocol.impl.define-class.lock: protocol#impl-define-class-lock +.. _design.mps.lock.req.global.recursive: lock#.req.global.recursive +.. _design.mps.protocol.impl.define-class.lock: protocol#.impl.define-class.lock _`.sol.deadlock`: A strict ordering is required between the global and arena locks to prevent deadlock. The binary global lock may not be @@ -231,7 +231,7 @@ Each arena lock is independent of all other arena locks; that is, a thread may not attempt to claim more than one arena lock at a time. See design.mps.arena.lock.avoid_. -.. _design.mps.arena.lock.avoid: arena#lock-avoid +.. _design.mps.arena.lock.avoid: arena#.lock.avoid _`.sol.check`: The MPS interface design requires that a function must check the signatures on the data structures pointed to by its @@ -242,8 +242,8 @@ checking interface provides a ``TESTT()`` macro that checks the signature in a thread-safe way (see design.mps.sig.check.arg.unlocked_). -.. _design.mps.sig.check.arg: sig#check-arg -.. _design.mps.sig.check.arg.unlocked: sig#check-arg-unlocked +.. _design.mps.sig.check.arg: sig#.check.arg +.. _design.mps.sig.check.arg.unlocked: sig#.check.arg.unlocked Fork safety diff --git a/mps/design/type.txt b/mps/design/type.txt index e333272ce8a..43426765c82 100644 --- a/mps/design/type.txt +++ b/mps/design/type.txt @@ -109,7 +109,7 @@ There is an attribute field in the pool class (``PoolClassStruct``) which declares the attributes of that class. See design.mps.pool.field.attr_. -.. _design.mps.pool.field.attr: pool#field-attr +.. _design.mps.pool.field.attr: pool#.field.attr ``typedef int Bool`` @@ -393,7 +393,7 @@ intended. _`.refset`: ``RefSet`` is a conservative approximation to a set of references. See design.mps.collection.refsets_. -.. _design.mps.collection.refsets: collection#refsets +.. _design.mps.collection.refsets: collection#.refsets ``typedef int Res`` @@ -553,7 +553,7 @@ _`.traceid`: A ``TraceId`` is an unsigned integer which is less than is used to index into the tables and bitfields that record the state of that trace. See design.mps.trace.instance.limit_. -.. _design.mps.trace.instance.limit: trace#instance-limit +.. _design.mps.trace.instance.limit: trace#.instance.limit ``typedef unsigned TraceSet`` @@ -634,7 +634,7 @@ _`.word.source`: ``Word`` is derived from the macro ``MPS_T_WORD`` which is declared in impl.h.mpstd according to the target platform (design.mps.config.pf.word_). -.. _design.mps.config.pf.word: config#pf-word +.. _design.mps.config.pf.word: config#.pf.word _`.word.conv.c`: ``Word`` is converted to ``mps_word_t`` in the MPS C Interface. diff --git a/mps/design/version-library.txt b/mps/design/version-library.txt index cb72a55d2df..2c39cc51231 100644 --- a/mps/design/version-library.txt +++ b/mps/design/version-library.txt @@ -95,7 +95,7 @@ expansion of the macro ``MPS_PROD_STRING`` defined by ``config.h`` (impl.h.config). Note that there is now only one product, so this is always ``"mps"`` (see design.mps.config.req.prod_). -.. _design.mps.config.req.prod: config#req-prod +.. _design.mps.config.req.prod: config#.req.prod _`.impl.platform`: The string containing the name of the platform is the expansion of the macro ``MPS_PF_STRING`` defined by ``mpstd.h`` diff --git a/mps/design/vm.txt b/mps/design/vm.txt index 5b4c3304d2d..c7406e0f68c 100644 --- a/mps/design/vm.txt +++ b/mps/design/vm.txt @@ -38,7 +38,7 @@ _`.req.granularity`: The virtual mapping module must report the necessary for the arena to be able to portably determine its grain size; see design.mps.arena.def.grain_.) -.. _design.mps.arena.def.grain: arena#def-grain +.. _design.mps.arena.def.grain: arena#.def.grain _`.req.reserve`: The *reserve* operation must reserves a chunk of address space.