1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-28 07:50:48 -08:00
emacs/mps/qa/test/testlib/versind.h
Pekka Pirinen 9a09a4b667 Remove arena_size
Copied from Perforce
 Change: 21370
 ServerID: perforce.ravenbrook.com
2000-07-21 20:13:54 +01:00

90 lines
3.1 KiB
C

/* $HopeName: MMQA_harness!testlib:versind.h(trunk.9) $
versind.h
This file used to read header files depending on the
value of the MPS_INTERFACE_VERSION parameter (aka MMQA_VERS_XX).
Now it works using MMQA_SYMBOL_xxx tests.
Almost all the existing functionality can be done just as well
this way. The only difference is the change in parameters
between 'oldstyle' and 'modern', which is no longer relevant.
We don't need to test oldstyle MMs any more.
For the record, the old versions were:
MO : modern -- i.e. as in thursday afternoon
OS : oldstyle -- dylan.incr.patch.11
GR : grotesque -- dylan.honeybee (space -> arena)
BQ : baroque -- dylan.meadowlark (have to include mpsw3.h)
HU : humanist -- dylan.kinglet (spare committed fund)
*/
/* In release.dylan.honeybee, space was renamed arena in lots of functions
We'll use the "destroy" functions to test which versions are available
*/
#ifdef MMQA_DEFINED_mps_arena_destroy
#ifdef MMQA_DEFINED_mps_space_destroy
/* bizarrely, both versions seem to be present! */
#else
/* need to define "space" variants */
#define mps_space_clamp(a) mps_arena_clamp(a)
#define mps_space_release(a) mps_arena_release(a)
#define mps_space_park(a) mps_arena_park(a)
#define mps_space_collect(a) mps_arena_collect(a)
#define mps_space_destroy(a) mps_arena_destroy(a)
#define mps_space_reserved(a) mps_arena_reserved(a)
#define mps_space_committed(a) mps_arena_committed(a)
#define mps_space_t mps_arena_t
#include "mpsavm.h"
#define mps_space_create(space) \
mps_arena_create(space, mps_arena_class_vm(), (size_t)1<<30)
#endif
#else
#ifdef MMQA_DEFINED_mps_space_destroy
/* need to define "arena" variants */
#define mps_arena_clamp(a) mps_space_clamp(a)
#define mps_arena_release(a) mps_space_release(a)
#define mps_arena_park(a) mps_space_park(a)
#define mps_arena_collect(a) mps_space_collect(a)
#define mps_arena_destroy(a) mps_space_destroy(a)
#define mps_arena_reserved(a) mps_space_reserved(a)
#define mps_arena_committed(a) mps_space_committed(a)
#define mps_arena_t mps_space_t
#else
/* Neither exists -- error! */
#error Could find either mps_arena_destroy or mps_space_destroy
#endif
#endif
/* Before release.epcore.brisling / release.dylan.kinglet
there was no spare committed fund
*/
#ifndef MMQA_DEFINED_mps_arena_spare_committed
#define mps_arena_spare_committed(a) ((size_t) 0)
#endif
#ifndef MMQA_DEFINED_mps_arena_spare_commit_limit
#define mps_arena_spare_commit_limit(a) ((size_t) 0)
#endif
#ifndef MMQA_DEFINED_mps_arena_spare_commit_limit_set
#define mps_arena_spare_commit_limit_set(a, l) \
asserts(0, \
"MPS interface versions before HU do not support the spare committed fund")
#endif
/*
The following defs can't be done automatically. I don't think
this is a problem, but here they are just in case.
Before modern interface;
- no closure arguments for mps_root_create_reg
- no rank argument for mps_ap_create (ever)
#define mps_root_create_reg(ro, sp, ra, rm, thr, scan, p, _s) \
(mps_root_create_reg)(ro, sp, ra, rm, thr, scan, p)
#define mps_ap_create(a, p, _r) \
(mps_ap_create)(a, p)
*/