From 4e8de8d42e34cb49a1738cf12ff50fcd565c112b Mon Sep 17 00:00:00 2001 From: Gareth Rees Date: Wed, 1 Aug 2018 13:10:09 +0100 Subject: [PATCH] Replace deprecatd mv with mvff in test cases. Delete eventrep and replay modules -- these have been broken for a long time. Copied from Perforce Change: 194843 --- mps/code/apss.c | 11 +- mps/code/eventrep.c | 689 ---------------------------- mps/code/eventrep.h | 66 --- mps/code/mpmss.c | 52 +-- mps/code/replay.c | 228 --------- mps/code/sacss.c | 16 - mps/manual/source/code-index.rst | 3 - mps/manual/source/topic/keyword.rst | 7 +- mps/test/argerr/153.c | 7 +- mps/test/argerr/34.c | 23 +- mps/test/argerr/35.c | 25 +- mps/test/argerr/37.c | 25 +- mps/test/argerr/41.c | 23 +- mps/test/argerr/42.c | 18 +- mps/test/conerr/13.c | 23 +- mps/test/conerr/14.c | 15 +- mps/test/conerr/15.c | 24 +- mps/test/conerr/16.c | 19 +- mps/test/conerr/19.c | 27 +- mps/test/conerr/20.c | 17 +- mps/test/conerr/21.c | 18 +- mps/test/conerr/22.c | 27 +- mps/test/conerr/23.c | 27 +- mps/test/conerr/26.c | 13 +- mps/test/conerr/27.c | 16 +- mps/test/conerr/4.c | 16 +- mps/test/conerr/59.c | 24 +- mps/test/function/101.c | 57 +-- mps/test/function/103.c | 15 +- mps/test/function/120.c | 6 +- mps/test/function/135.c | 4 +- mps/test/function/18.c | 6 +- mps/test/function/19.c | 6 +- mps/test/function/20.c | 6 +- mps/test/function/200.c | 57 +-- mps/test/function/21.c | 6 +- mps/test/function/22.c | 6 +- mps/test/function/226.c | 15 +- mps/test/function/23.c | 48 +- mps/test/function/26.c | 6 +- mps/test/function/38.c | 13 +- mps/test/function/47.c | 13 +- mps/test/function/66.c | 14 +- mps/test/function/96.c | 15 +- mps/test/testsets/conerr | 2 +- mps/test/testsets/coolonly | 1 + 46 files changed, 249 insertions(+), 1506 deletions(-) delete mode 100644 mps/code/eventrep.c delete mode 100644 mps/code/eventrep.h delete mode 100644 mps/code/replay.c diff --git a/mps/code/apss.c b/mps/code/apss.c index b2f423f66ba..ed74ae99806 100644 --- a/mps/code/apss.c +++ b/mps/code/apss.c @@ -192,17 +192,8 @@ static void test(mps_arena_class_t arena_class, mps_arg_s arena_args[], mps_class_mvff(), args), "stress MVFF"); } MPS_ARGS_END(args); - MPS_ARGS_BEGIN(args) { - mps_align_t align = rnd_align(sizeof(void *), MAX_ALIGN); - MPS_ARGS_ADD(args, MPS_KEY_ALIGN, align); - die(stress(arena, NULL, align, randomSizeAligned, "MV", - mps_class_mv(), args), "stress MV"); - } MPS_ARGS_END(args); - /* IWBN to test MVFFDebug, but the MPS doesn't support debugging - APs, yet. MV Debug used to work here, because it faked it - through PoolAlloc, but MV Debug is now deprecated and replaced by - MVFF Debug. See job003995. */ + allocation points. See job003995. */ (void)options; MPS_ARGS_BEGIN(args) { diff --git a/mps/code/eventrep.c b/mps/code/eventrep.c deleted file mode 100644 index 9f3017e28a0..00000000000 --- a/mps/code/eventrep.c +++ /dev/null @@ -1,689 +0,0 @@ -/* eventrep.c: Allocation replayer routines - * Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license. - * - * $Id$ - */ - -#include "config.h" -/* override variety setting for EVENT */ -#define EVENT - -#include "eventcom.h" -#include "eventrep.h" -#include "eventpro.h" -#include "mpmtypes.h" - -#include "mps.h" -#include "mpsavm.h" -#include "mpsacl.h" -#include "mpscmv.h" -#include "mpscmvff.h" -#include "mpscepvm.h" -#include "fmtpstst.h" -#include "mpscepdl.h" - -#include "table.h" - -#include /* for size_t */ -#include /* for va_list */ -#include /* for EXIT_FAILURE */ -#include /* for printf */ -#include "mpstd.h" - - -#if defined(MPS_OS_W3) && defined(MPS_ARCH_I6) -#define PRIuLONGEST "llu" -#define PRIXPTR "016llX" -typedef unsigned long long ulongest_t; -#else -#define PRIuLONGEST "lu" -#define PRIXPTR "08lX" -typedef unsigned long ulongest_t; -#endif - - -typedef unsigned long ulong; - - -/* Globals */ - -static ulong totalEvents; /* count of events */ -static ulong discardedEvents; /* count of ignored events */ -static ulong unknownEvents; /* count of unknown events */ - -static Word eventTime; - -/* Dictionaries for translating from log to replay values */ -static Table arenaTable; /* dictionary of arenas */ -static Table poolTable; /* dictionary of poolReps */ -static Table apTable; /* dictionary of apReps */ - - -/* poolSupport -- describes pool support for explicit deallocation */ - -enum {supportTruncate = 1, supportFree, supportNothing}; -typedef int poolSupport; - - -/* objectTable -- object address mapping structure - * - * .obj-mapping.truncate: Pools that support truncate need to keep track - * of object end points as well. .obj-mapping.partial-free: Arbitrary - * partial free is not supported. - */ - -typedef struct objectTableStruct { - Table startTable; - Table endTable; -} objectTableStruct; -typedef struct objectTableStruct *objectTable; - - -/* poolRep -- pool tracking structure - * - * .pool.object-addr: Pools that support explicit free (or truncate) - * need to maintain a mapping from the addresses in the log to those in - * the replay. - * - * .bufclass: In order to create APs with the correct arguments, the - * replayer has to pick the right BufferInit event to use, as there's - * one for each superclass. The pool determines the buffer class, so - * we store its subclass level in the pool representation. - */ - -typedef struct poolRepStruct { - mps_pool_t pool; /* the replay pool */ - objectTable objects; - int bufferClassLevel; /* subclass level of the buffer class */ -} poolRepStruct; -typedef struct poolRepStruct *poolRep; - - -/* apRep -- ap tracking structure */ - -typedef struct apRepStruct { - mps_ap_t ap; /* the replay ap */ - objectTable objects; /* object mapping for the pool of this ap */ -} apRepStruct; -typedef struct apRepStruct *apRep; - - -/* PointerAdd -- add offset to pointer */ - -#define PointerAdd(p, s) ((void *)((char *)(p) + (s))) -#define PointerSub(p, s) ((void *)((char *)(p) - (s))) - - -/* error -- error signalling */ - -ATTRIBUTE_FORMAT((printf, 1, 2)) -static void error(const char *format, ...) -{ - va_list args; - - fflush(stdout); /* sync */ - fprintf(stderr, "Failed @%"PRIuLONGEST" ", (ulongest_t)eventTime); - va_start(args, format); - vfprintf(stderr, format, args); - fprintf(stderr, "\n"); - va_end(args); - exit(EXIT_FAILURE); -} - - -/* verify, verifyMPS -- check return values - * - * We don't use assert for this, because we want it in release as well. - */ - -#define verifyMPS(res) \ - MPS_BEGIN if ((res) != MPS_RES_OK) error("line %d MPS", __LINE__); MPS_END - -#define verify(cond) \ - MPS_BEGIN if (!(cond)) error("line %d " #cond, __LINE__); MPS_END - - -/* objectTableCreate -- create an objectTable */ - -static objectTable objectTableCreate(poolSupport support) -{ - if (support != supportNothing) { - Res ires; - objectTable table; - - table = malloc(sizeof(objectTableStruct)); - verify(table != NULL); - ires = TableCreate(&table->startTable, (size_t)1<<12); - verify(ires == ResOK); - if (support == supportTruncate) { - ires = TableCreate(&table->endTable, (size_t)1<<12); - verify(ires == ResOK); - } else { - table->endTable = NULL; - } - return table; - } else { - return NULL; - } -} - - -/* objectTableDestroy -- destroy an objectTable */ - -static void objectTableDestroy(objectTable table) -{ - if (table != NULL) { - TableDestroy(table->startTable); - if (table->endTable != NULL) - TableDestroy(table->endTable); - free(table); - } -} - - -/* objDefine -- add a new mapping to an objectTable */ - -static void objDefine(objectTable table, - void *logObj, void *obj, size_t size) -{ - if (table != NULL) { - Res ires; - - ires = TableDefine(table->startTable, (TableKey)logObj, obj); - verify(ires == ResOK); - if (table->endTable != NULL) { - ires = TableDefine(table->endTable, - (TableKey)PointerAdd(logObj, size), - PointerAdd(obj, size)); - verify(ires == ResOK); - } - } -} - - -/* objRemove -- look up and remove a mapping in an objectTable */ - -static void objRemove(void **objReturn, objectTable table, - void *logObj, size_t size) -{ - Bool found; - Res ires; - void *obj; - void *end; - void *logEnd; - - found = TableLookup(&obj, table->startTable, (TableKey)logObj); - if (found) { - ires = TableRemove(table->startTable, (TableKey)logObj); - verify(ires == ResOK); - if (table->endTable != NULL) { - ires = TableRemove(table->endTable, - (TableKey)PointerAdd(logObj, size)); - verify(ires == ResOK); - } - *objReturn = obj; - return; - } - /* Must be a truncation. */ - verify(table->endTable != NULL); - logEnd = PointerAdd(logObj, size); - found = TableLookup(&end, table->endTable, (TableKey)logEnd); - verify(found); - obj = PointerSub(end, size); - /* Remove the old end and insert the new one. */ - ires = TableRemove(table->endTable, (TableKey)logEnd); - verify(ires == ResOK); - ires = TableDefine(table->endTable, (TableKey)logObj, obj); - verify(ires == ResOK); - *objReturn = obj; - return; -} - - -/* poolRecreate -- create and record a pool */ - -static void poolRecreate(void *logPool, void *logArena, - mps_pool_class_t pool_class, - poolSupport support, int bufferClassLevel, ...) -{ - va_list args; - mps_pool_t pool; - mps_res_t eres; - poolRep rep; - Res ires; - void *entry; - Bool found; - - found = TableLookup(&entry, arenaTable, (TableKey)logArena); - verify(found); - va_start(args, bufferClassLevel); - eres = mps_pool_create_v(&pool, (mps_arena_t)entry, klass, args); - verifyMPS(eres); - va_end(args); - rep = malloc(sizeof(poolRepStruct)); - verify(rep != NULL); - rep->pool = pool; - rep->objects = objectTableCreate(support); - rep->bufferClassLevel = bufferClassLevel; - ires = TableDefine(poolTable, (TableKey)logPool, (void *)rep); - verify(ires == ResOK); -} - - -/* poolRedestroy -- destroy and derecord a pool */ - -static void poolRedestroy(void *logPool) -{ - Res ires; - void *entry; - Bool found; - poolRep rep; - - found = TableLookup(&entry, poolTable, (TableKey)logPool); - verify(found); - rep = (poolRep)entry; - mps_pool_destroy(rep->pool); - ires = TableRemove(poolTable, (TableKey)logPool); - verify(ires == ResOK); - objectTableDestroy(rep->objects); - free(rep); -} - - -/* apRecreate -- create and record an ap */ - -static void apRecreate(void *logAp, void *logPool, ...) -{ - va_list args; - mps_ap_t ap; - poolRep pRep; - apRep aRep; - mps_res_t eres; - Res ires; - void *entry; - Bool found; - - found = TableLookup(&entry, poolTable, (TableKey)logPool); - verify(found); - pRep = (poolRep)entry; - va_start(args, logPool); - eres = mps_ap_create_v(&ap, pRep->pool, args); - verifyMPS(eres); - va_end(args); - aRep = malloc(sizeof(apRepStruct)); - verify(aRep != NULL); - aRep->ap = ap; - aRep->objects = pRep->objects; - ires = TableDefine(apTable, (TableKey)logAp, (void *)aRep); - verify(ires == ResOK); -} - - -/* apRedestroy -- destroy and derecord an ap */ - -static void apRedestroy(void *logAp) -{ - Res ires; - void *entry; - Bool found; - apRep rep; - - found = TableLookup(&entry, apTable, (TableKey)logAp); - verify(found); - rep = (apRep)entry; - mps_ap_destroy(rep->ap); - ires = TableRemove(apTable, (TableKey)logAp); - verify(ires == ResOK); - free(rep); -} - - -/* EventReplay -- replay event */ - -static arenaJustCreated = FALSE; - -void EventReplay(Event event, Word etime) -{ - mps_res_t eres; - Res ires; - Bool found; - void *entry; - - ++totalEvents; - eventTime = etime; - switch(event->any.code) { - case EventArenaCreateVM: { /* arena, userSize, chunkSize */ - mps_arena_t arena; - - eres = mps_arena_create(&arena, mps_arena_class_vm(), - event->pww.w1); - verifyMPS(eres); - ires = TableDefine(arenaTable, (TableKey)event->pww.p0, (void *)arena); - verify(ires == ResOK); - arenaJustCreated = TRUE; - } break; - case EventArenaCreateVMNZ: { /* arena, userSize, chunkSize */ - mps_arena_t arena; - - eres = mps_arena_create(&arena, mps_arena_class_vmnz(), - event->pww.w1); - verifyMPS(eres); - ires = TableDefine(arenaTable, (TableKey)event->pww.p0, (void *)arena); - verify(ires == ResOK); - arenaJustCreated = TRUE; - } break; - case EventArenaCreateCL: { /* arena, size, base */ - mps_arena_t arena; - void *base; - - base = malloc((size_t)event->pwa.w1); - verify(base != NULL); - eres = mps_arena_create(&arena, mps_arena_class_cl(), - (Size)event->pwa.w1, base); - verifyMPS(eres); - ires = TableDefine(arenaTable, (TableKey)event->pw.p0, (void *)arena); - verify(ires == ResOK); - arenaJustCreated = TRUE; - } break; - case EventArenaDestroy: { /* arena */ - found = TableLookup(&entry, arenaTable, (TableKey)event->p.p0); - verify(found); - mps_arena_destroy((mps_arena_t)entry); - ires = TableRemove(arenaTable, (TableKey)event->pw.p0); - verify(ires == ResOK); - } break; - case EventPoolInitMVFF: { - /* pool, arena, extendBy, avgSize, align, slotHigh, arenaHigh, firstFit */ - poolRecreate(event->ppwwwuuu.p0, event->ppwwwuuu.p1, - mps_class_mvff(), supportFree, 0, - (size_t)event->ppwwwuuu.w2, - (size_t)event->ppwwwuuu.w3, - (size_t)event->ppwwwuuu.w4, - (mps_bool_t)event->ppwwwuuu.u5, - (mps_bool_t)event->ppwwwuuu.u6, - (mps_bool_t)event->ppwwwuuu.u7); - } break; - case EventPoolInitMV: { /* pool, arena, extendBy, avgSize, maxSize */ - /* .pool.control: The control pool will get created just after */ - /* its arena; ignore it. */ - if (!arenaJustCreated) { - poolRecreate(event->ppwww.p0, event->ppwww.p1, - mps_class_mv(), supportFree, 0, (size_t)event->ppwww.w2, - (size_t)event->ppwww.w3, (size_t)event->ppwww.w4); - } else { - arenaJustCreated = FALSE; - } - } break; - case EventPoolInitMFS: { /* pool, arena, extendBy, unitSize */ - /* internal only */ - ++discardedEvents; - } break; - case EventPoolInit: { /* pool, arena, class */ - /* all internal only */ - ++discardedEvents; - } break; - case EventPoolFinish: { /* pool */ - found = TableLookup(&entry, poolTable, (TableKey)event->p.p0); - if (found) { - poolRedestroy(event->p.p0); - } else { - ++discardedEvents; - } - } break; - case EventBufferInit: { /* buffer, pool, isMutator */ - if ((Bool)event->ppu.u2) { - found = TableLookup(&entry, poolTable, (TableKey)event->ppu.p1); - if (found) { - poolRep rep = (poolRep)entry; - - if(rep->bufferClassLevel == 0) { /* see .bufclass */ - apRecreate(event->ppu.p0, event->ppu.p1); - } else { - ++discardedEvents; - } - } else { - ++discardedEvents; - } - } else { - ++discardedEvents; - } - } break; - case EventBufferInitSeg: { /* buffer, pool, isMutator */ - if ((Bool)event->ppu.u2) { - found = TableLookup(&entry, poolTable, (TableKey)event->ppu.p1); - if (found) { - poolRep rep = (poolRep)entry; - - if(rep->bufferClassLevel == 1) { /* see .bufclass */ - apRecreate(event->ppu.p0, event->ppu.p1); - } else { - ++discardedEvents; - } - } else { - ++discardedEvents; - } - } else { - ++discardedEvents; - } - } break; - case EventBufferInitRank: { /* buffer, pool, isMutator, rank */ - if ((Bool)event->ppuu.u2) { - found = TableLookup(&entry, poolTable, (TableKey)event->ppuu.p1); - if (found) { - poolRep rep = (poolRep)entry; - - if(rep->bufferClassLevel == 2) { /* see .bufclass */ - apRecreate(event->ppuu.p0, event->ppuu.p1, event->ppuu.u3); - } else { - ++discardedEvents; - } - } else { - ++discardedEvents; - } - } else { - ++discardedEvents; - } - } break; - case EventBufferFinish: { /* buffer */ - found = TableLookup(&entry, apTable, (TableKey)event->p.p0); - if (found) { - apRedestroy(event->p.p0); - } else { - ++discardedEvents; - } - } break; - case EventBufferReserve: { /* buffer, init, size */ - found = TableLookup(&entry, apTable, (TableKey)event->paw.p0); - if (found) { - apRep rep = (apRep)entry; - mps_addr_t p; - - eres = mps_reserve(&p, rep->ap, (size_t)event->paw.w2); - verifyMPS(eres); - } else { - ++discardedEvents; - } - } break; - case EventBufferCommit: { /* buffer, p, size, clientClass */ - found = TableLookup(&entry, apTable, (TableKey)event->pawa.p0); - if (found) { - apRep rep = (apRep)entry; - mps_addr_t obj = rep->ap->init; - mps_bool_t committed; - size_t size = (size_t)event->pawa.w2; - - committed = mps_commit(rep->ap, obj, size); - verifyMPS(committed ? MPS_RES_OK : MPS_RES_FAIL); - objDefine(rep->objects, event->pawa.a1, obj, size); - } else { - ++discardedEvents; - } - } break; - case EventPoolAlloc: { /* pool, obj, size */ - found = TableLookup(&entry, poolTable, (TableKey)event->paw.p0); - if (found) { - poolRep rep = (poolRep)entry; - void *obj; - size_t size = (size_t)event->paw.w2; - - eres = mps_alloc(&obj, rep->pool, size); - verifyMPS(eres); - objDefine(rep->objects, event->paw.a1, obj, size); - } else { - ++discardedEvents; - } - } break; - case EventPoolFree: { /* pool, obj, size */ - found = TableLookup(&entry, poolTable, (TableKey)event->paw.p0); - if (found) { - poolRep rep = (poolRep)entry; - void *obj; - size_t size = (size_t)event->paw.w2; - - objRemove(&obj, rep->objects, event->paw.a1, size); - mps_free(rep->pool, obj, size); - } else { - ++discardedEvents; - } - } break; - case EventCommitLimitSet: { /* arena, limit, succeeded */ - found = TableLookup(&entry, arenaTable, (TableKey)event->pwu.p0); - verify(found); - eres = mps_arena_commit_limit_set((mps_arena_t)entry, - (size_t)event->pwu.w1); - verifyMPS(((Bool)event->pwu.u2 == (eres == MPS_RES_OK)) - ? MPS_RES_OK : MPS_RES_FAIL); - } break; - case EventSpareCommitLimitSet: { /* arena, limit */ - found = TableLookup(&entry, arenaTable, (TableKey)event->pw.p0); - verify(found); - (void)mps_arena_spare_commit_limit_set((mps_arena_t)entry, - (size_t)event->pw.w1); - } break; - case EventVMMap: case EventVMUnmap: - case EventVMInit: case EventVMFinish: - case EventArenaWriteFaults: - case EventArenaAlloc: case EventArenaAllocFail: case EventArenaFree: - case EventSegAlloc: case EventSegAllocFail: case EventSegFree: - case EventSegMerge: case EventSegSplit: - case EventBufferFill: case EventBufferEmpty: - case EventCBSInit: case EventMeterInit: case EventMeterValues: - case EventIntern: case EventLabel: { - ++discardedEvents; - } break; - default: { - ++unknownEvents; - if (unknownEvents < 12) /* don't output too much */ - printf("Unknown event @%ld: %s.\n", etime, - EventCode2Name(EventGetCode(event))); - } break; - } -} - - -/* Checking macros, copied from check.h */ - -#define COMPATLVALUE(lv1, lv2) \ - ((void)sizeof((lv1) = (lv2)), (void)sizeof((lv2) = (lv1)), TRUE) - -#define COMPATTYPE(t1, t2) \ - (sizeof(t1) == sizeof(t2) && \ - COMPATLVALUE(*((t1 *)0), *((t2 *)0))) - - -/* CHECKCONV -- check t2 can be cast to t1 without loss */ - -#define CHECKCONV(t1, t2) \ - (sizeof(t1) >= sizeof(t2)) - - -/* EventRepInit -- initialize the module */ - -Res EventRepInit(void) -{ - Res res; - - /* Check using pointers as keys in the tables. */ - verify(CHECKCONV(Word, void *)); - /* Check storage of MPS opaque handles in the tables. */ - verify(COMPATTYPE(mps_arena_t, void *)); - verify(COMPATTYPE(mps_ap_t, void *)); - /* .event-conv: Conversion of event fields into the types required */ - /* by the MPS functions is justified by the reverse conversion */ - /* being acceptable (which is upto the event log generator). */ - - totalEvents = 0; discardedEvents = 0; unknownEvents = 0; - - res = TableCreate(&arenaTable, (size_t)1); - if (res != ResOK) - goto failArena; - res = TableCreate(&poolTable, (size_t)1<<4); - if (res != ResOK) - goto failPool; - res = TableCreate(&apTable, (size_t)1<<6); - if (res != ResOK) - goto failAp; - - return ResOK; - -failAp: - TableDestroy(poolTable); -failPool: - TableDestroy(arenaTable); -failArena: - return res; -} - - -/* EventRepFinish -- finish the module */ - -void EventRepFinish(void) -{ - /* @@@@ add listing of remaining objects? */ - /* No point in cleaning up the tables, since we're quitting. */ - printf("Replayed %lu and discarded %lu events (%lu unknown).\n", - totalEvents - discardedEvents - unknownEvents, - discardedEvents + unknownEvents, unknownEvents); -} - - -/* C. COPYRIGHT AND LICENSE - * - * Copyright (C) 2001-2014 Ravenbrook Limited . - * All rights reserved. This is an open source license. Contact - * Ravenbrook for commercial licensing options. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * 3. Redistributions in any form must be accompanied by information on how - * to obtain complete source code for this software and any accompanying - * software that uses this software. The source code must either be - * included in the distribution or be available for no more than the cost - * of distribution plus a nominal fee, and must be freely redistributable - * under reasonable conditions. For an executable file, complete source - * code means the source code for all modules it contains. It does not - * include source code for modules or files that typically accompany the - * major components of the operating system on which the executable file - * runs. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR - * PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ diff --git a/mps/code/eventrep.h b/mps/code/eventrep.h deleted file mode 100644 index 0c66bc3e0fe..00000000000 --- a/mps/code/eventrep.h +++ /dev/null @@ -1,66 +0,0 @@ -/* eventrep.h: Allocation replayer interface - * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. - * - * $Id$ - */ - -#ifndef eventrep_h -#define eventrep_h - -#include "config.h" -/* override variety setting for EVENT */ -#define EVENT - -#include "eventcom.h" -#include "mpmtypes.h" - - -extern Res EventRepInit(Bool partial); -extern void EventRepFinish(void); - -extern void EventReplay(Event event, Word etime); - - -#endif /* eventrep_h */ - - -/* C. COPYRIGHT AND LICENSE - * - * Copyright (C) 2001-2002 Ravenbrook Limited . - * All rights reserved. This is an open source license. Contact - * Ravenbrook for commercial licensing options. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * 3. Redistributions in any form must be accompanied by information on how - * to obtain complete source code for this software and any accompanying - * software that uses this software. The source code must either be - * included in the distribution or be available for no more than the cost - * of distribution plus a nominal fee, and must be freely redistributable - * under reasonable conditions. For an executable file, complete source - * code means the source code for all modules it contains. It does not - * include source code for modules or files that typically accompany the - * major components of the operating system on which the executable file - * runs. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR - * PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ diff --git a/mps/code/mpmss.c b/mps/code/mpmss.c index b6a74d72a17..cc3e3e526a4 100644 --- a/mps/code/mpmss.c +++ b/mps/code/mpmss.c @@ -37,9 +37,9 @@ static void check_allocated_size(mps_pool_t pool, size_t allocated) /* stress -- create a pool of the requested type and allocate in it */ static mps_res_t stress(mps_arena_t arena, mps_pool_debug_option_s *options, - size_t (*size)(size_t i), mps_align_t align, - const char *name, mps_pool_class_t pool_class, - mps_arg_s *args) + size_t (*size)(size_t i, mps_align_t align), + mps_align_t align, const char *name, + mps_pool_class_t pool_class, mps_arg_s *args) { mps_res_t res; mps_pool_t pool; @@ -58,7 +58,7 @@ static mps_res_t stress(mps_arena_t arena, mps_pool_debug_option_s *options, /* allocate a load of objects */ for (i=0; i> (i / 10)), 2) + 1; -} - - -/* randomSize8 -- produce sizes both large and small, 8-byte aligned */ - -static size_t randomSize8(size_t i) +static size_t randomSizeAligned(size_t i, mps_align_t align) { size_t maxSize = 2 * 160 * 0x2000; /* Reduce by a factor of 2 every 10 cycles. Total allocation about 40 MB. */ - return alignUp(rnd() % max((maxSize >> (i / 10)), 2) + 1, 8); + return alignUp(rnd() % max((maxSize >> (i / 10)), 2) + 1, align); } @@ -138,9 +126,10 @@ static size_t randomSize8(size_t i) static size_t fixedSizeSize = 0; -static size_t fixedSize(size_t i) +static size_t fixedSize(size_t i, mps_align_t align) { testlib_unused(i); + testlib_unused(align); return fixedSizeSize; } @@ -176,7 +165,7 @@ static void testInArena(mps_arena_class_t arena_class, size_t arena_grain_size, MPS_ARGS_ADD(args, MPS_KEY_MVFF_SLOT_HIGH, TRUE); MPS_ARGS_ADD(args, MPS_KEY_MVFF_FIRST_FIT, TRUE); MPS_ARGS_ADD(args, MPS_KEY_SPARE, rnd_double()); - die(stress(arena, NULL, randomSize8, align, "MVFF", + die(stress(arena, NULL, randomSizeAligned, align, "MVFF", mps_class_mvff(), args), "stress MVFF"); } MPS_ARGS_END(args); @@ -188,25 +177,10 @@ static void testInArena(mps_arena_class_t arena_class, size_t arena_grain_size, MPS_ARGS_ADD(args, MPS_KEY_MVFF_FIRST_FIT, TRUE); MPS_ARGS_ADD(args, MPS_KEY_SPARE, rnd_double()); MPS_ARGS_ADD(args, MPS_KEY_POOL_DEBUG_OPTIONS, options); - die(stress(arena, options, randomSize8, align, "MVFF debug", + die(stress(arena, options, randomSizeAligned, align, "MVFF debug", mps_class_mvff_debug(), args), "stress MVFF debug"); } MPS_ARGS_END(args); - MPS_ARGS_BEGIN(args) { - mps_align_t align = rnd_align(sizeof(void *), arena_grain_size); - MPS_ARGS_ADD(args, MPS_KEY_ALIGN, align); - die(stress(arena, NULL, randomSize, align, "MV", - mps_class_mv(), args), "stress MV"); - } MPS_ARGS_END(args); - - MPS_ARGS_BEGIN(args) { - mps_align_t align = sizeof(void *) << (rnd() % 4); - MPS_ARGS_ADD(args, MPS_KEY_ALIGN, align); - MPS_ARGS_ADD(args, MPS_KEY_POOL_DEBUG_OPTIONS, options); - die(stress(arena, options, randomSize, align, "MV debug", - mps_class_mv_debug(), args), "stress MV debug"); - } MPS_ARGS_END(args); - MPS_ARGS_BEGIN(args) { fixedSizeSize = 1 + rnd() % 64; MPS_ARGS_ADD(args, MPS_KEY_MFS_UNIT_SIZE, fixedSizeSize); diff --git a/mps/code/replay.c b/mps/code/replay.c deleted file mode 100644 index 957547565ff..00000000000 --- a/mps/code/replay.c +++ /dev/null @@ -1,228 +0,0 @@ -/* replay.c: Allocation replayer - * Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license. - * - * $Id$ - */ - -#include "config.h" -/* override variety setting for EVENT */ -#define EVENT - -#include "eventcom.h" -#include "eventpro.h" -#include "eventrep.h" -#include "mpmtypes.h" - -#include /* for size_t */ -#include /* for printf */ -#include /* for va_list */ -#include /* for EXIT_FAILURE */ -#include /* for strcmp */ -#include "mpstd.h" - - -#if defined(MPS_OS_W3) && defined(MPS_ARCH_I6) -#define PRIuLONGEST "llu" -#define PRIXPTR "016llX" -typedef unsigned long long ulongest_t; -#else -#define PRIuLONGEST "lu" -#define PRIXPTR "08lX" -typedef unsigned long ulongest_t; -#endif - - -typedef unsigned long ulong; - - -/* command-line arguments */ - -static char *prog; /* program name */ - - -/* Globals */ - -static Word eventTime = 0; /* current event time */ - - -/* error -- error signalling */ - -ATTRIBUTE_FORMAT((printf, 1, 2)) -static void error(const char *format, ...) -{ - va_list args; - - fflush(stdout); /* sync */ - fprintf(stderr, "%s: @%"PRIuLONGEST" ", prog, (ulongest_t)eventTime); - va_start(args, format); - vfprintf(stderr, format, args); - fprintf(stderr, "\n"); - va_end(args); - exit(EXIT_FAILURE); -} - - -/* usage -- usage message */ - -static void usage(void) -{ - fprintf(stderr, - "Usage: %s [-f logfile] [-p] [-?]\n" - "See guide.mps.telemetry for instructions.\n", - prog); -} - - -/* usageError -- explain usage and error */ - -static void usageError(void) -{ - usage(); - error("Bad usage"); -} - - -/* parseArgs -- parse command line arguments, return log file name */ - -static char *parseArgs(int argc, char *argv[]) -{ - char *name = "mpsio.log"; - int i = 1; - - if (argc >= 1) - prog = argv[0]; - else - prog = "unknown"; - - while (i < argc) { /* consider argument i */ - if (argv[i][0] == '-') { /* it's an option argument */ - switch (argv[i][1]) { - case 'f': /* file name */ - ++ i; - if (i == argc) - usageError(); - else - name = argv[i]; - break; - case '?': case 'h': /* help */ - usage(); - break; - default: - usageError(); - } - } /* if option */ - ++ i; - } - return name; -} - - -/* readLog -- read and parse log */ - - -static void readLog(EventProc proc) -{ - while (TRUE) { - Event event; - Res res; - - res = EventRead(&event, proc); - if (res == ResFAIL) - break; /* eof */ - if (res != ResOK) - error("Truncated log"); - eventTime = event->any.clock; - EventRecord(proc, event, eventTime); - EventReplay(event, eventTime); - EventDestroy(proc, event); - } -} - - -/* logReader -- reader function for a file log */ - -static FILE *input; - -static Res logReader(void *file, void *p, size_t len) -{ - size_t n; - - n = fread(p, 1, len, (FILE *)file); - return (n < len) ? (feof((FILE *)file) ? ResFAIL : ResIO) : ResOK; -} - - -/* main */ - -int main(int argc, char *argv[]) -{ - char *filename; - EventProc proc; - Res res; - - filename = parseArgs(argc,argv); - - if (strcmp(filename, "-") == 0) - input = stdin; - else { - input = fopen(filename, "rb"); - if (input == NULL) - error("unable to open \"%s\"\n", filename); - } - - res = EventProcCreate(&proc, logReader, (void *)input); - if (res != ResOK) - error("Can't init EventProc module: error %d.", res); - - res = EventRepInit(); - if (res != ResOK) - error("Can't init EventRep module: error %d.", res); - - readLog(proc); - - EventRepFinish(); - EventProcDestroy(proc); - return EXIT_SUCCESS; -} - - -/* C. COPYRIGHT AND LICENSE - * - * Copyright (C) 2001-2014 Ravenbrook Limited . - * All rights reserved. This is an open source license. Contact - * Ravenbrook for commercial licensing options. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * 3. Redistributions in any form must be accompanied by information on how - * to obtain complete source code for this software and any accompanying - * software that uses this software. The source code must either be - * included in the distribution or be available for no more than the cost - * of distribution plus a nominal fee, and must be freely redistributable - * under reasonable conditions. For an executable file, complete source - * code means the source code for all modules it contains. It does not - * include source code for modules or files that typically accompany the - * major components of the operating system on which the executable file - * runs. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR - * PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ diff --git a/mps/code/sacss.c b/mps/code/sacss.c index d09f1d54f50..08e2c654930 100644 --- a/mps/code/sacss.c +++ b/mps/code/sacss.c @@ -201,22 +201,6 @@ static void testInArena(mps_arena_class_t arena_class, mps_arg_s *arena_args) "stress MVFF debug"); } MPS_ARGS_END(args); - MPS_ARGS_BEGIN(args) { - mps_align_t align = rnd_align(sizeof(void *), arena_grain_size); - MPS_ARGS_ADD(args, MPS_KEY_ALIGN, align); - die(stress(arena, align, randomSize, "MV", mps_class_mv(), args), - "stress MV"); - } MPS_ARGS_END(args); - - MPS_ARGS_BEGIN(args) { - mps_align_t align = rnd_align(sizeof(void *), arena_grain_size); - MPS_ARGS_ADD(args, MPS_KEY_ALIGN, align); - MPS_ARGS_ADD(args, MPS_KEY_POOL_DEBUG_OPTIONS, &debugOptions); - die(stress(arena, align, randomSize, "MV debug", - mps_class_mv_debug(), args), - "stress MV debug"); - } MPS_ARGS_END(args); - MPS_ARGS_BEGIN(args) { fixedSizeSize = MPS_PF_ALIGN * (1 + rnd() % 100); MPS_ARGS_ADD(args, MPS_KEY_MFS_UNIT_SIZE, fixedSizeSize); diff --git a/mps/manual/source/code-index.rst b/mps/manual/source/code-index.rst index 6cd16a9bc2c..05a657415e5 100644 --- a/mps/manual/source/code-index.rst +++ b/mps/manual/source/code-index.rst @@ -249,13 +249,10 @@ These files implement auxiliary programs. See File Description =========== ================================================================== eventcnv.c :ref:`telemetry-mpseventcnv`. -eventrep.c Event replaying implementation (broken). -eventrep.h Event replaying interface (broken). eventsql.c :ref:`telemetry-mpseventsql`. eventtxt.c :ref:`telemetry-mpseventtxt`. getopt.h Command-line option interface. Adapted from FreeBSD. getoptl.c Command-line option implementation. Adapted from FreeBSD. -replay.c Event replaying program (broken). table.c Address-based hash table implementation. table.h Address-based hash table interface. =========== ================================================================== diff --git a/mps/manual/source/topic/keyword.rst b/mps/manual/source/topic/keyword.rst index d473c1acec0..cc0d49f1179 100644 --- a/mps/manual/source/topic/keyword.rst +++ b/mps/manual/source/topic/keyword.rst @@ -86,7 +86,7 @@ now :c:macro:`MPS_KEY_ARGS_END`. Keyword Type & field in ``arg.val`` See ======================================== ========================================================= ========================================================== :c:macro:`MPS_KEY_ARGS_END` *none* *see above* - :c:macro:`MPS_KEY_ALIGN` :c:type:`mps_align_t` ``align`` :c:func:`mps_class_mv`, :c:func:`mps_class_mvff`, :c:func:`mps_class_mvt` + :c:macro:`MPS_KEY_ALIGN` :c:type:`mps_align_t` ``align`` :c:func:`mps_class_mvff`, :c:func:`mps_class_mvt` :c:macro:`MPS_KEY_AMS_SUPPORT_AMBIGUOUS` :c:type:`mps_bool_t` ``b`` :c:func:`mps_class_ams` :c:macro:`MPS_KEY_ARENA_CL_BASE` :c:type:`mps_addr_t` ``addr`` :c:func:`mps_arena_class_cl` :c:macro:`MPS_KEY_ARENA_GRAIN_SIZE` :c:type:`size_t` ``size`` :c:func:`mps_arena_class_vm`, :c:func:`mps_arena_class_cl` @@ -94,7 +94,7 @@ now :c:macro:`MPS_KEY_ARGS_END`. :c:macro:`MPS_KEY_AWL_FIND_DEPENDENT` ``void *(*)(void *)`` ``addr_method`` :c:func:`mps_class_awl` :c:macro:`MPS_KEY_CHAIN` :c:type:`mps_chain_t` ``chain`` :c:func:`mps_class_amc`, :c:func:`mps_class_amcz`, :c:func:`mps_class_ams`, :c:func:`mps_class_awl`, :c:func:`mps_class_lo` :c:macro:`MPS_KEY_COMMIT_LIMIT` :c:type:`size_t` ``size`` :c:func:`mps_arena_class_vm`, :c:func:`mps_arena_class_cl` - :c:macro:`MPS_KEY_EXTEND_BY` :c:type:`size_t` ``size`` :c:func:`mps_class_amc`, :c:func:`mps_class_amcz`, :c:func:`mps_class_mfs`, :c:func:`mps_class_mv`, :c:func:`mps_class_mvff` + :c:macro:`MPS_KEY_EXTEND_BY` :c:type:`size_t` ``size`` :c:func:`mps_class_amc`, :c:func:`mps_class_amcz`, :c:func:`mps_class_mfs`, :c:func:`mps_class_mvff` :c:macro:`MPS_KEY_FMT_ALIGN` :c:type:`mps_align_t` ``align`` :c:func:`mps_fmt_create_k` :c:macro:`MPS_KEY_FMT_CLASS` :c:type:`mps_fmt_class_t` ``fmt_class`` :c:func:`mps_fmt_create_k` :c:macro:`MPS_KEY_FMT_FWD` :c:type:`mps_fmt_fwd_t` ``fmt_fwd`` :c:func:`mps_fmt_create_k` @@ -106,8 +106,7 @@ now :c:macro:`MPS_KEY_ARGS_END`. :c:macro:`MPS_KEY_FORMAT` :c:type:`mps_fmt_t` ``format`` :c:func:`mps_class_amc`, :c:func:`mps_class_amcz`, :c:func:`mps_class_ams`, :c:func:`mps_class_awl`, :c:func:`mps_class_lo` , :c:func:`mps_class_snc` :c:macro:`MPS_KEY_GEN` :c:type:`unsigned` ``u`` :c:func:`mps_class_ams`, :c:func:`mps_class_awl`, :c:func:`mps_class_lo` :c:macro:`MPS_KEY_INTERIOR` :c:type:`mps_bool_t` ``b`` :c:func:`mps_class_amc`, :c:func:`mps_class_amcz` - :c:macro:`MPS_KEY_MAX_SIZE` :c:type:`size_t` ``size`` :c:func:`mps_class_mv` - :c:macro:`MPS_KEY_MEAN_SIZE` :c:type:`size_t` ``size`` :c:func:`mps_class_mv`, :c:func:`mps_class_mvt`, :c:func:`mps_class_mvff` + :c:macro:`MPS_KEY_MEAN_SIZE` :c:type:`size_t` ``size`` :c:func:`mps_class_mvt`, :c:func:`mps_class_mvff` :c:macro:`MPS_KEY_MFS_UNIT_SIZE` :c:type:`size_t` ``size`` :c:func:`mps_class_mfs` :c:macro:`MPS_KEY_MIN_SIZE` :c:type:`size_t` ``size`` :c:func:`mps_class_mvt` :c:macro:`MPS_KEY_MVFF_ARENA_HIGH` :c:type:`mps_bool_t` ``b`` :c:func:`mps_class_mvff` diff --git a/mps/test/argerr/153.c b/mps/test/argerr/153.c index 338b9a4e6ef..93048298b11 100644 --- a/mps/test/argerr/153.c +++ b/mps/test/argerr/153.c @@ -1,7 +1,7 @@ /* TEST_HEADER id = $Id$ - summary = very large number as third argument to mps_alloc (MV) + summary = very large number as third argument to mps_alloc (MVFF) language = c link = testlib.o OUTPUT_SPEC @@ -11,7 +11,7 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { mps_arena_t arena; @@ -20,8 +20,7 @@ static void test(void) { cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create"); - cdie(mps_pool_create(&pool, arena, mps_class_mv(), - 1024*32, 1024*16, 1024*256), "pool"); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); cdie(mps_alloc(&q, pool, (size_t)-1 - mmqaArenaSIZE), "alloc"); diff --git a/mps/test/argerr/34.c b/mps/test/argerr/34.c index 51c58ee0ab5..4940d182965 100644 --- a/mps/test/argerr/34.c +++ b/mps/test/argerr/34.c @@ -1,7 +1,7 @@ /* TEST_HEADER id = $Id$ - summary = high bit set 3rd arg to mps_alloc (MV) + summary = high bit set 3rd arg to mps_alloc (MVFF) language = c link = testlib.o OUTPUT_SPEC @@ -11,40 +11,27 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" #include "arg.h" -void *stackpointer; - static void test(void) { mps_arena_t arena; mps_pool_t pool; - mps_thr_t thread; - mps_addr_t a; cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie(mps_thread_reg(&thread, arena), "register thread"); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); - cdie( - mps_pool_create( - &pool, arena, mps_class_mv(), - (size_t) 4096, (size_t) 32, (size_t) 64*1024), - "create pool"); + die(mps_alloc(&a, pool, HIGHBIT_SIZE+8), "allocation failed (correct)"); - die(mps_alloc(&a, pool, HIGHBIT_SIZE+8), - "allocation failed (correct)"); mps_pool_destroy(pool); - + mps_arena_destroy(arena); } int main(void) { - void *m; - stackpointer=&m; /* hack to get stack pointer */ - easy_tramp(test); return 0; } diff --git a/mps/test/argerr/35.c b/mps/test/argerr/35.c index 218721759bf..72ca516e3c4 100644 --- a/mps/test/argerr/35.c +++ b/mps/test/argerr/35.c @@ -1,7 +1,7 @@ /* TEST_HEADER id = $Id$ - summary = unaligned addr_t to free (MV) + summary = unaligned addr_t to free (MVFF) language = c link = testlib.o OUTPUT_SPEC @@ -12,41 +12,28 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" #include "arg.h" -void *stackpointer; - static void test(void) { mps_arena_t arena; mps_pool_t pool; - mps_thr_t thread; - mps_addr_t a; cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie(mps_thread_reg(&thread, arena), "register thread"); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); - cdie( - mps_pool_create( - &pool, arena, mps_class_mv(), - (size_t) 4096, (size_t) 32, (size_t) 64*1024), - "create pool"); - - die(mps_alloc(&a, pool, 8), - "alloc"); + die(mps_alloc(&a, pool, 8), "alloc"); mps_free(pool, (mps_addr_t) ((char *)a+1), 8); - mps_pool_destroy(pool); + mps_pool_destroy(pool); + mps_arena_destroy(arena); } int main(void) { - void *m; - stackpointer=&m; /* hack to get stack pointer */ - easy_tramp(test); return 0; } diff --git a/mps/test/argerr/37.c b/mps/test/argerr/37.c index ffcd86a2650..6617e141744 100644 --- a/mps/test/argerr/37.c +++ b/mps/test/argerr/37.c @@ -1,7 +1,7 @@ /* TEST_HEADER id = $Id$ - summary = wrong size_t to free (MV) + summary = wrong size_t to free (MVFF) language = c link = testlib.o OUTPUT_SPEC @@ -12,41 +12,28 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" #include "arg.h" -void *stackpointer; - static void test(void) { mps_arena_t arena; mps_pool_t pool; - mps_thr_t thread; - mps_addr_t a; cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie(mps_thread_reg(&thread, arena), "register thread"); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); - cdie( - mps_pool_create( - &pool, arena, mps_class_mv(), - (size_t) 4096, (size_t) 32, (size_t) 64*1024), - "create pool"); - - die(mps_alloc(&a, pool, 8), - "alloc a"); + die(mps_alloc(&a, pool, 8), "alloc a"); mps_free(pool, a, HIGHBIT_SIZE+8); - mps_pool_destroy(pool); + mps_pool_destroy(pool); + mps_arena_destroy(arena); } int main(void) { - void *m; - stackpointer=&m; /* hack to get stack pointer */ - easy_tramp(test); return 0; } diff --git a/mps/test/argerr/41.c b/mps/test/argerr/41.c index fc20f94c621..4b76e347e09 100644 --- a/mps/test/argerr/41.c +++ b/mps/test/argerr/41.c @@ -1,7 +1,7 @@ /* TEST_HEADER id = $Id$ - summary = zero extendBy for pool_create (MV) + summary = zero extendBy for pool_create (MVFF) language = c link = testlib.o OUTPUT_SPEC @@ -12,36 +12,27 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" #include "arg.h" -void *stackpointer; - static void test(void) { mps_arena_t arena; mps_pool_t pool; - mps_thr_t thread; cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie(mps_thread_reg(&thread, arena), "register thread"); - - cdie( - mps_pool_create( - &pool, arena, mps_class_mv(), - (size_t) 0, (size_t) 32, (size_t) 32), - "create pool"); + MPS_ARGS_BEGIN(args) { + MPS_ARGS_ADD(args, MPS_KEY_EXTEND_BY, 0); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), args), "pool"); + } MPS_ARGS_END(args); mps_pool_destroy(pool); - + mps_arena_destroy(arena); } int main(void) { - void *m; - stackpointer=&m; /* hack to get stack pointer */ - easy_tramp(test); return 0; } diff --git a/mps/test/argerr/42.c b/mps/test/argerr/42.c index cca48108806..9d36bebbcb1 100644 --- a/mps/test/argerr/42.c +++ b/mps/test/argerr/42.c @@ -1,7 +1,7 @@ /* TEST_HEADER id = $Id$ - summary = zero avgSize for pool_create (MV) + summary = zero avgSize for pool_create (MVFF) language = c link = testlib.o OUTPUT_SPEC @@ -12,11 +12,9 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" #include "arg.h" -void *stackpointer; - static void test(void) { mps_arena_t arena; @@ -24,11 +22,10 @@ static void test(void) cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie( - mps_pool_create( - &pool, arena, mps_class_mv(), - (size_t) 32, (size_t) 0, (size_t) 32), - "create pool"); + MPS_ARGS_BEGIN(args) { + MPS_ARGS_ADD(args, MPS_KEY_MEAN_SIZE, 0); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), args), "pool"); + } MPS_ARGS_END(args); mps_pool_destroy(pool); mps_arena_destroy(arena); @@ -36,9 +33,6 @@ static void test(void) int main(void) { - void *m; - stackpointer=&m; /* hack to get stack pointer */ - easy_tramp(test); return 0; } diff --git a/mps/test/conerr/13.c b/mps/test/conerr/13.c index b05fe424aa1..cab4314a6a3 100644 --- a/mps/test/conerr/13.c +++ b/mps/test/conerr/13.c @@ -12,34 +12,17 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { - mps_arena_t arena; + mps_arena_t arena = malloc(4096); mps_pool_t pool; - size_t extendBy; - size_t avgSize; - size_t maxSize; - extendBy = (size_t) 4096; - avgSize = (size_t) 32; - maxSize = (size_t) 65536; - -/* cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); -*/ - arena=malloc(4096); - - cdie( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create pool"); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); mps_pool_destroy(pool); - comment("Destroyed pool."); - mps_arena_destroy(arena); - comment("Destroyed arena."); } int main(void) diff --git a/mps/test/conerr/14.c b/mps/test/conerr/14.c index 44cd5ea7f9a..13998e9e3cf 100644 --- a/mps/test/conerr/14.c +++ b/mps/test/conerr/14.c @@ -10,29 +10,18 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { mps_arena_t arena; mps_pool_t pool; - size_t extendBy; - size_t avgSize; - size_t maxSize; - - extendBy = (size_t) 4096; - avgSize = (size_t) 32; - maxSize = (size_t) 65536; cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); mps_arena_destroy(arena); - comment("Destroyed arena."); - cdie( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create pool"); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); } int main(void) diff --git a/mps/test/conerr/15.c b/mps/test/conerr/15.c index 4bd52651fa3..6e1420dce4d 100644 --- a/mps/test/conerr/15.c +++ b/mps/test/conerr/15.c @@ -5,32 +5,20 @@ TEST_HEADER language = c link = testlib.o OUTPUT_SPEC - abort = true + assert = true + assertfile P= mpsi.c + assertcond = TESTT(Pool, pool) END_HEADER */ +#include + #include "testlib.h" -#include "mpscmv.h" static void test(void) { - mps_arena_t arena; - mps_pool_t pool = (mps_pool_t)1; - - cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - -/* - cdie( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create pool"); -*/ - + mps_pool_t pool = malloc(4096); mps_pool_destroy(pool); - comment("Destroyed pool."); - - mps_arena_destroy(arena); - comment("Destroyed arena."); } int main(void) diff --git a/mps/test/conerr/16.c b/mps/test/conerr/16.c index 5043f96a55f..75bf14aa21f 100644 --- a/mps/test/conerr/16.c +++ b/mps/test/conerr/16.c @@ -12,35 +12,20 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { mps_arena_t arena; mps_pool_t pool; - size_t extendBy; - size_t avgSize; - size_t maxSize; - - extendBy = (size_t) 4096; - avgSize = (size_t) 32; - maxSize = (size_t) 65536; cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create pool"); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); mps_pool_destroy(pool); - comment("Destroyed pool."); - mps_pool_destroy(pool); - comment("Destroyed pool again."); - mps_arena_destroy(arena); - comment("Destroyed arena."); } int main(void) diff --git a/mps/test/conerr/19.c b/mps/test/conerr/19.c index 430d013c7f9..cbac8d6078f 100644 --- a/mps/test/conerr/19.c +++ b/mps/test/conerr/19.c @@ -5,36 +5,23 @@ TEST_HEADER language = c link = testlib.o OUTPUT_SPEC - abort = true + assert = true + assertfile P= mpsi.c + assertcond = TESTT(Pool, pool) END_HEADER */ +#include + #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { - mps_arena_t arena; - mps_pool_t pool = (mps_pool_t)1; - + mps_pool_t pool = malloc(4096); mps_addr_t obj; - cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - -/* - cdie( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create pool"); -*/ - cdie(mps_alloc(&obj, pool, 152), "allocate"); - - mps_pool_destroy(pool); - comment("Destroyed pool"); - - mps_arena_destroy(arena); - comment("Destroyed arena."); } int main(void) diff --git a/mps/test/conerr/20.c b/mps/test/conerr/20.c index dcb65653536..3b216844c39 100644 --- a/mps/test/conerr/20.c +++ b/mps/test/conerr/20.c @@ -12,36 +12,23 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { mps_arena_t arena; mps_pool_t pool; - size_t extendBy; - size_t avgSize; - size_t maxSize; - mps_addr_t obj; - extendBy = (size_t) 4096; - avgSize = (size_t) 32; - maxSize = (size_t) 65536; - cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create pool"); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); mps_pool_destroy(pool); - comment("Destroyed pool"); cdie(mps_alloc(&obj, pool, 152), "allocate"); mps_arena_destroy(arena); - comment("Destroyed arena."); } int main(void) diff --git a/mps/test/conerr/21.c b/mps/test/conerr/21.c index 9d389fc9522..d00cf5d63af 100644 --- a/mps/test/conerr/21.c +++ b/mps/test/conerr/21.c @@ -12,39 +12,25 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { mps_arena_t arena; mps_pool_t pool; - size_t extendBy; - size_t avgSize; - size_t maxSize; - mps_addr_t obj; - extendBy = (size_t) 4096; - avgSize = (size_t) 32; - maxSize = (size_t) 65536; - cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create pool"); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); cdie(mps_alloc(&obj, pool, 152), "allocate"); mps_pool_destroy(pool); - comment("Destroyed pool"); mps_free(pool, obj, 512); - comment("Freed."); mps_arena_destroy(arena); - comment("Destroyed arena."); } int main(void) diff --git a/mps/test/conerr/22.c b/mps/test/conerr/22.c index fb020003628..9b13e48f93a 100644 --- a/mps/test/conerr/22.c +++ b/mps/test/conerr/22.c @@ -11,40 +11,25 @@ OUTPUT_SPEC END_HEADER */ +#include + #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { mps_arena_t arena; mps_pool_t pool; - size_t extendBy; - size_t avgSize; - size_t maxSize; - - mps_addr_t obj = (mps_addr_t)MPS_PF_ALIGN; - - extendBy = (size_t) 4096; - avgSize = (size_t) 32; - maxSize = (size_t) 65536; + mps_addr_t obj = malloc(512); cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create pool"); -/* - cdie(mps_alloc(&obj, pool, 152), "allocate"); -*/ + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); + mps_free(pool, obj, 512); - comment("Freed."); mps_pool_destroy(pool); - comment("Destroyed pool"); - mps_arena_destroy(arena); - comment("Destroyed arena."); } int main(void) diff --git a/mps/test/conerr/23.c b/mps/test/conerr/23.c index c6541154196..9196264a242 100644 --- a/mps/test/conerr/23.c +++ b/mps/test/conerr/23.c @@ -1,53 +1,36 @@ /* TEST_HEADER id = $Id$ - summary = free though not allocated + summary = double free language = c link = testlib.o OUTPUT_SPEC assert = true - assertfile P= tract.c - assertcond = found + assertfile P= poolmvff.c + assertcond = res == ResOK END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { mps_arena_t arena; mps_pool_t pool; - size_t extendBy; - size_t avgSize; - size_t maxSize; - mps_addr_t obj; - extendBy = (size_t) 4096; - avgSize = (size_t) 32; - maxSize = (size_t) 65536; - cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create pool"); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); cdie(mps_alloc(&obj, pool, 152), "allocate"); mps_free(pool, obj, 152); - comment("Freed."); - mps_free(pool, obj, 152); - comment("Freed again."); mps_pool_destroy(pool); - comment("Destroyed pool"); - mps_arena_destroy(arena); - comment("Destroyed arena."); } int main(void) diff --git a/mps/test/conerr/26.c b/mps/test/conerr/26.c index 8fcabc44357..6992cc8f1e0 100644 --- a/mps/test/conerr/26.c +++ b/mps/test/conerr/26.c @@ -12,28 +12,29 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { mps_arena_t arena; - mps_pool_t pool0; - mps_pool_t pool1; + mps_pool_t pool0, pool1; mps_addr_t obj; cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie(mps_pool_create_k(&pool0, arena, mps_class_mv(), mps_args_none), + cdie(mps_pool_create_k(&pool0, arena, mps_class_mvff(), mps_args_none), "create pool 0"); - cdie(mps_pool_create_k(&pool1, arena, mps_class_mv(), mps_args_none), + cdie(mps_pool_create_k(&pool1, arena, mps_class_mvff(), mps_args_none), "create pool 1"); cdie(mps_alloc(&obj, pool0, 152), "allocate in 0"); mps_free(pool1, obj, 512); - comment("Freed in 1."); + mps_pool_destroy(pool1); + mps_pool_destroy(pool0); + mps_arena_destroy(arena); } int main(void) diff --git a/mps/test/conerr/27.c b/mps/test/conerr/27.c index 07cbf6b2157..e84ce573c9f 100644 --- a/mps/test/conerr/27.c +++ b/mps/test/conerr/27.c @@ -12,34 +12,28 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { mps_arena_t arena; - mps_pool_t pool0; - mps_pool_t pool1; + mps_pool_t pool0, pool1; mps_addr_t obj; cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie(mps_pool_create_k(&pool0, arena, mps_class_mv(), mps_args_none), + cdie(mps_pool_create_k(&pool0, arena, mps_class_mvff(), mps_args_none), "create pool 0"); - cdie(mps_pool_create_k(&pool1, arena, mps_class_mv(), mps_args_none), + cdie(mps_pool_create_k(&pool1, arena, mps_class_mvff(), mps_args_none), "create pool 1"); cdie(mps_alloc(&obj, pool0, 152), "allocate in 0"); mps_pool_destroy(pool1); - comment("Pool 1 destroyed."); - mps_free(pool1, obj, 512); - comment("Freed in 1."); - mps_pool_destroy(pool0); - comment("Pool 0 destroyed."); - + mps_arena_destroy(arena); } int main(void) diff --git a/mps/test/conerr/4.c b/mps/test/conerr/4.c index 74fb62a5eef..40dc9e59102 100644 --- a/mps/test/conerr/4.c +++ b/mps/test/conerr/4.c @@ -12,28 +12,18 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { mps_arena_t arena; mps_pool_t pool; - size_t extendBy; - size_t avgSize; - size_t maxSize; - - extendBy = (size_t) 4096; - avgSize = (size_t) 32; - maxSize = (size_t) 65536; cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create pool"); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); + mps_arena_destroy(arena); - comment("Destroy arena."); } int main(void) diff --git a/mps/test/conerr/59.c b/mps/test/conerr/59.c index a8e8d68a523..1c93cd8127c 100644 --- a/mps/test/conerr/59.c +++ b/mps/test/conerr/59.c @@ -1,7 +1,7 @@ /* TEST_HEADER id = $Id$ - summary = free though not allocated + summary = free with wrong size language = c link = testlib.o OUTPUT_SPEC @@ -12,40 +12,24 @@ END_HEADER */ #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" static void test(void) { mps_arena_t arena; mps_pool_t pool; - size_t extendBy; - size_t avgSize; - size_t maxSize; - mps_addr_t obj; - extendBy = (size_t) 4096; - avgSize = (size_t) 32; - maxSize = (size_t) 65536; - cdie(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create arena"); - cdie( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create pool"); - cdie(mps_alloc(&obj, pool, 152), "allocate"); - cdie(mps_alloc(&obj, pool, 4), "alloc2"); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), mps_args_none), "pool"); + cdie(mps_alloc(&obj, pool, 152), "allocate"); mps_free(pool, obj, 512); - comment("Freed."); mps_pool_destroy(pool); - comment("Destroyed pool"); - mps_arena_destroy(arena); - comment("Destroyed arena."); } int main(void) diff --git a/mps/test/function/101.c b/mps/test/function/101.c index 2a9462afb08..dfd16450bd2 100644 --- a/mps/test/function/101.c +++ b/mps/test/function/101.c @@ -1,7 +1,7 @@ /* TEST_HEADER id = $Id$ - summary = MV functional tests allocate and free in manual variable pool + summary = MVFF allocate and free language = c link = testlib.o END_HEADER @@ -9,7 +9,7 @@ END_HEADER #include #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" #define MAXNUMBER 1000000 @@ -54,7 +54,7 @@ static int chkobj(mps_addr_t a, size_t size, unsigned char val) } static void dt(int kind, - size_t extendBy, size_t avgSize, size_t maxSize, + size_t extendBy, size_t avgSize, size_t mins, size_t maxs, int number, int iter) { mps_pool_t pool; @@ -68,10 +68,11 @@ static void dt(int kind, time0 = clock(); asserts(time0 != -1, "processor time not available"); - die( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create pool"); + MPS_ARGS_BEGIN(args) { + MPS_ARGS_ADD(args, MPS_KEY_EXTEND_BY, extendBy); + MPS_ARGS_ADD(args, MPS_KEY_MEAN_SIZE, avgSize); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), args), "pool"); + } MPS_ARGS_END(args); for(hd=0; hd #include "testlib.h" -#include "mpscmv.h" +#include "mpscmvff.h" #include "mpsavm.h" #define MAXNUMBER 1000000 @@ -56,7 +56,7 @@ static int chkobj(mps_addr_t a, size_t size, unsigned char val) } static void dt(int kind, - size_t extendBy, size_t avgSize, size_t maxSize, + size_t extendBy, size_t avgSize, unsigned long mins, unsigned long maxs, int number, int iter) { mps_pool_t pool; @@ -70,10 +70,11 @@ static void dt(int kind, time0 = clock(); asserts(time0 != -1, "processor time not available"); - die( - mps_pool_create(&pool, arena, mps_class_mv(), - extendBy, avgSize, maxSize), - "create MV pool"); + MPS_ARGS_BEGIN(args) { + MPS_ARGS_ADD(args, MPS_KEY_EXTEND_BY, extendBy); + MPS_ARGS_ADD(args, MPS_KEY_MEAN_SIZE, avgSize); + cdie(mps_pool_create_k(&pool, arena, mps_class_mvff(), args), "pool"); + } MPS_ARGS_END(args); for(hd=0; hd= 4096ul; size /= 2) - while (mps_alloc(&a, poolmv, size)==MPS_RES_OK) + while (mps_alloc(&a, poolmvff, size)==MPS_RES_OK) ; } static void empty(void) { - mps_pool_destroy(poolmv); + mps_pool_destroy(poolmvff); } diff --git a/mps/test/testsets/conerr b/mps/test/testsets/conerr index b79d1a81d84..67e283cf7e5 100644 --- a/mps/test/testsets/conerr +++ b/mps/test/testsets/conerr @@ -21,7 +21,7 @@ conerr/15.c conerr/16.c % conerr/17.c -- fails in hot variety (assertion is on the critical path) conerr/18.c -conerr/19.c +% conerr/19.c -- assertion in different place in the hot variety % conerr/20.c -- segfaults in hot variety (assertion is on the critical path) % conerr/21.c -- segfaults in hot variety (assertion is on the critical path) % conerr/22.c -- segfaults in hot variety (assertion is on the critical path) diff --git a/mps/test/testsets/coolonly b/mps/test/testsets/coolonly index ac3e5273e8a..038edb41a53 100644 --- a/mps/test/testsets/coolonly +++ b/mps/test/testsets/coolonly @@ -10,6 +10,7 @@ argerr/31.c argerr/33.c argerr/35.c argerr/37.c +conerr/19.c conerr/26.c % Rank is not a structure type, so AVERT(Rank) does nothing.